Old 14th June 2004, 21:24   #41
Rovastar
Moderator
 
Join Date: Jun 2001
Location: London, England
Posts: 3,632
Send a message via AIM to Rovastar
Wow more interesting articles. This is truely a great thread.

I'll have to get my head down and do some serious coding on this.

"Rules are for the guidance of wisemen and the obedience of fools"

Visuals - Morphyre www.Morphyre.com
Rovastar is offline   Reply With Quote
Old 22nd June 2004, 12:45   #42
EL-VIS2
Member
 
Join Date: Jan 2002
Location: Germany
Posts: 73
Hi there (Rovastar),

Very interesting thread indeed. I felt "brave" enough to start a own try on this.

http://forums.winamp.com/showthread.php?threadid=183396
EL-VIS2 is offline   Reply With Quote
Old 2nd July 2004, 17:22   #43
UnConeD
Whacked Moderator
 
UnConeD's Avatar
 
Join Date: Jun 2001
Posts: 2,104
Quote:
Im not sure I get your description but from what I gather it is similar to a reasarch paper I saw that detected BPM (but not phase). The method was to take an entire song and compute the self-similarity matrix by convolving the entire fft spectrum - each element x,y in the matrix is the dot product of the fft vector at time index x and the fft vector at time index y. You end up with a grid-looking image with lines spaced according to the BPM. I cant find the paper I'm thinking of but here is one that uses something similar and it has a picture of what im talking about
I did something very similar for a univ project. You just calculate the autocorrelation of a low-res spectrum and try to find the first non-zero 'column' of high values. Then you use some magic to keep the values stable. You don't really need more than a couple of seconds of sound data to compute it (and this gives you the advantage of being localised, so songs with BPM changes work too).

This only detects the BPM, not the beat, so I just searched for bass maximums, and used prediction and correction to stay 'on track' once an adequate pattern was found.

UnConeD is offline   Reply With Quote
Old 2nd July 2004, 17:37   #44
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
I think in order to truely get good beat detection, you should have different presets for different forms of music.

For instance. Drum and bass flows on the snares. While it is composed at 180 bpms it flows at 90 since the snares are on upbeats. So good beat detection for DnB would run much better off of a treb. calc. Also, since drum and bass has steady basslines, bass detections go haywire.

But, the preset that works for that, would not work as well for jazz. And certanly not as well for clasical music. As clasical music utilizes much more dinamic changes, and much less beats, better presets for that are ones that have a larger range of varables.

Most elctronic music stays at a much more consistant volume, so alot of beat detection breaks then...

I think the real answers to this come in making less generalized attempts, and much more style specific attempts.

Your just plan not going to get something that works for everything, because music is so deverse.
Phat is offline   Reply With Quote
Old 3rd July 2004, 07:43   #45
Krash
Major Dude
 
Krash's Avatar
 
Join Date: Jun 2001
Location: Sydney, Australia
Posts: 977
Quote:
Originally posted by Phat
For instance. Drum and bass flows on the snares. While it is composed at 180 bpms it flows at 90 since the snares are on upbeats. So good beat detection for DnB would run much better off of a treb. calc. Also, since drum and bass has steady basslines, bass detections go haywire.
I think you'd be surprised

Algorithms which detect "bass" as beats tend to pick up snare drums more often than they pick up bass drums or bass guitar (or bass anything else). Snare drums actually have a significant proportion of their sound in the bass spectrum, and this, couple with their short, sharp nature (rapid transition from 0 volume to 100% volume and back) means that they get picked up very easily in bass-centric detection algorithms.

Of course, if you're writing completely new software for detection, than you can customise it however you like. But most of us are forced to work within the confines of what we're given

- Krash

Eighty-three percent of all statistical quotes are made up on the spot.
Krash is offline   Reply With Quote
Old 3rd July 2004, 20:00   #46
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
Well, I have noticed that a bit.

From a mastering stand point, I wish we could do bands of bass frequaces.... There are basicly two schools of mastering for basslines.

First there is the 'clip the sub frequencys in the kick drum at 75 herts or so, so the kick has a cussion to sit on withount cliping the bassline. basicly just do away with the subfrequencys of the kick so that it does not interfear with the bassline' (this school is mostly used for things like rock music)

The second school basicly does this... Every time the bass in the kick drum hits, they mute the subfrequencys of the bass in the bassline. You really can't tell the low frequencys in the bassline have been muted, you can just tell the kicks have empact. (seems your brain fills in the rest) This is more used by dance music because kicks having empact plays to somethings' danceablity.

Don't know if that helps, I just really try to make stuff have a large range of varables, and then keep the frame rate as fast as possable *I do beleive milkdrop calculates per frame*, and make everything run off of the total volume. (I mean milkdrop's bass mid and treb detection leaves ALOT to be desired...)

But then again, I am not all that much of a genious coder as I am a man that plays more to aesthetics... Most of the time I am just trying to keep my self emersed in the music I create and milkdrop is a great way to do that. But I thought I did pretty well with some of the one's I am posting today..
Phat is offline   Reply With Quote
Old 5th July 2004, 22:07   #47
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
"Algorithms which detect "bass" as beats tend to pick up snare drums more often than they pick up bass drums or bass guitar (or bass anything else). Snare drums actually have a significant proportion of their sound in the bass spectrum, and this, couple with their short, sharp nature (rapid transition from 0 volume to 100% volume and back) means that they get picked up very easily in bass-centric detection algorithms."

Yea, but I don't think you can really count on that, as there are alot of schools of mastering that clip there snare's at about 400 hertz. Well above the 100-110 limit usually considered bass. (I don't know where milkdrop draws the line, and I don't nessasarly think the bass/mid/treb calulations are allways correct)

If you would like read more on beat mastering check out this page...

http://www.bs1records.com/studio.shtml

At the bottem of the page they have some 'tips' about making beat loops, with examples. I don't agree with there just cut the bass in kick drums at 75 school, as there is a MUCH better way of making sure your kicks are defined that still gives them punch. (the muting the subfrequencys in the bass everytime the kick hits.)

But it might give some of you examples of the 'other end', as I see it.

Really hope this stuff helps!!!
Phat is offline   Reply With Quote
Old 6th July 2004, 12:25   #48
Rovastar
Moderator
 
Join Date: Jun 2001
Location: London, England
Posts: 3,632
Send a message via AIM to Rovastar
We (humans) can detect beats automatically the is no reason in theory why we have to write a different beat detection algo for each musical style.

"Rules are for the guidance of wisemen and the obedience of fools"

Visuals - Morphyre www.Morphyre.com
Rovastar is offline   Reply With Quote
Old 7th July 2004, 23:26   #49
DoomSwitch
Junior Member
 
Join Date: Jun 2004
Location: US, North Carolina
Posts: 4
Send a message via AIM to DoomSwitch Send a message via Yahoo to DoomSwitch
I agree, beat detection should be autonominous. whenever a true rythm algorythm is created it should not be held back by the restraints of generes. I'm telling you that I could hear a totally diffrent genere right now and detect the beat myself... this should be a goal in the new algorythm, to be able to take the algorythms functions for granted just as we do our own.
DoomSwitch is offline   Reply With Quote
Old 13th June 2008, 14:30   #50
Nico1980
Senior Member
 
Join Date: Apr 2006
Posts: 142
Im doing some work in this BPM detection are with great success ATM.

Im capable of getting the tempo very well. Now im working on put a metronome playing at the same time of song (detecting each 1/4 of the tempo) to be able to mix it well.
Nico1980 is offline   Reply With Quote
Old 14th June 2008, 03:55   #51
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
Yea, Rova, there is. I mean unless you have an algorithm programmed that can pass the Turing test...... Humans can do a lot of things computers cannot currently....

I mean you give me a "one size fits all" beat detection algorithm, and I can look at the code, and write something that a human would still be able to find the beat in, that your code would not.... Kurzweil says we might have a box that could fool you into thinking it was a human within 20 years, so this statement should be taken with a grain of temporal proximity.

Anyway, snares come though on bass commonly in programs like Milkdrop because the FFT doesn't have enough bands and reads false positives in the bass. This even happens when you have thousands of bands in an FFT... I've even seen 4096 bands read false positives.
Phat is offline   Reply With Quote
Old 14th June 2008, 04:00   #52
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
I'm just saying the way to get there might be to have the code know which subset of frequency spectrum to look at, because humans are doing this all the time. I'm not using the same things to define 'beat' in a track by Squarepusher as I am to figure it out when Louie Armstrong is playing. All I'm saying is that maybe the way to go is to have the code figure out what the defining percussive or rhythmic elements are, and in what frequency ranges first.
Phat is offline   Reply With Quote
Old 24th June 2008, 19:10   #53
Nico1980
Senior Member
 
Join Date: Apr 2006
Posts: 142
The solution is NOT trying to know when its a snare or a kick. But knowing, in first place the BPM (on popular 4x4 music)and then finding where the bar begin.
With that info you can be mnore or less acurate (90% or more in my tests) to know where each "beat" is happening.

Its not all about maths, but think on the song as a score. Remember that in music (in easy_popular_dance_music) most beats are multiples (a Bar has 4 beats, each beat as 8th, 16th, etc).

ofcourse it will not work with other music, but usually the need of tempo beat for mixing is just for easy music with the beat very noticeable and very predictible.

If you can't find the beat for classical music or jazz, who cares?

As i said, using this approach (having a rithm dance score in mind), i achieve more than 90% of succes in most dance music (BPM are used in dance music only).
Nico1980 is offline   Reply With Quote
Old 24th June 2008, 20:51   #54
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
I don't intend on giving up on those things just because they are hard.
Phat is offline   Reply With Quote
Old 24th June 2008, 20:54   #55
Phat
Major Dude
 
Phat's Avatar
 
Join Date: Nov 2003
Posts: 940
I also know of plenty 7/8 and 4/3 broken beat electronic dance music.
Phat is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Visualizations > MilkDrop > MilkDrop Presets

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump