HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: iya on 2010-11-11 11:32:19

Title: foo_auto_dj
Post by: iya on 2010-11-11 11:32:19
The main goal is to create a virtual Radio DJ.

foo_auto_dj_0.9 (http://ul.to/bxy9oz)

Usage:

Create one playlist called "Auto*", which will be managed by the plugin, although you can also drop in and remove tracks manually.
Basically it will sort them by BPM, remove played tracks and insert new one, with each track having an individual priority based on rating, age and last played.
Create playlists or autoplaylists for all tracks you want the Auto DJ to consider playing, and name them like:
"Pool X*" with x being the base priority of this pool. For example you could assign different priorities to different genres.
"New X*" for tracks you want to boost in priority based on their time since added.

Create a custom column with %priority% to display the probability of each track being chosen.

The zip contains an Excel sheet with the exact calculations.

Recommended:

foo_playcount.dll (Offical Playback Statistics and Rating) (http://www.foobar2000.org/components/view/foo_playcount)

OpenCL compatible GPU.
It should be able to fallback to CPU, but be sure to enable the light mode and it's not really tested.
Also please don't be surprised by crashes, this is my first plugin.

TODO:

The scanner will already store similarity information, but it's not yet used.
A beatmixing dsp, for now use simple crossfading.
Title: foo_auto_dj
Post by: JohanDeBock on 2010-11-11 11:38:01
OpenCL compatible GPU.


Any reason why it uses GPU?
Title: foo_auto_dj
Post by: iya on 2010-11-11 12:31:00
OpenCL compatible GPU.


Any reason why it uses GPU?


Because CPU is too slow? Also the CPU can already prepare the next steps, while the GPU is busy.
It's only used during scanning, for autocovariance.

With an ATI 4850 the tough GPU part takes just a second or so, depending on length of track. If your card is too slow, it might trigger the windows display driver reset. Then you can enable the light processing mode in the menu, which only affects the BPM accuracy, not the ReplayGain.
Total scanning is ~21 x realtime, with an entry level Core 2 Duo.
Title: foo_auto_dj
Post by: Nemphael on 2010-11-11 13:56:50
I get this error:
Code: [Select]
Failed to load DLL: foo_auto_dj.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.


Installed the component through Preferences and added all the other files to Foobar's root folder. I tried adding them to the component folder instead, without any luck. Also tried installing it in \Components, no luck there.

Anyhow, got an nVidia GeFore 8800GT GPU, but I tried removing the OpenCL.dll file, as you said it would fall back to CPU. Didn't help. I'm pretty sure it supports openCL. Do you need to isntall anything else or tweak something?
Title: foo_auto_dj
Post by: mudlord on 2010-11-11 14:01:42
Quote
Because CPU is too slow? Also the CPU can already prepare the next steps, while the GPU is busy.


You do realise in the SDK, FB2K has a thread API for background processes?
Title: foo_auto_dj
Post by: iya on 2010-11-11 15:22:41
I get this error:
Code: [Select]
Failed to load DLL: foo_auto_dj.dll
Reason: This component is missing a required dependency, or was made for different version of foobar2000.


Installed the component through Preferences and added all the other files to Foobar's root folder. I tried adding them to the component folder instead, without any luck. Also tried installing it in \Components, no luck there.

Anyhow, got an nVidia GeFore 8800GT GPU, but I tried removing the OpenCL.dll file, as you said it would fall back to CPU. Didn't help. I'm pretty sure it supports openCL. Do you need to isntall anything else or tweak something?


Have you ever run any OpenCL code? Maybe it needs special drivers?
I'm also not sure how compatible the binary is. I thought it was like java bytecode, i.e. run everywhere or could it be device specific?
Title: foo_auto_dj
Post by: The Link on 2010-11-11 16:18:28
It doesn't work here, too (Failed to load DLL: foo_auto_dj.dll, reason: This component is missing a required dependency, or was made for different version of foobar2000.). I'm on a nvidia 250gts. Furthermore, it would be nice if you could use the upload forum of this board instead of a file hoster.
Title: foo_auto_dj
Post by: iya on 2010-11-11 16:48:18
I guess you're missing drivers.
ATI has two packages, for example, one with and one without OpenCL driver.
Even the CPU mode needs an OpenCL driver, not sure where I got one, probably some SDK.
Sorry, I couldn't find a way to attach a file - looks like it was the wrong subforum...
Title: foo_auto_dj
Post by: The Link on 2010-11-11 17:08:17
OpenCL should be supported by the driver installed: http://dl.dropbox.com/u/232093/opencl.png (http://dl.dropbox.com/u/232093/opencl.png)

The upload forum is here: http://www.hydrogenaudio.org/forums/index.php?showforum=35 (http://www.hydrogenaudio.org/forums/index.php?showforum=35)

You can upload the file there and link to it from this thread (for discussion).
Title: foo_auto_dj
Post by: fbuser on 2010-11-11 17:21:02
A DLL is missing, not a driver. It is probably the same reason as here (http://www.hydrogenaudio.org/forums/index.php?s=&showtopic=83748&view=findpost&p=723480). The component requires MSVCR100.DLL.
Title: foo_auto_dj
Post by: The Link on 2010-11-11 17:23:20
Wouldn't static linking solve the issue?

Edit: Seems like I only have msvcr100_clr0400.dll in my system32/syswow64 folder.
Title: foo_auto_dj
Post by: fbuser on 2010-11-11 18:18:37
Wouldn't static linking solve the issue?
Yes, it would.
Title: foo_auto_dj
Post by: Zarggg on 2010-11-11 21:55:37
Any reason why it uses GPU?
Because CPU is too slow? Also the CPU can already prepare the next steps, while the GPU is busy.
It's only used during scanning, for autocovariance.


In other words, the function of this component is too intense for my P4 3.4GHz/Radeon X800 to handle?
(Well, I guess it might be, considering you are trying to scan the entire media library.)
Title: foo_auto_dj
Post by: iya on 2010-11-11 22:21:32
Ah you're right. I always forget these are not standard dlls. I'll try to make a new build without these dependencies, or include them, and upload to the upload forum.

Any reason why it uses GPU?
Because CPU is too slow? Also the CPU can already prepare the next steps, while the GPU is busy.
It's only used during scanning, for autocovariance.


In other words, the function of this component is too intense for my P4 3.4GHz/Radeon X800 to handle?
(Well, I guess it might be, considering you are trying to scan the entire media library.)


It's not necessarily scanning the entire library, but it's calculating the autocorrelation of an entire track, which takes longer than a minute on the CPU and a few seconds on the GPU.
Title: foo_auto_dj
Post by: JohanDeBock on 2010-11-11 23:07:06
Is the CPU auto-correlation using fft?
Title: foo_auto_dj
Post by: iya on 2010-11-11 23:50:14
Is the CPU auto-correlation using fft?


No, I could never get the Wiener–Khinchin transform to give the same results as a naive autocorrelation, and doing a FFT of the entire track is still way too slow.

And please don't expect it to be magical, it works very well with Dance and Pop, but guitars for example can throw it off.

Seems I can't edit my first post. Get the new version here:

http://www.hydrogenaudio.org/forums/index....ost&id=6183 (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=6183)

I also switched to Just In Time compilation of the OpenCL function, so it should work on most hardware.
Title: foo_auto_dj
Post by: amors on 2010-11-12 09:37:04
Playlist AUTO. Foobar playing the first song, the now playing icon in column “Playing” is visible. Song is ended, foobar automatically playing second song, but now icon in column “Playing” is lost. If I go to the next song with “next” button or with shortcut, all is ok, icon is visible all time.
Sorry, my English is so bad.
Title: foo_auto_dj
Post by: iya on 2010-11-12 11:43:06
Playlist AUTO. Foobar playing the first song, the now playing icon in column “Playing” is visible. Song is ended, foobar automatically playing second song, but now icon in column “Playing” is lost. If I go to the next song with “next” button or with shortcut, all is ok, icon is visible all time.
Sorry, my English is so bad.


Is this a special UI element? The standard "Selection Properties" and "Album Art Viewer", always show what's currently playing as long as nothing else is selected. The waveform seekbar also works.
But I might guess where the problem is:
The SDK function static_api_ptr_t<playlist_manager>()->get_playing_item_location(&playingPlaylist, &playingIndex);
does not seem to work reliably. Maybe some developer can help me here? Could I be doing something that confuses foobar? I'm obviously removing, adding and sorting the auto playlist a lot, but presumably only from the main thread...
Title: foo_auto_dj
Post by: amors on 2010-11-12 12:10:47
I spoke about this icon (now playing indicator):

(http://img80.imageshack.us/img80/7627/93931065.jpg)
Title: foo_auto_dj
Post by: Nemphael on 2010-11-12 12:57:36
Got the plugin working now. It seems to crash a lot. Haven't tried it that much, but two out of three times, both with single nd album mode.

Got it to analyze one track, though, but it wrote the wrong BPM. The dialog with the analysis reported 129-ish, but the written BPM was 21.5.

Also, on another note, Foobar has already got pretty good ReplayGain support (Component included in the installer) and foo_bpm is both fast and (mostly) stable. You could look into using those?
Title: foo_auto_dj
Post by: iya on 2010-11-12 13:33:26
Well, it doesn't crash for me. You can pm me the minidump, if there is one.
With the original ReplayGain I was tempted to touch the volume control for one in five tracks, now it's maybe one in twenty, and it's also faster to do everything in one go, but you can choose it from the menu if you prefer. I still have foo_bpm installed, it works very different, so if it works better for you, then just use it and keep the BPM tags.
Personally I like the automatic mode, so everything gets scanned before the first play without doing anything.
If the Pop mode seems a little aggressive and often halves the BPM, then just enable "Always choose closest to median", for now, which will put the BPM in the correct range.
Title: foo_auto_dj
Post by: Skibbi on 2010-11-12 20:11:25
Cannot make this plugin work
Code: [Select]
file://xxxx.mp3, file length = 391.7647166, sample rate = 44100
Loaded 8638k samples.

Failed to allocate buffers of 33MB. Trying light mode.

Failed to allocate buffers of 19MB. Quitting.

Total time: 25s (16 x realtime)
Title: foo_auto_dj
Post by: iya on 2010-11-12 21:42:14
Cannot make this plugin work
Code: [Select]
file://xxxx.mp3, file length = 391.7647166, sample rate = 44100
Loaded 8638k samples.

Failed to allocate buffers of 33MB. Trying light mode.

Failed to allocate buffers of 19MB. Quitting.

Total time: 25s (16 x realtime)


You could try it on a very short track, but that doesn't solve the problem.

What's your hardware, a mobile GPU?

I'll add a check of the max buffer size and use the CPU if too small.

You should also be able to use the DJ functionality without touching the scanning part.
Title: foo_auto_dj
Post by: Skibbi on 2010-11-12 22:09:13
No, I use radeon HD4850. GPU-Z says that I have OpenCL. PM me if you would like me to do some more advanced debuging.
And the new version didn't change anything - still crashes on album scan, and still no memory for track scan.
Title: foo_auto_dj
Post by: iya on 2010-11-13 06:10:16
No, I use radeon HD4850. GPU-Z says that I have OpenCL. PM me if you would like me to do some more advanced debuging.
And the new version didn't change anything - still crashes on album scan, and still no memory for track scan.

That's weird, as it's the same card. Well, the new version (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=6187) has a lot of error checking and should show exactly where an OpenCL related problem occured, in the console.
Title: foo_auto_dj
Post by: Skibbi on 2010-11-13 10:31:01
The new version crashes even on analyzing single track.
Title: foo_auto_dj
Post by: iya on 2010-11-14 07:20:22
The new version crashes even on analyzing single track.

Finally found and fixed not only the crashes, but the cause: When installing the component to the user directory, the OpenCL sourcecode file could no longer be found. It is now embedded in the dll.
Get it here: foo_auto_dj_0.9.4.zip (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=6194).
Title: foo_auto_dj
Post by: Skibbi on 2010-11-14 08:59:01
Yes, it finally works. But the BPM walues are wrong?
Code: [Select]
Loaded 6993k samples * 2 channels.
Channel[0] kernel took 3s. (541 GFLOP/s, 54 GB/s).
Channel[1] kernel took 3s. (542 GFLOP/s, 54 GB/s).
dB(ISO226) = -13.3818760 -> ReplayGain = -8.5807133
bpm[0] = 19.1651611 -[x6]-> 114.9909666 (-77.1875548)
bpm[1] = 114.9863102 (-77.1875548)
σ = 21595.8365092, max = 179166.1093750 = 8.2963264σ
Moments = 0.3270631, 0.1060129, 1.4457623, 5.2048976, 19.1275056, 466380154.5339364, 3.7956916, 148.1553680,
BPM[0] = 114.9786322 = 1.0000000 * bpm[0] -> 114.9786322
BPM[0] = 114.9786322 = 1.0000000 * bpm[1] -> 114.9786322
Looks like Dance: BPM = 229.9580995

Total time: 31s (10 x realtime)

According to VirtualDJ this track has 115BPM.
Title: foo_auto_dj
Post by: iya on 2010-11-15 06:54:07
Since bpm[0] and bpm[1] are both half of the 'dance' estimate, I can add a rule which will correct this and similar cases.
If you know that your tracks have a limited BPM range, enter the median BPM (or geometric mean) in the options and enable "always choose closest to median". This will double or half the result appropriately. E.g. with median = 130, all results will lie between ~210 and ~80.

Here are a few examples of how the BPM detection works:
The most time consuming task is creation of a spectrogram of the entire track, which is also used for replay gain estimation.
The autocorrelation of the raw PCM signal is done at the same time on the GPU, so it's practically free.
It goes from very easy to pretty difficulty:


(http://img89.imageshack.us/img89/9553/autocorrelationultrafas.png)
A very fast track, with a very clear 240 BPM. Normalizing this one to 120 BPM would be wrong.

(http://img717.imageshack.us/img717/2854/autocorrelationdance2.png)
Techno with 138 BPM. This is the threshold where there are no longer 100% correct answers, as we go from pure beat detection to "rhythm detection".

(http://img38.imageshack.us/img38/8513/autocorrelationdance3.png)
Still dance, but with some guitar parts. This is already a pretty tough call, and kinda subjective. The lyrics are at 85 BPM, but the strongest beat is at 170.

(http://img713.imageshack.us/img713/8011/autocorrelationpop.png)
Girlfriend from Avril Lavigne. Pop music is usually in 4/4 meter, so the best BPM estimate is 4 * fundamental = 164 BPM.

(http://img138.imageshack.us/img138/7561/autocorrelationpoprock.png)
Sk8er Boi from Avril Lavigne. Pop-Punk-Rock; very hard to decide between 75 and 150 BPM.

(http://img717.imageshack.us/img717/3455/autocorrelationmetal.png)
Power Metal with 200 BPM, but 100 or even 400 are not absolutely wrong - pretty much all the same.

Maybe I'll add a window or UI component to display this and other stuff, to aid in generating rules to get the correct BPM, or simply for visualization.
The moments of these functions, i.e. mean, variance, skewness and kurtosis, should make for a good similarity measure between all kind of tracks and genres.
Unfortunately, I got a few things wrong, so the next version will calculate new moments. ><
Title: foo_auto_dj
Post by: Skibbi on 2010-11-15 17:04:56
0.9.5 gives me the same BPM:
Code: [Select]
file://C:\07-royksopp-what_else_is_there.mp3
Loaded 6993k samples * 2 channels.
Channel[0] kernel took 3s. (540 GFLOP/s, 54 GB/s).
Channel[1] kernel took 3s. (541 GFLOP/s, 54 GB/s).
dB(ISO226) = -13.3818760 -> ReplayGain = -8.5807133
bpm[0] = 57.4962848 -[x4]-> 229.9851391 (-68.5242509)
bpm[1] = 229.3119739 (-68.5242509)
σ = 0.0251324, max = 0.2085064 = 8.2963264σ
Moments = 0.1635099, 0.0027788, 6.0836700, 84.2306887, 0.0000223, 0.0006316, 3.7956916, 148.1553680,
BPM[1] = 19.1623671 = 0.0833333 * bpm[0] -> 229.9484047
BPM[1] = 19.1623671 = 0.0833333 * bpm[1] -> 229.9484047
Looks like Dance: BPM = 229.9580995

Failed:Sharing violation

And small issue - if the track is playing plugin cannot update the tags. I suppose it should do it (atleast foobar itself can update tags).
Title: foo_auto_dj
Post by: elenhil on 2010-11-16 11:32:08
What are BPM[0] and BPM[1] and why does the plugin select the first value in full mode and the second one in light mode?

Code: [Select]
file://C:\Users\Elenhil\Music\300\01 - To Victory.flac
Loaded 3411k samples * 2 channels.
Channel[0] kernel took 2s. (346 GFLOP/s, 35 GB/s).
Channel[1] kernel took 2s. (347 GFLOP/s, 35 GB/s).
dB(ISO226) = -17.1026917 -> ReplayGain = -4.8598976
bpm[0] = 20.0034139 -[x4]-> 80.0136558 (-81.6472195)
bpm[1] = 140.4535746 (-133.0145831)
σ = 6230.2618556, max = 52486.2031250 = 8.4243976σ
Moments = 0.0638778, 0.0044562, 2.4007020, 11.7108559, 3.3358612, 38816162.7896339, 3.5127242, 106.0273694,
BPM[0] = 20.0001613 = 0.2500000 * bpm[0] -> 80.0006451
BPM[1] = 181.1006405
Looks like Pop: BPM = 80.0006451

Total time: 7s (23 x realtime)



Code: [Select]
file://C:\Users\Elenhil\Music\300\01 - To Victory.flac
Loaded 3411k samples * 2 channels.
dB(ISO226) = -17.1026917 -> ReplayGain = -4.8598976
bpm[0] = 20.0034136 -[x4]-> 80.0136542 (-81.6465608)
bpm[1] = 140.4535761 (-133.0138938)

Total time: 7s (23 x realtime)


Title: foo_auto_dj
Post by: iya on 2010-11-16 12:40:01
After the above diagrams are calculated, a few peaks are selected and compared with each other, trying to find the best value.
This is still a work in progress, and while rules are added or simplified, it's possible that one track gets fixed but others become wrong.
bpm[0] and bpm[1] are based on the spectrogram (the red line), which is transformed once more, to remove the bias.
bpm[0] is the first significant multiple of the fundamental peak.
bpm[1] is the first significant peak. bpm_dance is an alternate first peak. The value in brackets, .e.g. (-81.6472195) is the height of the peak and is taken into account when in doubt.
Both are influenced by the median BPM setting in the options: a higher value will lower the threshold for selecting the peaks, increasing the chance to pick a higher BPM peak.
BPM[0] and BPM[1] and BPM_DANCE are similarly based on the raw signal (the blue line) and are not available in light mode.

So light mode and median BPM setting will influence the results as well as the peak finding algorithm which can change from version to version.
Title: foo_auto_dj
Post by: odyssey on 2010-11-16 22:48:20
Well it crashes alot. Haven't got it to analyze one single file yet in either normal nor light mode.

Didn't try it out much yet. Still need to understand the concept really.

Where does it save analysed information - In tags or it's own database?

Since you seem to have a beatmixing DSP on your todo-list (which would be totally awesome), have you considered making a pitch-analyser as well, to create harmonic playlists easily?
Title: foo_auto_dj
Post by: iya on 2010-11-17 06:00:30
Well it crashes alot. Haven't got it to analyze one single file yet in either normal nor light mode.

Didn't try it out much yet. Still need to understand the concept really.

Where does it save analysed information - In tags or it's own database?

Since you seem to have a beatmixing DSP on your todo-list (which would be totally awesome), have you considered making a pitch-analyser as well, to create harmonic playlists easily?

Can you send me the crash log? In fact just the version and crash location is usually enough.

It saves the BPM to the %BPM% tag. And the supposed similarity information to the %MOMENTS% tag.
The ReplayGain is stored the usual way and is compatible to the original ReplayGain.

Everything else is kept in a runtime database, like 60 recent titles and 20 recent artists, which are banned. If you have artists which should never be banned, you can enter them in advanced config.
To filter out different versions of the same track, the titles must match up exactly, so I try to move the cover/version information into a %VERSION% tag, and use custom titleformatting to display it.

I'm not sure what you mean with harmonic playlists. Like, a song with high pitched lyrics followed by a similar song, etc.?

The thing, is I'm not really into DJing, more into signal analysis.
So I'm not sure how to do beatmixing properly. If we speed up or slow down a track, the pitch will change slightly. I suppose that's ok? Then how (when) do we actually return to the correct speed?
I'll probably do a more simple initial or alternate version which will approximately match up the beats without changing the speed, and to sort out even more fundamental stuff, like some tracks already fading out "naturally", while others ending abruptly. Making transitions of approx. the same length and with constant loudness should be possible, but it might be boring? Should there be some alternatives, like hard cuts? Also some tracks, like very long ones, might benefit from an "end after xx:xx" hint (tag).
Title: foo_auto_dj
Post by: carpman on 2010-11-17 06:29:01
I'm not sure what you mean with harmonic playlists. Like, a song with high pitched lyrics followed by a similar song, etc.?

More likely key detection. So you could create playlists with same and related keys. I'm guessing, but that's potentially quite handy if it can be done well.

C.

ps. I had a look at the spreadsheet, but it was hard to understand quite what it's doing (without any idea as to its particular aims). Can you, outline in general terms what the approach is. For example, hotness tries to tell you which tracks are currently big hits with you, DAR attempts to rate tracks on a level playing field negating such factors as track age and track duration. What is Auto DJ doing?
Title: foo_auto_dj
Post by: iya on 2010-11-17 07:06:30
I'm not sure what you mean with harmonic playlists. Like, a song with high pitched lyrics followed by a similar song, etc.?

More likely key detection. So you could create playlists with same and related keys. I'm guessing, but that's potentially quite handy if it can be done well.

C.

ps. I had a look at the spreadsheet, but it was hard to understand quite what it's doing (without any idea as to its particular aims). Can you, outline in general terms what the approach is. For example, hotness tries to tell you which tracks are currently big hits with you, DAR attempts to rate tracks on a level playing field negating such factors as track age and track duration. What is Auto DJ doing?

It's like the reverse. It'll not rate tracks by how they are played but play them by their rating and other data.
The priority in the spreadsheet shows the evolution of how likely a track is to be added to the auto playlist after it was last played. The actual probability is priority / sum of all priorities.
Higher rated tracks as well as new tracks have a shorter cool down time and higher limit probability. Also tracks are unlikely to be played at exactly the same time of day as before.

I've taken a look at the wikipedia articles on Harmonic mixing and Beatmatching. Looks like you're supposed to change the speed independent of the pitch. Ah, difficult. Is there a good free algorithm which can do that? As for the key detection; it would be easy if you already have the tags, but finding the dominant key looks like quite the challenge.
Title: foo_auto_dj
Post by: carpman on 2010-11-17 07:17:02
but finding the dominant key looks like quite the challenge.

I think so.

So, when you're talking about rating, are you talking about the rating that people have manually applied to their songs? Like 4 stars?

C.
Title: foo_auto_dj
Post by: odyssey on 2010-11-17 07:46:04
I'm not sure what you mean with harmonic playlists. Like, a song with high pitched lyrics followed by a similar song, etc.?

More likely key detection.

That's what I meant, but it was late and I was tired
Title: foo_auto_dj
Post by: odyssey on 2010-11-17 07:57:05
I'm not sure what you mean with harmonic playlists. Like, a song with high pitched lyrics followed by a similar song, etc.?

If you do key-detection, you will find that songs with the same (or compatible) key usually fits "harmonically" together.

There are some great examples here (http://www.harmonic-mixing.com/HowTo.aspx).

So I'm not sure how to do beatmixing properly. If we speed up or slow down a track, the pitch will change slightly. I suppose that's ok? Then how (when) do we actually return to the correct speed?


From a programming perspective that's probably where things get complicated. There are tools that allows speed-change without pitch-shift, but they vary much in quality. zplane (http://www.zplane.de/index.php?page=description-elastique-dj) has some libraries available that should do it for you, but they'll probably cost you. They also have a tool (http://www.zplane.de/index.php?page=description-tonart) for key detection.

You could also take a look at Mixmeister (http://www.mixmeister.com/) to see how they line up things. It automatically finds the best overlapping of tracks and does a smooth transition of tempo-change through the transition and revert to the initial tempo outside of the transition.
Title: foo_auto_dj
Post by: carpman on 2010-11-17 08:17:20
You could take a look at this project also:
http://www.sonicvisualiser.org/ (http://www.sonicvisualiser.org/)
http://www.sonicvisualiser.org/features.html (http://www.sonicvisualiser.org/features.html)

Quote
# Run feature-extraction plugins to calculate annotations automatically, using algorithms such as beat trackers, pitch detectors and so on.
...
# Time-stretch playback, slowing right down or speeding up to a tiny fraction or huge multiple of the original speed while retaining a synchronised display.

Distributed under the GNU General Public License (v2 or later) and available for Linux, OS/X, and Windows.

C.
Title: foo_auto_dj
Post by: elenhil on 2010-11-18 07:48:49
Code: [Select]
file://C:\Users\Elenhil\Music\Alan Stivell\1971 - Renaissance Of The Celtic Harp\05 - Gaeltacht.flac
Loaded 24975k samples * 2 channels.

Failed:bad allocation
Title: foo_auto_dj
Post by: Skibbi on 2010-12-04 12:01:15
Not sure if it's a bug or feature. I've configured foobar to continue playback of tracks after restart. But if I restart foobar a track it gets removed from the autodj list and playback goes to the next track. I think it should contiune the last played track. (autodj 0.9.9)
Title: foo_auto_dj
Post by: iya on 2010-12-04 16:57:19
Not sure if it's a bug or feature. I've configured foobar to continue playback of tracks after restart. But if I restart foobar a track it gets removed from the autodj list and playback goes to the next track. I think it should contiune the last played track. (autodj 0.9.9)

The track was removed on shutdown because it was stopped, but the funny thing is that foobar still saved the playtime and later "continued" playing the next song from this time on. Will be fixed in the next version.
Title: foo_auto_dj
Post by: kruji on 2010-12-18 15:16:49
is there a public link where i can download the current version? all links seem to be broken

//edit: sorry, i got the link http://www.hydrogenaudio.org/forums/index....mp;#entry734118 (http://www.hydrogenaudio.org/forums/index.php?showtopic=84916&st=0&p=734118&#entry734118)
Title: foo_auto_dj
Post by: delusion on 2010-12-20 23:29:56
the features sound impressive!

unfortunately foobar stucks every time trying to dragndrop an mp3-file to any playlist.
this happens straight after installing the component and creating 3 playlists, called AutoPlaylist, Pool Alternative, Pool Electronic

this is my console's view

Warning sscanf = 0
.Warning sscanf = 0
.playlist[6] = "New 201010"
playlist[7] = "New 201011"
playlist[8] = "New 201012"
playlist[14] = "Auto"
Warning sscanf = 0
.Warning sscanf = 0
.
Pool update: ptr_diff = 240, nodes = 5, items = 782
max. age in "new" pool: 14963 days
Startup time : 0:03.378734
AutoDJ: No more tracks with non-zero priority!

working without "new"-playlists, didnt change anything. when adding songs, foobar hangs in processing-files-window and foobar2000.exe-process has to be stopped.
i'm going to test around again tomorrow, but any help would be helpful!

anyway, nice component, keep goin!

greetz, dls
Title: foo_auto_dj
Post by: delusion on 2010-12-21 15:42:58
the troubles i had yesterday  have been on my win7-machine with foobar 1.1.1.
was trying the component on another pc with windows xp & foobar2000 1.1.1 installed...
under these conditions foobar doesnt load the component and says...
...this component is missing a required dependency, or was made for different version...
but it seems, this is because of missing opencl compatible cpu...
Title: foo_auto_dj
Post by: iya on 2011-01-07 00:52:41
Here's the new (and probably final) version 1.0 (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=6279).

@delusion:
The lock-ups should be gone, but you have to put the relative priority in the playlist name, like: "Pool 10 Alternative", "Pool 15 Electronic", "New 100". I guess it's kind of ugly and non-intuitive.
The "New" playlist only modifies the entries of existing pools by their age, so a single one should usually be enough.
There's now a context menu command for creating a number of example playlists, to be used as a starting point after installation.

It doesn't look like I'll make the beatmixing dsp component, but here's my preferred crossfading setup, using Continuator (http://www.hydrogenaudio.org/forums/index.php?showtopic=18703):

(http://img526.imageshack.us/img526/9093/dspu.png)

(http://img828.imageshack.us/img828/4287/continuator.png)
Title: foo_auto_dj
Post by: jmccrohan on 2011-01-07 11:22:39
I have just tried 1.0 and it still causes a full system lockup when I run analyse.

I'm unable to save a screenshot, or any debug info as it locks up.

Here are the system specs:
http://imgur.com/X3fSk (http://imgur.com/X3fSk)

And the foobar report:
http://pastebin.com/EQEJMaYP (http://pastebin.com/EQEJMaYP)
Title: foo_auto_dj
Post by: iya on 2011-01-07 12:37:48
I have just tried 1.0 and it still causes a full system lockup when I run analyse.

I'm unable to save a screenshot, or any debug info as it locks up.

Here are the system specs:
http://imgur.com/X3fSk (http://imgur.com/X3fSk)

And the foobar report:
http://pastebin.com/EQEJMaYP (http://pastebin.com/EQEJMaYP)

Does the "light mode" work, or very short tracks?
Your GPU can probably not process average length tracks in under two seconds. In that case Windows will (try to) reset the display driver: WDDM Timeout (http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx).
You can increase that limit with registry keys. I've set it to 60s, to be able to run more complex kernels.
Title: foo_auto_dj
Post by: jmccrohan on 2011-01-07 14:44:42
Does the "light mode" work, or very short tracks?
Your GPU can probably not process average length tracks in under two seconds. In that case Windows will (try to) reset the display driver: WDDM Timeout (http://www.microsoft.com/whdc/device/display/wddm_timeout.mspx).
You can increase that limit with registry keys. I've set it to 60s, to be able to run more complex kernels.

Light mode works, but GPU doesn't. Even in CPU only mode, the sound stutters while the CPU is processing foo_auto_dj.

I noticed when in GPU mode that Bandwidth and clock speed are coming up as 0 GB/s and 0 MHz respectively.

Has anyone successfully managed to use an ATI card rather than an nVidia card? 
Title: foo_auto_dj
Post by: Skibbi on 2011-01-07 20:43:06
Has anyone successfully managed to use an ATI card rather than an nVidia card?

Yest it works flawlessly on HD4850. Unfortunately there is a still bug with the remembering of the last played track/position. How to reproduce it:
Code: [Select]
1. Foobar must resume playback after restart and autodj must work.
2. Start playing music.
3. Restart foobar during playback of the first track.
Result: foobar resumes playback of the track.
4. Start playing music and wait until foobar jumps to second/third/next track (you may jump to the end of song but foobar must switch track himself).
5. Restart foobar.
Result: foobar does not resume playback but remembers last track.

Iya, why you're going to discontinue the development? What about bugs? This plugin is so promising...
Title: foo_auto_dj
Post by: elenhil on 2011-01-29 13:36:03
I got weird values with v.1 like 4.797e+006 bpm...
Title: foo_auto_dj
Post by: Zarggg on 2011-02-28 22:35:53
Can I get a clarification on what "ERROR: bad allocation" means and what would cause it? The foobar console is not very helpful either.

For debugging purposes, here is the relevant info from foobar's console:
Code: [Select]
num_platforms = 1
num_devices = 1
device[0] NAME = GeForce GTX 460 SE, VENDOR = NVIDIA Corporation
Choosen OpenCL Device Info:
NAME = GeForce GTX 460 SE
VENDOR = NVIDIA Corporation
VERSION = OpenCL 1.0 CUDA
DRIVER_VERSION = 266.58
ENDIAN_LITTLE = 1
EXECUTION_CAPABILITIES: NATIVE_KERNEL = 0
EXTENSIONS = cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll  cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64
PROFILE = FULL_PROFILE
TYPE: CPU = 0, GPU = 4, ACCELERATOR = 0, DEFAULT = 0
ADDRESS_BITS = 32
GLOBAL_MEM_CACHE_SIZE = 98304
GLOBAL_MEM_CACHE_TYPE: NONE = 0, READ_ONLY = 0, READ_WRITE = 2
GLOBAL_MEM_CACHELINE_SIZE = 128
GLOBAL_MEM_SIZE = 1041694720 = 993 MiB
MAX_MEM_ALLOC_SIZE = 260423680 = 248 MiB
LOCAL_MEM_SIZE = 49152 = 48 KiB
LOCAL_MEM_TYPE: LOCAL = 1, GLOBAL = 0
MAX_CLOCK_FREQUENCY = 1296 MHz
MAX_CONSTANT_BUFFER_SIZE = 65536 = 64 KiB
MAX_PARAMETER_SIZE = 4352 = 4 KiB
MAX_WORK_ITEM_DIMENSIONS = 3
MAX_WORK_ITEM_SIZES = [1024 | 1024 | 64]
PREFERRED_VECTOR_WIDTH_CHAR = 1
PREFERRED_VECTOR_WIDTH_SHORT = 1
PREFERRED_VECTOR_WIDTH_INT = 1
PREFERRED_VECTOR_WIDTH_LONG = 1
PREFERRED_VECTOR_WIDTH_FLOAT = 1
PREFERRED_VECTOR_WIDTH_DOUBLE = 1
PROFILING_TIMER_RESOLUTION = 1000ns
QUEUE_PROPERTIES = OUT_OF_ORDER_EXEC_MODE_ENABLE = 1
SINGLE_FP_CONFIG: DENORM = 1, ROUND_TO_ZERO = 8, ROUND_TO_INF = 0, FMA = 0

Building OpenCL kernel from source.
Successfully saved binary kernel to C:\Users\Asus\AppData\Roaming\foobar2000\kernel.bin
Analyzing...
Kernel time = 0 s
GPU performance = 0 GFLOP/s, bandwidth = 0 GB/s
Title: foo_auto_dj
Post by: odyssey on 2011-03-02 14:35:04
Trying to analyze a handful of tracks with the 1.01-version crashes foobar2000:

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 21F2D78Fh
Access violation, operation: read, address: F80C315Eh

Call path:
threaded_process thread

Code bytes (21F2D78Fh):
21F2D74Fh:  00 01 44 24 18 01 44 24 28 89 7A 08 E9 F1 FE FF
21F2D75Fh:  FF 8D 44 24 44 50 52 E8 B5 F8 FF FF 83 C4 08 5F
21F2D76Fh:  5E 5D 5B 81 C4 44 01 00 00 C3 CC CC CC CC CC CC
21F2D77Fh:  CC 81 EC 18 01 00 00 53 55 8B AC 24 24 01 00 00
21F2D78Fh:  8B 45 00 8B 08 83 79 40 00 56 57 0F 84 FB 00 00
21F2D79Fh:  00 80 BC 24 30 01 00 00 00 0F 84 ED 00 00 00 8D
21F2D7AFh:  54 24 18 55 52 E8 67 F8 FF FF 83 C4 08 83 7D 04
21F2D7BFh:  00 C7 44 24 10 00 00 00 00 0F 86 AF 00 00 00 8D

Stack (21F0F004h):
21F0EFE4h:  00000000 FFFFFD34 000002E4 FFFFFD34
21F0EFF4h:  000002CC 00000019 00000000 00000000
21F0F004h:  00000001 2246A240 00000000 00000000
21F0F014h:  00000000 00000000 00000000 00000000
21F0F024h:  00000000 00000000 00000000 00000000
21F0F034h:  00000000 00000000 00000000 00000000
21F0F044h:  00000000 00000000 00000000 00000000
21F0F054h:  00000000 00000000 00000000 00000000
21F0F064h:  00000000 00000000 00000000 00000000
21F0F074h:  00000000 00000000 00000000 00000000
21F0F084h:  00000000 00000000 00000000 00000000
21F0F094h:  00000000 00000000 00000000 00000000
21F0F0A4h:  00000000 00000000 00000000 21F1ECB9
21F0F0B4h:  22460C60 00064000 00000000 21F0F0CC
21F0F0C4h:  2224EF89 1AD860E0 00000000 00000000
21F0F0D4h:  22460C60 00064000 21F0F0C8 228B4A54
21F0F0E4h:  21F0F944 222560A0 19187F8C FFFFFFFE
21F0F0F4h:  2224EF89 21F6AAAB 00000000 228B4A10
21F0F104h:  21F67299 00000000 21F0F120 00000001
21F0F114h:  228B4A10 00000000 228B4A10 00000000

Registers:
EAX: F80C315E, EBX: 2246A240, ECX: 21F0F2C4, EDX: 00000001
ESI: 00000000, EDI: 21F0F2C4, EBP: F80C315E, ESP: 21F0F004

Crash location:
Module: nvcuda
Offset: 1D78Fh
Symbol: "cuParamSetSurfRef" (+1AD6Fh)

Loaded modules:
foobar2000                      loaded at 00070000h - 00260000h
ntdll                            loaded at 77260000h - 773E0000h
kernel32                        loaded at 76460000h - 76570000h
KERNELBASE                      loaded at 76710000h - 76756000h
COMCTL32                        loaded at 70CC0000h - 70E5E000h
msvcrt                          loaded at 74E20000h - 74ECC000h
GDI32                            loaded at 76760000h - 767F0000h
USER32                          loaded at 75DA0000h - 75EA0000h
ADVAPI32                        loaded at 76C90000h - 76D30000h
sechost                          loaded at 768B0000h - 768C9000h
RPCRT4                          loaded at 76B10000h - 76C00000h
SspiCli                          loaded at 74DC0000h - 74E20000h
CRYPTBASE                        loaded at 74DB0000h - 74DBC000h
LPK                              loaded at 76B00000h - 76B0A000h
USP10                            loaded at 76810000h - 768AD000h
SHLWAPI                          loaded at 76140000h - 76197000h
DSOUND                          loaded at 74340000h - 743B2000h
ole32                            loaded at 75B80000h - 75CDC000h
WINMM                            loaded at 745E0000h - 74612000h
POWRPROF                        loaded at 71E70000h - 71E95000h
SETUPAPI                        loaded at 768D0000h - 76A6D000h
CFGMGR32                        loaded at 761A0000h - 761C7000h
OLEAUT32                        loaded at 761D0000h - 7625F000h
DEVOBJ                          loaded at 767F0000h - 76802000h
UxTheme                          loaded at 714B0000h - 71530000h
SHELL32                          loaded at 74ED0000h - 75B1A000h
zlib1                            loaded at 5A4C0000h - 5A4D4000h
shared                          loaded at 6FDF0000h - 6FE1B000h
imagehlp                        loaded at 75FE0000h - 7600A000h
dbghelp                          loaded at 733B0000h - 7349B000h
COMDLG32                        loaded at 75D10000h - 75D8B000h
Secur32                          loaded at 71D50000h - 71D58000h
CRYPT32                          loaded at 76020000h - 7613D000h
MSASN1                          loaded at 75D90000h - 75D9C000h
gdiplus                          loaded at 6E9B0000h - 6EB40000h
IMM32                            loaded at 75B20000h - 75B80000h
MSCTF                            loaded at 76D90000h - 76E5C000h
CLBCatQ                          loaded at 76A70000h - 76AF3000h
MMDevApi                        loaded at 73640000h - 73679000h
PROPSYS                          loaded at 70B90000h - 70C85000h
dwmapi                          loaded at 715D0000h - 715E3000h
foo_cdda                        loaded at 10000000h - 1004E000h
foo_converter                    loaded at 6A660000h - 6A6DB000h
foo_plorg                        loaded at 70040000h - 7007E000h
foo_ui_std                      loaded at 662A0000h - 663B8000h
MSIMG32                          loaded at 715F0000h - 715F5000h
foo_albumlist                    loaded at 02720000h - 0277C000h
foo_uie_typefind                loaded at 023C0000h - 023F0000h
foo_dsp_splineeq                loaded at 024F0000h - 0252D000h
splinecore                      loaded at 02580000h - 02588000h
mclmcrrt713                      loaded at 027E0000h - 02825000h
PSAPI                            loaded at 76670000h - 76675000h
MSVCP80                          loaded at 734A0000h - 73527000h
MSVCR80                          loaded at 73310000h - 733AB000h
MSVCR90                          loaded at 717D0000h - 71873000h
foo_rgscan                      loaded at 6A240000h - 6A28D000h
foo_bpm                          loaded at 6A1F0000h - 6A23E000h
libfftw                          loaded at 66110000h - 66296000h
foo_masstag                      loaded at 03090000h - 030E4000h
foo_audioscrobbler              loaded at 030F0000h - 03123000h
foo_dop                          loaded at 03A50000h - 03C12000h
WS2_32                          loaded at 76C00000h - 76C35000h
NSI                              loaded at 76010000h - 76016000h
QUARTZ                          loaded at 63060000h - 631D7000h
foo_convolve                    loaded at 031D0000h - 03221000h
foo_abx                          loaded at 03170000h - 031A2000h
foo_texttools                    loaded at 6FA70000h - 6FAA4000h
foo_quicksearch                  loaded at 6F960000h - 6F991000h
MSVCP90                          loaded at 71880000h - 7190E000h
foo_lyricsgrabber2              loaded at 66050000h - 6610C000h
WLDAP32                          loaded at 76C40000h - 76C85000h
python25                        loaded at 1E000000h - 1E208000h
MSVCR71                          loaded at 7C340000h - 7C396000h
foo_fileops                      loaded at 6A1A0000h - 6A1E7000h
foo_ac3                          loaded at 03330000h - 03360000h
foo_input_dts                    loaded at 69E70000h - 69ED3000h
foo_input_std                    loaded at 65EF0000h - 66045000h
foo_ui_columns                  loaded at 04EA0000h - 0502E000h
foo_channel_mixer                loaded at 037D0000h - 0380A000h
foo_dsp_effect                  loaded at 03880000h - 038B3000h
foo_customdb                    loaded at 03FE0000h - 04085000h
foo_playlist_attributes          loaded at 03E70000h - 03EC4000h
foo_lock                        loaded at 038C0000h - 038D9000h
foo_touchremote                  loaded at 044F0000h - 0455D000h
dnssd                            loaded at 6FDD0000h - 6FDE7000h
foo_dsp_hdcd                    loaded at 03970000h - 0399C000h
foo_dsp_continuator              loaded at 03910000h - 03928000h
foo_autoupdate                  loaded at 68AE0000h - 68B2C000h
foo_musicbrainz                  loaded at 69410000h - 6946C000h
WINHTTP                          loaded at 70EB0000h - 70F08000h
webio                            loaded at 70E60000h - 70EAF000h
foo_uie_lyrics_panel            loaded at 054F0000h - 05554000h
foo_uie_biography                loaded at 65E90000h - 65EE8000h
foo_dsp_std                      loaded at 67E50000h - 67E98000h
foo_dsp_yac                      loaded at 6FC80000h - 6FCA6000h
foo_uie_tagger_mod              loaded at 05190000h - 051DE000h
foo_osd                          loaded at 04090000h - 040BE000h
foo_quicktag                    loaded at 67B30000h - 67B64000h
foo_input_monkey                loaded at 05390000h - 053D8000h
foo_uie_lyrics2                  loaded at 05AD0000h - 05BBE000h
WININET                          loaded at 76570000h - 76665000h
urlmon                          loaded at 75EA0000h - 75FD6000h
iertutil                        loaded at 76260000h - 7645B000h
foo_auto_dj                      loaded at 655F0000h - 656C3000h
OpenCL                          loaded at 05040000h - 05050000h
foo_biometric                    loaded at 05560000h - 05597000h
FooID                            loaded at 05200000h - 0521A000h
foo_uie_playlists_dropdown      loaded at 05600000h - 0563C000h
foo_dsp_freeverb                loaded at 055A0000h - 055BE000h
foo_menu_addons                  loaded at 05780000h - 057B0000h
foo_uie_vis_peakmeter_spectrum  loaded at 057B0000h - 057EF000h
foo_freedb2                      loaded at 67830000h - 67870000h
foo_musicdns                    loaded at 66BC0000h - 66BE1000h
libofa                          loaded at 65E50000h - 65E81000h
libfftw3-3                      loaded at 70680000h - 707B5000h
MSVCP100                        loaded at 65DE0000h - 65E49000h
MSVCR100                        loaded at 65530000h - 655EE000h
foo_comserver2                  loaded at 059C0000h - 05A16000h
AUDIOSES                        loaded at 6D980000h - 6D9B6000h
WindowsCodecs                    loaded at 6DB60000h - 6DC5B000h
apphelp                          loaded at 70330000h - 7037C000h
DropboxExt.14                    loaded at 05A50000h - 05A67000h
MSVCP71                          loaded at 7C3A0000h - 7C41B000h
EhStorShell                      loaded at 6D9F0000h - 6DA21000h
ntshrui                          loaded at 6D910000h - 6D980000h
srvcli                          loaded at 71EB0000h - 71EC9000h
cscapi                          loaded at 05A80000h - 05A8B000h
slc                              loaded at 73630000h - 7363A000h
mswsock                          loaded at 71F40000h - 71F7C000h
wshtcpip                        loaded at 71F30000h - 71F35000h
sud                              loaded at 65470000h - 6552B000h
ADVPACK                          loaded at 653F0000h - 6541E000h
VERSION                          loaded at 73300000h - 73309000h
DUI70                            loaded at 73CC0000h - 73D72000h
_socket                          loaded at 05C90000h - 05C9D000h
wtsapi32                        loaded at 732F0000h - 732FD000h
WINSTA                          loaded at 715A0000h - 715C9000h
WINTRUST                        loaded at 75CE0000h - 75D0D000h
CFNetwork                        loaded at 73B90000h - 73C29000h
CoreFoundation                  loaded at 72F30000h - 72FFB000h
pthreadVC2                      loaded at 72F20000h - 72F30000h
WSOCK32                          loaded at 732B0000h - 732B7000h
objc                            loaded at 72F00000h - 72F1C000h
libdispatch                      loaded at 05D80000h - 05D8E000h
icuin40                          loaded at 72E00000h - 72EFD000h
icuuc40                          loaded at 72D10000h - 72DF1000h
icudt40                          loaded at 71FB0000h - 72D0C000h
ASL                              loaded at 73030000h - 73041000h
SQLite3                          loaded at 73B20000h - 73B83000h
iphlpapi                        loaded at 71F10000h - 71F2C000h
WINNSI                          loaded at 71F00000h - 71F07000h
iTunesMobileDevice              loaded at 73680000h - 737BF000h
profapi                          loaded at 732C0000h - 732CB000h
explorerframe                    loaded at 73F50000h - 740BF000h
DUser                            loaded at 73E90000h - 73EBF000h
wship6                          loaded at 71E60000h - 71E66000h
DNSAPI                          loaded at 71E10000h - 71E54000h
mdnsNSP                          loaded at 70880000h - 708A5000h
rasadhlp                        loaded at 705D0000h - 705D6000h
fwpuclnt                        loaded at 09FD0000h - 0A008000h
ntmarta                          loaded at 71F80000h - 71FA1000h
msls31                          loaded at 6C950000h - 6C97A000h
xmllite                          loaded at 6ABC0000h - 6ABEF000h
CRYPTSP                          loaded at 73290000h - 732A6000h
rsaenh                          loaded at 73250000h - 7328B000h
RpcRtRemote                      loaded at 731E0000h - 731EE000h
StructuredQuery                  loaded at 6A7F0000h - 6A84C000h
actxprxy                        loaded at 6AB70000h - 6ABBE000h
ieproxy                          loaded at 6ABF0000h - 6AC1B000h
thumbcache                      loaded at 6FCF0000h - 6FD06000h
SHDOCVW                          loaded at 6D9C0000h - 6D9EE000h
ieframe                          loaded at 6BED0000h - 6C950000h
OLEACC                          loaded at 71BB0000h - 71BEC000h
SearchFolder                    loaded at 6A750000h - 6A7F0000h
NetworkExplorer                  loaded at 6A450000h - 6A5E8000h
LINKINFO                        loaded at 6DCB0000h - 6DCB9000h
MPR                              loaded at 717A0000h - 717B2000h
SnacNp                          loaded at 60F80000h - 60F86000h
drprov                          loaded at 6A730000h - 6A738000h
ntlanman                        loaded at 6A710000h - 6A724000h
davclnt                          loaded at 6A6F0000h - 6A707000h
DAVHLPR                          loaded at 6A6E0000h - 6A6E8000h
wkscli                          loaded at 71EA0000h - 71EAF000h
netutils                        loaded at 71ED0000h - 71ED9000h
PortableDeviceApi                loaded at 6A2F0000h - 6A379000h
EhStorAPI                        loaded at 6A980000h - 6A9A2000h
MLANG                            loaded at 6BEA0000h - 6BECE000h
nvcuda                          loaded at 21F10000h - 223AC000h
nvapi                            loaded at 22470000h - 22616000h

Stack dump analysis:
Address: 21F1ECB9h (nvcuda+ECB9h), symbol: "cuParamSetSurfRef" (+C299h)
Address: 2224EF89h (nvcuda+33EF89h), symbol: "cuGraphicsD3D11RegisterResource" (+2C0FA9h)
Address: 222560A0h (nvcuda+3460A0h), symbol: "cuGraphicsD3D11RegisterResource" (+2C80C0h)
Address: 2224EF89h (nvcuda+33EF89h), symbol: "cuGraphicsD3D11RegisterResource" (+2C0FA9h)
Address: 21F6AAABh (nvcuda+5AAABh), symbol: "clGetPlatformInfo" (+6D7Bh)
Address: 21F67299h (nvcuda+57299h), symbol: "clGetPlatformInfo" (+3569h)
Address: 21F3221Dh (nvcuda+2221Dh), symbol: "cuParamSetSurfRef" (+1F7FDh)
Address: 21F6F074h (nvcuda+5F074h), symbol: "clGetPlatformInfo" (+B344h)
Address: 21F6BF0Dh (nvcuda+5BF0Dh), symbol: "clGetPlatformInfo" (+81DDh)
Address: 2224EF89h (nvcuda+33EF89h), symbol: "cuGraphicsD3D11RegisterResource" (+2C0FA9h)
Address: 05041D88h (OpenCL+1D88h), symbol: "clEnqueueMapBuffer" (+58h)
Address: 65623B0Ah (foo_auto_dj+33B0Ah), symbol: "foobar2000_get_interface" (+56FAh)
Address: 655F6902h (foo_auto_dj+6902h)
Address: 772C0F1Bh (ntdll+60F1Bh), symbol: "WinSqmIncrementDWORD" (+66h)
Address: 0015649Ch (foobar2000+E649Ch)
Address: 7729A833h (ntdll+3A833h), symbol: "RtlDetermineDosPathNameType_U" (+1FAh)
Address: 65637A38h (foo_auto_dj+47A38h), symbol: "foobar2000_get_interface" (+19628h)
Address: 7728F9F9h (ntdll+2F9F9h), symbol: "RtlAnsiCharToUnicodeChar" (+DFh)
Address: 225C9BDCh (nvapi+159BDCh), symbol: "DllRegisterServer" (+15584Ch)
Address: 0015649Ch (foobar2000+E649Ch)
Address: 7728E36Ch (ntdll+2E36Ch), symbol: "RtlInitUnicodeString" (+164h)
Address: 77293C74h (ntdll+33C74h), symbol: "RtlImageNtHeader" (+B10h)
Address: 77293CA3h (ntdll+33CA3h), symbol: "RtlImageNtHeader" (+B3Fh)
Address: 7729B3F2h (ntdll+3B3F2h), symbol: "RtlFormatCurrentUserKeyPath" (+2B1h)
Address: 7729B375h (ntdll+3B375h), symbol: "RtlFormatCurrentUserKeyPath" (+234h)
Address: 77293C74h (ntdll+33C74h), symbol: "RtlImageNtHeader" (+B10h)
Address: 77293CA3h (ntdll+33CA3h), symbol: "RtlImageNtHeader" (+B3Fh)
Address: 772A2A42h (ntdll+42A42h), symbol: "RtlPrefixUnicodeString" (+2A9h)
Address: 772A2329h (ntdll+42329h), symbol: "RtlReAllocateHeap" (+3BBh)
Address: 772A2135h (ntdll+42135h), symbol: "RtlReAllocateHeap" (+1C7h)
Address: 77293C74h (ntdll+33C74h), symbol: "RtlImageNtHeader" (+B10h)
Address: 77293CA3h (ntdll+33CA3h), symbol: "RtlImageNtHeader" (+B3Fh)
Address: 04000000h (foo_customdb+20000h), symbol: "foobar2000_get_interface" (+1D0A0h)
Address: 7729389Eh (ntdll+3389Eh), symbol: "RtlImageNtHeader" (+73Ah)
Address: 7729387Ah (ntdll+3387Ah), symbol: "RtlImageNtHeader" (+716h)
Address: 77293CA3h (ntdll+33CA3h), symbol: "RtlImageNtHeader" (+B3Fh)
Address: 772D1ECDh (ntdll+71ECDh), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 772A2135h (ntdll+42135h), symbol: "RtlReAllocateHeap" (+1C7h)
Address: 772A1FECh (ntdll+41FECh), symbol: "RtlReAllocateHeap" (+7Eh)
Address: 65F66FAAh (foo_input_std+76FAAh)
Address: 7727FB5Ah (ntdll+1FB5Ah), symbol: "NtFreeVirtualMemory" (+12h)
Address: 77292B04h (ntdll+32B04h), symbol: "RtlGetCurrentProcessorNumberEx" (+D3h)
Address: 00100000h (foobar2000+90000h)
Address: 77293C74h (ntdll+33C74h), symbol: "RtlImageNtHeader" (+B10h)
Address: 77293CA3h (ntdll+33CA3h), symbol: "RtlImageNtHeader" (+B3Fh)
Address: 772BB824h (ntdll+5B824h), symbol: "wcspbrk" (+20Dh)
Address: 77298B00h (ntdll+38B00h), symbol: "RtlIntegerToUnicodeString" (+53h)
Address: 7729389Eh (ntdll+3389Eh), symbol: "RtlImageNtHeader" (+73Ah)
Address: 7729387Ah (ntdll+3387Ah), symbol: "RtlImageNtHeader" (+716h)
Address: 772D1ECDh (ntdll+71ECDh), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 77293CA3h (ntdll+33CA3h), symbol: "RtlImageNtHeader" (+B3Fh)
Address: 77293CCEh (ntdll+33CCEh), symbol: "RtlImageNtHeader" (+B6Ah)
Address: 7729387Ah (ntdll+3387Ah), symbol: "RtlImageNtHeader" (+716h)
Address: 77293472h (ntdll+33472h), symbol: "RtlImageNtHeader" (+30Eh)
Address: 764714DDh (kernel32+114DDh), symbol: "HeapFree" (+14h)
Address: 656085DCh (foo_auto_dj+185DCh)
Address: 65608870h (foo_auto_dj+18870h)
Address: 65631843h (foo_auto_dj+41843h), symbol: "foobar2000_get_interface" (+13433h)
Address: 655F9C00h (foo_auto_dj+9C00h)
Address: 6563FEE8h (foo_auto_dj+4FEE8h), symbol: "foobar2000_get_interface" (+21AD8h)
Address: 6563E7B4h (foo_auto_dj+4E7B4h), symbol: "foobar2000_get_interface" (+203A4h)
Address: 656376CCh (foo_auto_dj+476CCh), symbol: "foobar2000_get_interface" (+192BCh)
Address: 22575967h (nvapi+105967h), symbol: "DllRegisterServer" (+1015D7h)
Address: 6563E7B0h (foo_auto_dj+4E7B0h), symbol: "foobar2000_get_interface" (+203A0h)
Address: 772D1ECDh (ntdll+71ECDh), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 7727FEF2h (ntdll+1FEF2h), symbol: "ZwContinue" (+12h)
Address: 77299E63h (ntdll+39E63h), symbol: "LdrInitializeThunk" (+1Ah)
Address: 77260000h (ntdll+0h)
Address: 656379B4h (foo_auto_dj+479B4h), symbol: "foobar2000_get_interface" (+195A4h)
Address: 6563E7C0h (foo_auto_dj+4E7C0h), symbol: "foobar2000_get_interface" (+203B0h)
Address: 65631D52h (foo_auto_dj+41D52h), symbol: "foobar2000_get_interface" (+13942h)
Address: 0014CB56h (foobar2000+DCB56h)
Address: 6FDF27D8h (shared+27D8h), symbol: "uPrintCrashInfo_OnEvent" (+B1h)
Address: 001E9C78h (foobar2000+179C78h)
Address: 001BD4E8h (foobar2000+14D4E8h)
Address: 0014CAE7h (foobar2000+DCAE7h)
Address: 001BA3F9h (foobar2000+14A3F9h)
Address: 764733CAh (kernel32+133CAh), symbol: "BaseThreadInitThunk" (+12h)
Address: 77299ED2h (ntdll+39ED2h), symbol: "RtlInitializeExceptionChain" (+63h)
Address: 7649772Fh (kernel32+3772Fh), symbol: "UnhandledExceptionFilter" (+0h)
Address: 7649772Fh (kernel32+3772Fh), symbol: "UnhandledExceptionFilter" (+0h)
Address: 772D1ECDh (ntdll+71ECDh), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 77299EA5h (ntdll+39EA5h), symbol: "RtlInitializeExceptionChain" (+36h)
Address: 0014CAB0h (foobar2000+DCAB0h)
Address: 0014CAB0h (foobar2000+DCAB0h)

Environment:
App: foobar2000 v1.1.2
OS: Windows 6.1.7601 Service Pack 1 x64
CPU: Intel® Core™2 Duo CPU    T9600  @ 2.80GHz, features: MMX SSE SSE2 SSE3 SSE4.1
Audio: Speakers (SoundMAX Integrated Digital HD Audio); SPDIF Interface (SoundMAX Integrated Digital HD Audio)
UI: Columns UI 0.3.8.7

Components:
Core (2011-01-22 00:03:02 UTC)
    foobar2000 core 1.1.2
foo_abx.dll (2009-06-07 13:25:26 UTC)
    ABX Comparator 1.3.4
foo_ac3.dll (2010-12-12 11:25:00 UTC)
    AC3 decoder 0.9.5
foo_albumlist.dll (2010-04-29 12:35:36 UTC)
    Album List 4.4
foo_audioscrobbler.dll (2010-07-19 13:28:52 UTC)
    Audioscrobbler 1.4.7
foo_auto_dj.dll (2011-03-02 14:09:53 UTC)
    Auto DJ 1.01
foo_autoupdate.dll (2010-04-19 23:21:14 UTC)
    Automatic Updater 1
foo_biometric.dll (2011-01-16 00:55:43 UTC)
    Fingerprint tools 0.3
foo_bpm.dll (2010-04-20 12:35:08 UTC)
    BPM Analyser 0.2.4.1
foo_cdda.dll (2010-04-29 12:35:30 UTC)
    CD Audio Decoder 3.0
foo_channel_mixer.dll (2008-03-12 09:37:48 UTC)
    Channel Mixer 0.9.6.5
foo_comserver2.dll (2006-07-31 19:13:20 UTC)
    COM Automation server 0.7 alpha 6
foo_converter.dll (2011-01-22 00:00:36 UTC)
    Converter 1.5
foo_convolve.dll (2006-08-04 20:57:26 UTC)
    Convolver 0.3
foo_customdb.dll (2010-03-04 11:10:54 UTC)
    Custom Database 0.1.0_beta1
foo_dop.dll (2011-01-13 01:44:05 UTC)
    iPod manager 0.6.8.8
foo_dsp_continuator.dll (2010-02-17 16:26:58 UTC)
    Continuator 0.6.1
foo_dsp_effect.dll (2011-01-09 15:31:05 UTC)
    Effect DSP 0.5
foo_dsp_freeverb.dll (2010-01-25 10:37:56 UTC)
    Freeverb 0.3
foo_dsp_hdcd.dll (2010-08-23 09:16:54 UTC)
    HDCD decoder 1.3
foo_dsp_splineeq.dll (2010-11-29 11:40:52 UTC)
    Spline Equalizer 0.5
foo_dsp_std.dll (2011-01-22 00:01:18 UTC)
    Standard DSP Array 1.0
foo_dsp_yac.dll (2010-10-13 15:36:44 UTC)
    Yet Another Convolver 1.1.0
foo_fileops.dll (2011-01-21 23:59:40 UTC)
    File Operations 2.1.3
foo_freedb2.dll (2011-01-21 23:59:42 UTC)
    freedb Tagger 0.6.3
foo_input_dts.dll (2011-02-27 22:57:34 UTC)
    DTS decoder 0.3.0
foo_input_monkey.dll (2010-08-15 22:01:19 UTC)
    Monkey's Audio Decoder 2.1.4
foo_input_std.dll (2011-01-22 00:00:58 UTC)
    Standard Input Array 1.0
foo_lock.dll (2010-01-11 11:18:36 UTC)
    Pause on Lock 0.5
foo_lyricsgrabber2.dll (2010-10-24 23:25:20 UTC)
    Lyrics Grabber 2 0.5.5.2 beta
foo_masstag.dll (2009-09-18 09:01:36 UTC)
    Masstagger 1.8.4
foo_menu_addons.dll (2010-10-24 23:22:45 UTC)
    Menu Addons 1.4.2
foo_musicbrainz.dll (2010-08-14 19:01:28 UTC)
    MusicBrainz Tagger 0.2
foo_musicdns.dll (2010-11-22 13:58:47 UTC)
    MusicDNS tagger 0.1
foo_osd.dll (2010-10-24 20:43:25 UTC)
    On-Screen Display GDI+ 1.63
foo_playlist_attributes.dll (2010-08-23 09:14:02 UTC)
    Playlist Attributes 0.3.0
foo_plorg.dll (2010-10-24 20:43:28 UTC)
    Playlist Organizer 1.7
foo_quicksearch.dll (2010-10-24 20:43:31 UTC)
    Quick Search Toolbar 2.3
foo_quicktag.dll (2010-09-17 23:23:43 UTC)
    Quick Tagger 1.0.3
foo_rgscan.dll (2011-01-22 00:00:36 UTC)
    ReplayGain Scanner 2.0.9
foo_texttools.dll (2010-09-17 23:24:02 UTC)
    Text Tools 1.0.5
foo_touchremote.dll (2010-12-30 09:18:55 UTC)
    iPhone/iPod Touch Remote support 0.1.2.1
foo_ui_columns.dll (2010-08-24 09:22:04 UTC)
    Columns UI 0.3.8.7
foo_ui_std.dll (2011-01-22 00:00:58 UTC)
    Default User Interface 0.9.5
foo_uie_biography.dll (2010-10-24 20:43:37 UTC)
    Biography View 0.4.2.3
foo_uie_lyrics2.dll (2010-04-12 18:19:24 UTC)
    Lyric Show Panel 2 0.4.6.15
foo_uie_lyrics_panel.dll (2007-08-17 21:56:36 UTC)
    Lyrics panel 0.35
foo_uie_playlists_dropdown.dll (2009-09-23 23:44:46 UTC)
    Playlists Dropdown 0.7.6
foo_uie_tagger_mod.dll (2010-10-24 15:56:25 UTC)
    Tagger Panel 1.2.2
foo_uie_typefind.dll (2007-10-22 21:30:44 UTC)
    Typefind 0.2 beta 2
foo_uie_vis_peakmeter_spectrum.dll (2008-04-19 19:18:50 UTC)
    Peakmeter Spectrum Visualisation 0.2.0.0 beta

Recent events:
TouchRemote: items modified in library: 1
TouchRemote: items modified in library: 1
TouchRemote: items modified in library: 1
TouchRemote: items modified in library: 18
num_platforms = 1
num_devices = 1
device[0] NAME = Quadro FX 2700M, VENDOR = NVIDIA Corporation
Choosen OpenCL Device Info:
NAME = Quadro FX 2700M
VENDOR = NVIDIA Corporation
VERSION = OpenCL 1.0 CUDA
DRIVER_VERSION = 258.96
ENDIAN_LITTLE = 1
EXECUTION_CAPABILITIES: NATIVE_KERNEL = 0
EXTENSIONS = cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll  cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics
PROFILE = FULL_PROFILE
TYPE: CPU = 0, GPU = 4, ACCELERATOR = 0, DEFAULT = 0
ADDRESS_BITS = 32
GLOBAL_MEM_CACHE_SIZE = 0
GLOBAL_MEM_CACHE_TYPE: NONE = 0, READ_ONLY = 0, READ_WRITE = 0
GLOBAL_MEM_CACHELINE_SIZE = 0
GLOBAL_MEM_SIZE = 521732096 = 497 MiB
MAX_MEM_ALLOC_SIZE = 134217728 = 128 MiB
LOCAL_MEM_SIZE = 16384 = 16 KiB
LOCAL_MEM_TYPE: LOCAL = 1, GLOBAL = 0
MAX_CLOCK_FREQUENCY = 1325 MHz
MAX_CONSTANT_BUFFER_SIZE = 65536 = 64 KiB
MAX_PARAMETER_SIZE = 4352 = 4 KiB
MAX_WORK_ITEM_DIMENSIONS = 3
MAX_WORK_ITEM_SIZES = [512 | 512 | 64]
PREFERRED_VECTOR_WIDTH_CHAR = 1
PREFERRED_VECTOR_WIDTH_SHORT = 1
PREFERRED_VECTOR_WIDTH_INT = 1
PREFERRED_VECTOR_WIDTH_LONG = 1
PREFERRED_VECTOR_WIDTH_FLOAT = 1
PREFERRED_VECTOR_WIDTH_DOUBLE = 0
PROFILING_TIMER_RESOLUTION = 1000ns
QUEUE_PROPERTIES = OUT_OF_ORDER_EXEC_MODE_ENABLE = 1
SINGLE_FP_CONFIG: DENORM = 0, ROUND_TO_ZERO = 8, ROUND_TO_INF = 0, FMA = 0
Building OpenCL kernel from source.
Line 373: OpenCL error = -30 (CL_INVALID_VALUE)
Line 375: OpenCL error = -44 (CL_INVALID_PROGRAM)
Line 381: OpenCL error = -44 (CL_INVALID_PROGRAM)
Title: foo_auto_dj
Post by: nightgaunt on 2011-04-04 17:03:40
link in initial post appears to be dead. has this plugin been terminated, or is it available elsewhere?
Title: foo_auto_dj
Post by: iya on 2011-05-05 01:20:06
Can I get a clarification on what "ERROR: bad allocation" means and what would cause it? The foobar console is not very helpful either.

If other tracks work, my best guess is that the track is too long with a too high sample rate. Your main RAM must be able to hold all channels downsampled by a factor of 2, as floats, i.e. 4 bytes per sample, and GPU memory must be available for one channel - this should not take up additional main RAM, but it's probably implementation dependent.


@odyssey
Looks like it can't compile the source code, which is weird, as it's embedded in the file. clCreateProgramWithSource (http://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/clCreateProgramWithSource.html) returns CL_INVALID_VALUE "if count is zero or if strings or any entry in strings is NULL." Not sure how this can happen, as it was pretty much hardcoded, but I changed it to the version taking a null-terminated string and no indicated size. Maybe it helps, unfortunately I can't debug on Nvidia hardware.


link in initial post appears to be dead. has this plugin been terminated, or is it available elsewhere?

It's available in this thread (http://www.hydrogenaudio.org/forums/index.php?showtopic=84916&view=getlastpost), with the current version 1.02 (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=6486).
Title: foo_auto_dj
Post by: jabberwocky_one on 2011-05-05 18:24:24
Hello, glad that the new version doesn't crash foobar anymore when error'd

Here's my error log:
It happens when I just "Analyse as single track".
Track length: 7:56
Not on Light mode, No options are checked in File > Auto DJ >

It seems that I am suffering from the same error as the previous 2 Nvidia card users.
Namely, this "GPU performance = 0 GFLOP/s, bandwidth = 0 GB/s" and "Line 374: OpenCL error = -30 (CL_INVALID_VALUE)" seem to be a common error.

The window box Analyze results showed:
Code: [Select]
file://*.mp3
Loaded 10495k samples * 2 channels.

Total time: 3s (181 x realtime)

Console:
Code: [Select]
[01:17:21] [01:17:25] # platforms = 1
platform[0] VENDOR = NVIDIA Corporation
# devices = 1
device[0] NAME = GeForce 310M, VENDOR = NVIDIA Corporation
[01:17:25] Choosen OpenCL Device Info:
NAME = GeForce 310M
VENDOR = NVIDIA Corporation
VERSION = OpenCL 1.0 CUDA
DRIVER_VERSION = 258.87
ENDIAN_LITTLE = 1
EXECUTION_CAPABILITIES: NATIVE_KERNEL = 0
EXTENSIONS = cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll  cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics
PROFILE = FULL_PROFILE
TYPE: CPU = 0, GPU = 4, ACCELERATOR = 0, DEFAULT = 0
ADDRESS_BITS = 32
GLOBAL_MEM_CACHE_SIZE = 0
GLOBAL_MEM_CACHE_TYPE: NONE = 0, READ_ONLY = 0, READ_WRITE = 0
GLOBAL_MEM_CACHELINE_SIZE = 0
GLOBAL_MEM_SIZE = 431489024 = 411 MiB
MAX_MEM_ALLOC_SIZE = 134217728 = 128 MiB
LOCAL_MEM_SIZE = 16384 = 16 KiB
LOCAL_MEM_TYPE: LOCAL = 1, GLOBAL = 0
MAX_CLOCK_FREQUENCY = 1530 MHz
MAX_CONSTANT_BUFFER_SIZE = 65536 = 64 KiB
MAX_PARAMETER_SIZE = 4352 = 4 KiB
MAX_WORK_ITEM_DIMENSIONS = 3
MAX_WORK_ITEM_SIZES = [512 | 512 | 64]
PREFERRED_VECTOR_WIDTH_CHAR = 1
PREFERRED_VECTOR_WIDTH_SHORT = 1
PREFERRED_VECTOR_WIDTH_INT = 1
PREFERRED_VECTOR_WIDTH_LONG = 1
PREFERRED_VECTOR_WIDTH_FLOAT = 1
PREFERRED_VECTOR_WIDTH_DOUBLE = 0
PROFILING_TIMER_RESOLUTION = 1000ns
QUEUE_PROPERTIES = OUT_OF_ORDER_EXEC_MODE_ENABLE = 1
SINGLE_FP_CONFIG: DENORM = 0, ROUND_TO_ZERO = 8, ROUND_TO_INF = 0, FMA = 0

[01:17:25] Building OpenCL kernel from source.
Line 374: OpenCL error = -30 (CL_INVALID_VALUE)
[01:17:28] Error: OpenCL kernel not initialized. Cannot analyze track.
[01:17:28] Analyzing...
BPM = -1
[01:17:28] Kernel time = 0 s
GPU performance = 0 GFLOP/s, bandwidth = 0 GB/s
Title: foo_auto_dj
Post by: Zarggg on 2011-05-06 18:59:02
(I must have cancelled my reply by mistake. It doesn't look like it got binned...)
Can I get a clarification on what "ERROR: bad allocation" means and what would cause it? The foobar console is not very helpful either.

If other tracks work, my best guess is that the track is too long with a too high sample rate. Your main RAM must be able to hold all channels downsampled by a factor of 2, as floats, i.e. 4 bytes per sample, and GPU memory must be available for one channel - this should not take up additional main RAM, but it's probably implementation dependent.

This happened for all files I tried analyzing. I have 8GB system RAM and 1GB video RAM (GeForce GTX 460SE). I'd hope that would be enough.

I'll try 1.0.2 and see if anything changes for me.

Edit: Nope. Progress in foo_auto_dj completely halts once the bottom (individual file, I assume) progress bar reaches the half-way point and nothing seems to happen at all -- fb2k memory uses goes up to just over 500MB and doesn't fluctuate at all to indicate anything is happening, and CPU usage just sits around 6~8%. When I click Abort, foobar crashes, with the component being indicated as the cause in the crash report.
Title: foo_auto_dj
Post by: Ephoras on 2011-05-17 09:06:44
hum, semms like the downlaod link is down....


any chance it gets reupped?


EDIT: found it in the download section...sry
Title: foo_auto_dj
Post by: iya on 2011-06-04 20:32:32
Looks like nvidida specific problems during clCreateProgramWithSource or clBuildProgram.
Zarggg's is different but maybe related, as it builds correctly and then does not return from execution, with no errors reported before.
This version does not fix it, but might help to identify it further by printing the build log:
foo_auto_dj_1.03 (http://www.hydrogenaudio.org/forums/index.php?act=attach&type=post&id=6539).
Title: foo_auto_dj
Post by: jabberwocky_one on 2011-06-08 13:52:33
Tested with the newer 1.03.
Log:

Result window:
file://*.mp3
Loaded 5507k samples * 2 channels.

Total time: 2s (163 x realtime)

Console:
Code: [Select]
[20:49:44] # platforms = 1
platform[0] VENDOR = NVIDIA Corporation
# devices = 1
device[0] NAME = GeForce 310M, VENDOR = NVIDIA Corporation
[20:49:44] Choosen OpenCL Device Info:
NAME = GeForce 310M
VENDOR = NVIDIA Corporation
VERSION = OpenCL 1.0 CUDA
DRIVER_VERSION = 275.33
ENDIAN_LITTLE = 1
EXECUTION_CAPABILITIES: NATIVE_KERNEL = 0
EXTENSIONS = cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_d3d9_sharing cl_nv_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll  cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics
PROFILE = FULL_PROFILE
TYPE: CPU = 0, GPU = 4, ACCELERATOR = 0, DEFAULT = 0
ADDRESS_BITS = 32
GLOBAL_MEM_CACHE_SIZE = 0
GLOBAL_MEM_CACHE_TYPE: NONE = 0, READ_ONLY = 0, READ_WRITE = 0
GLOBAL_MEM_CACHELINE_SIZE = 0
GLOBAL_MEM_SIZE = 456720384 = 435 MiB
MAX_MEM_ALLOC_SIZE = 134217728 = 128 MiB
LOCAL_MEM_SIZE = 16384 = 16 KiB
LOCAL_MEM_TYPE: LOCAL = 1, GLOBAL = 0
MAX_CLOCK_FREQUENCY = 1530 MHz
MAX_CONSTANT_BUFFER_SIZE = 65536 = 64 KiB
MAX_PARAMETER_SIZE = 4352 = 4 KiB
MAX_WORK_ITEM_DIMENSIONS = 3
MAX_WORK_ITEM_SIZES = [512 | 512 | 64]
PREFERRED_VECTOR_WIDTH_CHAR = 1
PREFERRED_VECTOR_WIDTH_SHORT = 1
PREFERRED_VECTOR_WIDTH_INT = 1
PREFERRED_VECTOR_WIDTH_LONG = 1
PREFERRED_VECTOR_WIDTH_FLOAT = 1
PREFERRED_VECTOR_WIDTH_DOUBLE = 0
PROFILING_TIMER_RESOLUTION = 1000ns
QUEUE_PROPERTIES = OUT_OF_ORDER_EXEC_MODE_ENABLE = 1
SINGLE_FP_CONFIG: DENORM = 0, ROUND_TO_ZERO = 8, ROUND_TO_INF = 0, FMA = 0

[20:49:44] Line 373: OpenCL error = -30 (CL_INVALID_VALUE)
Error: Couldn't build OpenCL kernel from source.
[20:49:45] Error: OpenCL kernel not initialized. Cannot analyze track.
[20:49:45] Analyzing...
BPM = -1
[20:49:45] Kernel time = 0 s
GPU performance = 0 GFLOP/s, bandwidth = 0 GB/s

Thanks for your continued effort.
Title: foo_auto_dj
Post by: Zarggg on 2011-06-10 03:12:33
I just downloaded the new version, but won't get a chance to test for a day or two. I'll report my findings when I do.
Title: foo_auto_dj
Post by: iya on 2011-06-18 22:15:45
clCreateProgramWithSource (http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateProgramWithSource.html) returns CL_INVALID_VALUE and I don't know why.

I've built a simple test case, just for the OpenCL stuff:
OpenCLTest.zip (http://bit.ly/myPKym)

The archive includes the source and binary.
Title: foo_auto_dj
Post by: jabberwocky_one on 2011-06-21 17:24:11
clCreateProgramWithSource (http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/clCreateProgramWithSource.html) returns CL_INVALID_VALUE and I don't know why.

I've built a simple test case, just for the OpenCL stuff:
OpenCLTest.zip (http://bit.ly/myPKym)

The archive includes the source and binary.


Upon running the .exe included under Release: A cmd window pops up and displays:
OpenCLError: 'clBuildProgram(*CLProgram, 1, &devices[preferred], "-cl-denorms-are-zero -cl-mad-enable -cl-no-signed-zeros -cl-fast-relaxed-math", NULL, NULL)' returned -11!

then it crashes with the generic win7 "XYZ.exe has stopped responding. Windows is trying to find a solution etc."
Title: foo_auto_dj
Post by: iya on 2011-06-21 20:41:39
Thanks for testing.
The error is a little different than in the foobar component:
Quote
CL_BUILD_PROGRAM_FAILURE if there is a failure to build the program executable. This error will be returned if clBuildProgram does not return until the build has completed.

Looks like CUDA doesn't like my OpenCL source code. AMD Kernel Analyzer compiles it with no complaints, though.
Maybe somebody else can take a shot at debugging. The embedded source is shortened, but equivalent to autocovariance.cl (http://pastebin.com/xnPGiRKG).
Title: foo_auto_dj
Post by: Zarggg on 2011-06-24 04:37:02
I'm still getting issues where foobar2000 locks up (and sometimes crashes) during a scan. There's no log to give you. The best I could do is a process dump when the crash occurs, but I'm not sure how useful that would be to you.