About the beatdetector...

Started by Led,

Largie

QuoteI tryd to use the DLL in VB using the following small code:

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

Private Sub Command1_Click()
Call BeatGetBpmFromFile("E:\afro medusa - pasilda.mp3", 100, 150, Progress, Certainty)
End Sub

VB does not handle pointers, and Progress and Certainty is values set by pointers (in c++).

So you need to know away to get these pointers to work in VB. Maybe you're chasing a ghost, maybe it works, my vb skills sux ;D

Ryzer

A solution would be to write a  OCX in C++ for VB...

Largie

QuoteA solution would be to write a  OCX in C++ for VB...

Or make a DLL based on the same style BASS is using, handels etc that are always returned as long...

I would make such a dll for you, but the SDK is not quick enough that it is worth using... Try download the programs that Carrot published earlier in the thread, and see for yourself!

Ryzer

There are lots of things you can do with that DLL, even if it is so slow...

1) Create a playlist and let the DLL count the DLL before you are gonna use it.

2) Isn't it possible in bass.dll the pick a piece of the file and then put it into a file? So you can create a new file with some beats, then let the temponary file be scanned by the DLL, then delete the temp-file... The file doesn't need to be longer then 10-20seconds. So it is fast enough to let the BPM count when you loaded the file. (Offcourse: the user needs to set the starting and ending point of the new file for calculating the BPM.)
IN SHORT: select piece of file, save it, scan it, delete it.

Cause: Beat detection on the fly isn't so trustee I think

Largie

QuoteCause: Beat detection on the fly isn't so trustee I think

Realtime app is always the best... Now when listning to different pop music you have sometime a beat change, and maybe drums building the sound up.... Now a realtime beat counter will at these parts always be accurate! And average counter will sometimes show a much higher, or lower value.

If you ask Dj's if they want average BPM (like they have on their cd's) or variable BPM they'll say definity realtime!

Ryzer


QuoteIsn't it possible in bass.dll the pick a piece of the file and then put it into a file? So you can create a new file with some beats, then let the temponary file be scanned by the DLL, then delete the temp-file... The file doesn't need to be longer then 10-20seconds. So it is fast enough to let the BPM count when you loaded the file. (Offcourse: the user needs to set the starting and ending point of the new file for calculating the BPM.)
IN SHORT: select piece of file, save it, scan it, delete it.

Then you can select a good part of the song and then calc the BPM out of it... this is just something to try out. If your new BPM detector is finished I will defenitly use yours!  :)

Largie

#46
QuoteThen you can select a good part of the song and then calc the BPM out of it... this is just something to try out. If your new BPM detector is finished I will defenitly use yours!  :)

(only the great men quote themself  ;D)

I have a romanian friend and math genious that have figured it out... And we are going to make it public... We have also talked about a playback sdk with scripting language, so users can without any knowledge add hp, lp, bp, br, beat detection, etc on the output. Just adding scripts... But first we will add the bpm feature.

(It is a great feature that also BASS should have, and also predesigned hp, lp, bp, br filters should be added to BASS. How about that Ian?)

Largie

QuoteDo you have a DLL yet?

No, no .... The beat detector project takes time... I guess we have an early prebeta version in 1-2 months or something that works relvative good.

I have started the work for a website that will be published the same day it is ready for beta testing...

There will be alot of documentation available on the subject, but I guess your'e just waiting for the complete and compiled sdk with vb support! :)

Ryzer

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!!!  >:(

manu

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

QuoteNo  ;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

QuoteI 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

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

I tryed:

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.

Largie

Quotehttp://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

Quoteand 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...

Largie

Quoteparams casting?

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