Author Topic: About the beatdetector...  (Read 54930 times)

manu

  • Posts: 51
Re: About the beatdetector...
« Reply #50 on: 30 Jul '02 - 19:53 »
Hi folks!

I need a realtime Beat detection for my dj app as well   ;)

The Cubic Carrot BPM DLL is useless since the results are worse. I've tested it with various techno trax.

@ Largie
did you talk to the dude at the norway university? The dude who's developeing that Recycle Like application. He must know how to detect the beats.  Please ask him for help.
http://www.ii.uib.no/~espenr/

greetz
manu

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #51 on: 30 Jul '02 - 21:20 »
Quote

No  ;D I'm waiting for you to say how I can help with the Beatcounter... I'm good in making sites ;) ... I hope you make the DLL like the Bass.dll and not like the one from Cubic Carrot, cause then I can't use it in VB  :(
I really need to start with C++  :D but I'm currently learning PHP, so 1 thing at the time! I'm already stating to put a ";" after my lines in VB and using "END IF" in PHP!!!  >:(


I'm thinking of makeing a simple site for the project... I have currently no idea on how it should look like. But I think of something simple, like the un4seen site... I have also checked that beatdetector.com is free. I have servers standing ready for the project. Now we must have time to develop.
At work I program ASP, and .NET ASP. So I'm pretty good at that, but I sux at gfx, so I asked our gfx team at work if they wanted to make some for me at their spear time... Lets see how that goes! ;D Hehe...

The library will be working with (V)c++, VB as a start... I need someone l8er to make some delphi wrapper classes to make it work there too! :)

But it is far from that yet!  :P

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #52 on: 30 Jul '02 - 21:29 »
Quote

I need a realtime Beat detection for my dj app as well   ;)

The Cubic Carrot BPM DLL is useless since the results are worse. I've tested it with various techno trax.

@ Largie
did you talk to the dude at the norway university? The dude who's developeing that Recycle Like application. He must know how to detect the beats.  Please ask him for help.
http://www.ii.uib.no/~espenr/


Everybody that are making DJ software need a realtime beatdetector! :)

I have mailed him, and the teacher earlier, but no answer... So it was a dead end... He also wrote in his assignment that he was just medium happy with the solution he made, so it maybe more important for us to actually know the subject, and make something that works! The real work is the threshold variables etc, that must be tweaked for a time! :)

Kruzemo

  • Posts: 83
Re: About the beatdetector...
« Reply #53 on: 30 Jul '02 - 21:52 »
okay...well i dont know if this will help any, but there is one other thing you might want to try adding to your function declaration.  ;D

VB oftentimes (as im sure you know) has to get data in different ways since it doesn't handle pointers directly.  there's two key words in vb: ByRef and ByVal.  Try putting those in the appropriate places and see if that helps any.  it should  ;)

let me know if you need more help.  i'll see what i can do  :)

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #54 on: 31 Jul '02 - 10:15 »
I tryed:

Code: [Select]

Private Declare Function BeatGetBpmFromFile Lib "BeatCnt.dll" (FileName As String, minBeatsPM As Long, MaxBeatsPM As Long, ByRef Progress As Long, ByRef Certainty As Long) As Long


and the same thing with ByVal, the result is still the same...
My WindowsXP tells me that VB needs to close due an error.

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #55 on: 31 Jul '02 - 10:17 »
http://www.beatdetector.com gives me a "Bad Gateway"

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #56 on: 31 Jul '02 - 10:34 »
Quote

http://www.beatdetector.com gives me a "Bad Gateway"


The domain will be registered when we are ready to publish... It's not there yet! :)

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #57 on: 31 Jul '02 - 10:46 »
Quote

and the same thing with ByVal, the result is still the same...
My WindowsXP tells me that VB needs to close due an error.


When I tried it here, I started the debugging, and it crashes in the kernel... And the last calles seems from the beatcnt.dll, so I guess there must be something wrong with the params casting...

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #58 on: 31 Jul '02 - 12:37 »
params casting?

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #59 on: 31 Jul '02 - 12:39 »
Quote

params casting?


Isn't that the right word when us use static variable as pointers? I thought so!  :P

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #60 on: 31 Jul '02 - 16:35 »
I don't mean you'r wrong  ;D I just mean my english sucks...  ::)

CubicCarrot

  • Posts: 8
Re: About the beatdetector...
« Reply #61 on: 1 Aug '02 - 00:00 »
Beat Counting SDK 1.0.0:

http://users.skynet.be/bk264570/BCsdk100.exe

What's improved compared to version 0.9.2:
* Much better results
* Faster
* Easier to implement

Most of the time the bpm result has an error of less than 0.1 bpm.  If you want to see the results comparable to what this SDK will produce, have a look at my demo app:

http://users.skynet.be/bk264570/BeatC10D.exe

The SDK contains examples for Delphi, C++Builder, MS VC++.  I'm still working on a VB example. If it is impossible to import this dll in VB, I'll probably write an OCX.

The VB code above is wrong because it uses the wrong calling convention.  All functions have stdcall calling convention, while VB seems to assume pascal calling convention.  If you can let the compiler know the calling convention is stdcall, it should work.  Just make sure the parameters are correct and ByVal/ByRef is used with the correct parameters.

CubicCarrot

  • Posts: 8
Re: About the beatdetector...
« Reply #62 on: 1 Aug '02 - 00:18 »
About average bpm and variable bpm:

The SDK is best at calculating average bpm.  Why?
Most (just about all) songs have a constant bpm - this means a variable bpm meter would be useless.  The thing is you want to mix two songs and it's in the mixing you change the speed of the song - this generates a variable bpm.  

Just like a human being with a stopwatch can easier analyse the bpm rate of a song if the song is longer - the SDK will perform better on longer tracks.  This is I think essentially the same as Heiselbergs uncertainty principle.  

The SDK can also be used to analyse variable bpm.  How?
Just sequentially analyse shorter pieces of the music.  These pieces may not be too short (10-17 seconds) the results would suffer too much.  In the current implementation this would take a long processing time though, but I could easily change the SDK to make it very much faster.  But does anybody want it?  And for what purpose?   Support for this was included in SDK 0.9.2, but everybody keeps concentrating on the BeatGetBpmFromFile functions.  I also implemented variable bpm measuring in the Beat Monitor program - though with the algorithm from version 0.9.2 - and results where quite acceptable (though 0.9.2 produces quite bad results).

CubicCarrot

  • Posts: 8
Re: About the beatdetector...
« Reply #63 on: 1 Aug '02 - 00:22 »
Bpm calculation in mixing apps is also possible in real time.

See
http://www.disconova.com/

for an implementation of BC SDK 0.9.2 in a DJ mixing program.

manu

  • Posts: 51
Re: About the beatdetector...
« Reply #64 on: 1 Aug '02 - 07:08 »
0.1 is not much usefull. With this accuracy two trax will stay beat syncron for approximately 18 sec. That's not much! The bpm sdk should have accuracy of 0.01 if you want money for it.
Also the decoding should not be done with winamp. Please add functions to decode with the bass library.  

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #65 on: 1 Aug '02 - 09:00 »
Quote

About average bpm and variable bpm:

The SDK is best at calculating average bpm.  Why?
Most (just about all) songs have a constant bpm - this means a variable bpm meter would be useless.  The thing is you want to mix two songs and it's in the mixing you change the speed of the song - this generates a variable bpm.  

Just like a human being with a stopwatch can easier analyse the bpm rate of a song if the song is longer - the SDK will perform better on longer tracks.  This is I think essentially the same as Heiselbergs uncertainty principle.  

The SDK can also be used to analyse variable bpm.  How?
Just sequentially analyse shorter pieces of the music.  These pieces may not be too short (10-17 seconds) the results would suffer too much.  In the current implementation this would take a long processing time though, but I could easily change the SDK to make it very much faster.  But does anybody want it?  And for what purpose?   Support for this was included in SDK 0.9.2, but everybody keeps concentrating on the BeatGetBpmFromFile functions.  I also implemented variable bpm measuring in the Beat Monitor program - though with the algorithm from version 0.9.2 - and results where quite acceptable (though 0.9.2 produces quite bad results).


(I will try your new SDK and see! :))

"The SDK is best at calculating average bpm.  Why?". No, no, not best at calc avarage bpm.... The BPM counter will be used in "realtime". If you download this winamp plugin:

http://www.winamp.com/plugins/detail.jhtml;$sessionid$WC305SNE1ML2NTN24UYBCYY?componentId=47128

You'll see where we are headed... This plugin calc the bpm based on the buffer, "right now". And the SDK will work pretty near that...

Meaning that if there are a totaly change in the beats while playing, it will show changes it bpm while playing...

I guess since you quickly "play" with the winamp output plugin and calc the bpm, you could also make it "realtime", but you should make it like a callback routine with a void pointer, so people can use every playback routines they want. Xaudio, Bass, GAudio etc that would be the best for everyone! :)

As for the results, it needs to be tweaked to see how accurate it is... But since we just started making it, it would take some time to get it as 0.01 accurat as possible! ;)
If Cubic have a 0.1 point accuracy, it would be quite easy using a "beat detector" to sync these 2 so the BPM will show 0.1 wrong, but the output will be synced 4 you, like an easy AI for you ;)

As for disconova... It works, but if you try something funky on that, that have beat breaks, it is hard to mix'em... And the project seemed quite dead to.. no updates since 2001...

I think that it is wrong making money a beat detector (bpmcounter), that is why we are making it open source, so people can learn, and maybe we will se more people that are good at DSP. People like yourself cubic, will download it, and critize it, and some would even make it better, that is the beauty of open source.

The real question is who makes the best DJ program.

CubicCarrot

  • Posts: 8
Re: About the beatdetector...
« Reply #66 on: 1 Aug '02 - 14:22 »
There was a small mistake in the Delphi example.  See

http://www.kagi.com/cubiccarrot/

more specifically
http://www.kagi.com/cubiccarrot/SDK.htmfor a fix.

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #67 on: 1 Aug '02 - 15:13 »
Hi,

I tryd to make a simple beat detector (simple means by just using the level-meters).
It kind of works, but I still have trouble finding the beat EXACLTY. The beat need to be where to level is the most high, when it is not getting higher anymore, then THAT is the beat I need to have.
Reason I made this: Simple dynamic beat-detector to let bitmaps move in the ritme of the music, so it doesn't need to be 100% perfect, but still...

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #68 on: 4 Aug '02 - 13:59 »
Quote

I tryd to make a simple beat detector (simple means by just using the level-meters).
It kind of works, but I still have trouble finding the beat EXACLTY. The beat need to be where to level is the most high, when it is not getting higher anymore, then THAT is the beat I need to have.
Reason I made this: Simple dynamic beat-detector to let bitmaps move in the ritme of the music, so it doesn't need to be 100% perfect, but still...


Well, it is impossible to use a level meter to get the exact beat, but works fine when you wants bitmaps to just seem like it is punching! :)

It is a good start Ryzer... If it is not complex, share the code with the rest of the VB users! :)

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #69 on: 5 Aug '02 - 10:56 »
When it is complete I will. But it is still VB code  ::)

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #70 on: 5 Aug '02 - 11:02 »
Correct me if I'm wrong:

If we have a beatdetector, it is easy to calculate the beats, set the pitch of the both files so they play on the same speed, sync the beats and mix it ALL AUTOMATICLY...

It's kind of the ultimate mixing machine  ;D

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #71 on: 5 Aug '02 - 11:32 »
Quote

Correct me if I'm wrong:

If we have a beatdetector, it is easy to calculate the beats, set the pitch of the both files so they play on the same speed, sync the beats and mix it ALL AUTOMATICLY...

It's kind of the ultimate mixing machine  ;D


Goto: http://www.atomixmp3.com/download.html

That is where I'm heading with my software when I'm finished with the beat detector...

It has the ability to check the beats and sync it automaticly... I also want to add the ability to scratch the mp3s and more effects... But Atomix player is really good!

Now we'll make our own, so it gets better! :)

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #72 on: 6 Aug '02 - 11:06 »
That prog is for DJ-n00bs. I hope you make your app A LOT more advanced...

Largie

  • Posts: 110
Re: About the beatdetector...
« Reply #73 on: 6 Aug '02 - 11:28 »
Quote

That prog is for DJ-n00bs. I hope you make your app A LOT more advanced...


Of caz, but the feature of the sync beat, scratching,  and looping on the beats 1,2,4, 8 is pretty cool. The program that is available to download is not the pro version though... So I guess it is just a preview...

DJ software is hard to get good, so I guess I'll have to work for some time to get it as I like!  :P

Ryzer

  • Posts: 73
Re: About the beatdetector...
« Reply #74 on: 6 Aug '02 - 16:26 »
HEHE,
Talked about scratching:

Anyone has an OCX control with a WHEEL that you can turn?
Something like such wheels on that professional cd-players, to scratch...