Author Topic: BASS for iOS (iPhone/iPad)  (Read 599379 times)

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #925 on: 28 Nov '14 - 14:07 »
i am using BASS_FX_BPM_BeatDecodeGet to get beats. If i use this function when stream is not playing (set start and end parameters) i get the first beat let's say at 0.38 seconds. When beat is playing i get the first beat at 0.32 seconds, which is the correct time! Why BASS_FX_BPM_BeatDecodeGet returns wrong first beat if stream is not playing? Or maybe am i doing something wrong?

To confirm, you're getting correct beat positions when using BASS_FX_BPM_BeatCallbackSet but not when using BASS_FX_BPM_BeatDecodeGet, ie. your BPMBEATPROC callback is receiving different "beatpos" values in each case? Is it only the 1st beats that are different? To perhaps help locate the problem, does it only happen when using both methods, ie. if you don't use BASS_FX_BPM_BeatCallbackSet, does BASS_FX_BPM_BeatDecodeGet then give the same beat positions as BASS_FX_BPM_BeatCallbackSet would?

Bass fx is missing 64 bit simulator support. Can you please add it?

The "x86_64" architecture has started being introduced to each of the iOS libraries, so those that don't currently include it (like BASS_FX), should do in their next release.

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #926 on: 28 Nov '14 - 17:43 »
The latest version (2.4.2) of the BASSFLAC add-on is now up in the 1st post, updating the core decoder to libFLAC 1.3.1.

ppeau

  • Posts: 48
Re: BASS for iOS (iPhone/iPad)
« Reply #927 on: 1 Dec '14 - 04:33 »
Hi I'm back to you due to a psynch_mutexwait that I recieve many times randomly when I wanna use BASS_Mixer_ChannelGetLevel.

It never happens with the BASS_ChannelGetLevel just with the mixer.
This is the code who I'm using it is very simple, it is to simulate an EQ. and the BASS_Mixer_ChannelGetLevel run into a CADisplayLink.

and also I really want to use the //BASS_ChannelSetAttribute(mixer_, BASS_ATTRIB_NOBUFFER, 1); otherwise the delay is too bad but seems to get trouble with the getlevel ???

Code: [Select]
BASS_Init(-1, 44100, 0, 0, NULL);
        
        BASS_SetConfig(BASS_CONFIG_BUFFER, 500);
        BASS_SetConfig(BASS_CONFIG_MIXER_BUFFER,1);
        BASS_SetConfig(BASS_CONFIG_UPDATETHREADS, 1);
        BASS_SetConfig(BASS_CONFIG_UPDATEPERIOD, 30);
        
        NSString* file = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"wav"];
        
        playback_ = BASS_StreamCreateFile(0, [file UTF8String], 0, 0, BASS_SAMPLE_FLOAT|BASS_STREAM_PRESCAN| BASS_STREAM_DECODE);
        reverse_ = BASS_FX_ReverseCreate(playback_, 1, BASS_STREAM_DECODE);
        tempo_ = BASS_FX_TempoCreate(reverse_, BASS_SAMPLE_FLOAT | BASS_STREAM_DECODE | BASS_FX_FREESOURCE);
        
        BASS_ChannelSetAttribute(reverse_, BASS_ATTRIB_REVERSE_DIR, BASS_FX_RVS_FORWARD);
        BASS_ChannelSetPosition(tempo_,0, BASS_POS_BYTE);
        
        BASS_CHANNELINFO ci;
        BASS_ChannelGetInfo(tempo_, &ci);
        mixer_ = BASS_Mixer_StreamCreate(ci.freq, ci.chans, BASS_MIXER_NONSTOP | BASS_MIXER_RESUME);
        
        //BASS_ChannelSetAttribute(mixer_, BASS_ATTRIB_NOBUFFER, 1); need maximun responsiveness, but if uncomment the deadlock appear each time maybe due to BASS_MIXER_BUFFER required for the getlevel but  not compatible with the BASS_ATTRIB_NOBUFFER ???.
        BASS_Mixer_StreamAddChannel(mixer_, tempo_, BASS_MIXER_BUFFER);
        
// GO
        BASS_ChannelPlay(mixer_, true);
        BASS_Mixer_ChannelFlags(tempo_, 0, BASS_MIXER_PAUSE);


// loop where the BASS_Mixer_ChannelGetLevel( is called
- (void)gameLoop:(CADisplayLink*) sender {
    
    DWORD level, left, right;
    level = BASS_Mixer_ChannelGetLevel(tempo_); // sometimes a psynch_mutexwait appear randomly right here, with BASS_ChannelGetLevel  the issue never appear
    right = LOWORD(level);
    left = HIWORD(level);
}

Any idea ???

« Last Edit: 1 Dec '14 - 04:41 by ppeau »

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #928 on: 1 Dec '14 - 14:39 »
That looks like you have a deadlock there, ie. the app isn't crashing but it becomes unresponsive? That is typically caused by a callback function doing something that has to wait for the main thread, eg. UI stuff. Do you have any callback functions (SYNCPROC/DSPPROC/etc), and if so, what are they doing? If you do need to do UI stuff in a callback, you could perhaps do it asynchronously something like this...

Code: [Select]
dispatch_async(dispatch_get_main_queue(), ^{
// UI stuff
});

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #929 on: 1 Dec '14 - 16:17 »
To confirm, you're getting correct beat positions when using BASS_FX_BPM_BeatCallbackSet but not when using BASS_FX_BPM_BeatDecodeGet, ie. your BPMBEATPROC callback is receiving different "beatpos" values in each case? Is it only the 1st beats that are different? To perhaps help locate the problem, does it only happen when using both methods, ie. if you don't use BASS_FX_BPM_BeatCallbackSet, does BASS_FX_BPM_BeatDecodeGet then give the same beat positions as BASS_FX_BPM_BeatCallbackSet would?

When i use BASS_FX_BPM_BeatDecodeGet i get the first beat position wrong.
When channel is playing i get first beat position correct.
All other beats looks fine as far as i have tested with several songs.
So only the first beat is the problem when using BASS_FX_BPM_BeatDecodeGet.
Of course i setup the callback in BASS_FX_BPM_BeatDecodeGet and the same callback is used when channel is playing.
Hope this makes it more clear.

Regards,
Grega

ppeau

  • Posts: 48
Re: BASS for iOS (iPhone/iPad)
« Reply #930 on: 1 Dec '14 - 16:25 »
Yes exactly is a deadlock, but I isolate it in a very small project with just the 2 methods as you can see and the issue happens.
and if I use the BASS_ATTRIB_NOBUFFER with the mixer it is even worse.

Smaller the buffer is with a low devise : the deadlock happens quickly.
If i run the code in the simulator (who use my mac's cpu) the lock doesn't happen.

The Bass_ChannelGetData seems to wait for some values but it won't receive them.
so I can run the BASS_Mixer_ChannelGetLevel in async thread but I'm not sure that the Bass_ChannelGetData will receive the data and won't lock the thread. I'm going to try that

I'm using the CADisplayLink because after getting the information from the BASS_Mixer_ChannelGetLevel i need to refresh the UI each time to show the EQ level. so I need to be in the main thread.

otherwise, is there an another way to get the current level of the current playing stream without using the BASS_Mixer_ChannelGetLevel and also where I can set the BASS_ATTRIB_NOBUFFER for the mixer to avoid extra delay ?

In fact I'm trying to understand the difference between the stream outside and the stream in the mixer, and why in the first case I don't get a deadlock ?

ppeau

  • Posts: 48
Re: BASS for iOS (iPhone/iPad)
« Reply #931 on: 1 Dec '14 - 16:48 »
To confirm, you're getting correct beat positions when using BASS_FX_BPM_BeatCallbackSet but not when using BASS_FX_BPM_BeatDecodeGet, ie. your BPMBEATPROC callback is receiving different "beatpos" values in each case? Is it only the 1st beats that are different? To perhaps help locate the problem, does it only happen when using both methods, ie. if you don't use BASS_FX_BPM_BeatCallbackSet, does BASS_FX_BPM_BeatDecodeGet then give the same beat positions as BASS_FX_BPM_BeatCallbackSet would?

When i use BASS_FX_BPM_BeatDecodeGet i get the first beat position wrong.
When channel is playing i get first beat position correct.
All other beats looks fine as far as i have tested with several songs.
So only the first beat is the problem when using BASS_FX_BPM_BeatDecodeGet.
Of course i setup the callback in BASS_FX_BPM_BeatDecodeGet and the same callback is used when channel is playing.
Hope this makes it more clear.

Regards,
Grega

HI grega, if I can give you an advice : I experienced the same issue than you with BASS_FX_BPM_BeatDecodeGet, but after a lot of tests with the beat methods available in bass_fx, the result of the beat detection is not efficient at all. That uses the SoundTouch library who is not good even for the bpm.
If for example, you are trying to build something efficient like beat sync avoid it and try to do something from crash by yourself, you'll save a lot of time.

best, Pat

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #932 on: 1 Dec '14 - 17:42 »
When i use BASS_FX_BPM_BeatDecodeGet i get the first beat position wrong.
When channel is playing i get first beat position correct.
All other beats looks fine as far as i have tested with several songs.
So only the first beat is the problem when using BASS_FX_BPM_BeatDecodeGet.
Of course i setup the callback in BASS_FX_BPM_BeatDecodeGet and the same callback is used when channel is playing.
Hope this makes it more clear.

Just to be clear, do you still get a different 1st beat position when using BASS_FX_BPM_BeatDecodeGet without first using BASS_FX_BPM_BeatCallbackSet? The reason I ask is that BASS_FX_BPM_BeatDecodeGet will re-use the existing beat detection instance if the channel has one, and perhaps the instance from an earlier BASS_FX_BPM_BeatCallbackSet call isn't being properly reset. If you aren't already doing so, you could try calling BASS_FX_BPM_BeatFree to ensure that there isn't an existing instance prior to calling BASS_FX_BPM_BeatDecodeGet.

The Bass_ChannelGetData seems to wait for some values but it won't receive them.

BASS_ChannelGetData will be waiting to acquire a lock. The deadlock will be due to another thread holding that lock and it isn't releasing the lock because it's also waiting for something, eg. perhaps the main thread (which is stuck in BASS_ChannelGetData). To help find out what/where that other thread is, please post the call stacks of all of the threads.

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #933 on: 1 Dec '14 - 18:32 »
HI grega, if I can give you an advice : I experienced the same issue than you with BASS_FX_BPM_BeatDecodeGet, but after a lot of tests with the beat methods available in bass_fx, the result of the beat detection is not efficient at all. That uses the SoundTouch library who is not good even for the bpm.
If for example, you are trying to build something efficient like beat sync avoid it and try to do something from crash by yourself, you'll save a lot of time.

best, Pat

Thanks Pat, did you try any other library or did you do it by yourself?

Quote from: Ian
Just to be clear, do you still get a different 1st beat position when using BASS_FX_BPM_BeatDecodeGet without first using BASS_FX_BPM_BeatCallbackSet? The reason I ask is that BASS_FX_BPM_BeatDecodeGet will re-use the existing beat detection instance if the channel has one, and perhaps the instance from an earlier BASS_FX_BPM_BeatCallbackSet call isn't being properly reset. If you aren't already doing so, you could try calling BASS_FX_BPM_BeatFree to ensure that there isn't an existing instance prior to calling BASS_FX_BPM_BeatDecodeGet.

Yes i do. I create a decoded stream, set position to 0, then call BASS_FX_BPM_BeatDecodeGet with callback set. The first beat is detected at 0,38 sec for example. Then i play the channel using Play method and first beat is detected at 0,32 sec. Which is the correct one - checked with audio editor. So it looks like BASS_FX_BPM_BeatDecodeGet has a bug?

Regards,
Grega

ppeau

  • Posts: 48
Re: BASS for iOS (iPhone/iPad)
« Reply #934 on: 1 Dec '14 - 18:58 »
The Bass_ChannelGetData seems to wait for some values but it won't receive them.

BASS_ChannelGetData will be waiting to acquire a lock. The deadlock will be due to another thread holding that lock and it isn't releasing the lock because it's also waiting for something, eg. perhaps the main thread (which is stuck in BASS_ChannelGetData). To help find out what/where that other thread is, please post the call stacks of all of the threads.

This is the smallest that I can do  :D
You've got all in one : threads at left and the entire and extremely simple code at right.
As you can see I added the BASS_ATTRIB_NOBUFFER setting to accelerate the crash or lock (about 5 seconds with an iPhone 5), works also without the no buffer but take a while to stop.

and if I replace BASS_Mixer_ChannelGetLevel(playback_); by BASS_ChannelGetLevel(playback_);
Magic, the issue is gone. It just plays a little too fast  ;D.

Thanks Pat


ppeau

  • Posts: 48
Re: BASS for iOS (iPhone/iPad)
« Reply #935 on: 1 Dec '14 - 19:36 »
HI grega, if I can give you an advice : I experienced the same issue than you with BASS_FX_BPM_BeatDecodeGet, but after a lot of tests with the beat methods available in bass_fx, the result of the beat detection is not efficient at all. That uses the SoundTouch library who is not good even for the bpm.
If for example, you are trying to build something efficient like beat sync avoid it and try to do something from crash by yourself, you'll save a lot of time.

best, Pat

Thanks Pat, did you try any other library or did you do it by yourself?

Yes, i tried I think everything is possible on the web about beat tracking, onsets detection or BPM detection  ;D.
You've got professional ios sdk like zplane (used by djay, ableton, Mixed-In-Key etc..) but it's extremely expensive kind of 2000$ per year and royalties from the app.

So I decided to build mine from scratch.

Quick overview: I used Spectral flux detection to get the peaks of my track and then I combine the result with an onset detector to isolate each onsets.

at the end, I found something very interesting : If your try to process a conventional track like dance or something with boom boom  :).
You'll gonna see that many intervals or IOI (inter onset interval) in beat tracking are the same and you'll be able to get an average of this IOI (Example : 0.480 where 60/0.480 give you 125 BPM) . when you have the best serie of identical IOI on your track, you can map your track to build your beat grid and estimate the beats whose are missing.  

I cannot go further because I 've got to respect my company's contract.
But to give you an idea where soundtouch get a score of 55% for 100 tracks tested, our api get 99.8%.
so you can explore that way.

best , Pat

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #936 on: 2 Dec '14 - 07:01 »
Yes, i tried I think everything is possible on the web about beat tracking, onsets detection or BPM detection  ;D.
You've got professional ios sdk like zplane (used by djay, ableton, Mixed-In-Key etc..) but it's extremely expensive kind of 2000$ per year and royalties from the app.

So I decided to build mine from scratch.

Quick overview: I used Spectral flux detection to get the peaks of my track and then I combine the result with an onset detector to isolate each onsets.

at the end, I found something very interesting : If your try to process a conventional track like dance or something with boom boom  :).
You'll gonna see that many intervals or IOI (inter onset interval) in beat tracking are the same and you'll be able to get an average of this IOI (Example : 0.480 where 60/0.480 give you 125 BPM) . when you have the best serie of identical IOI on your track, you can map your track to build your beat grid and estimate the beats whose are missing.  

I cannot go further because I 've got to respect my company's contract.
But to give you an idea where soundtouch get a score of 55% for 100 tracks tested, our api get 99.8%.
so you can explore that way.

best , Pat

Thanks again Pat, every information i get is useful! For a start it will do as it is, i just hope Ian and the guys find the bug for the first beat and it would be great for now.  :D

Regards,
Grega



Cristian1980

  • Posts: 67
Re: BASS for iOS (iPhone/iPad)
« Reply #937 on: 2 Dec '14 - 08:46 »
The "x86_64" architecture has started being introduced to each of the iOS libraries, so those that don't currently include it (like BASS_FX), should do in their next release.

I see the last BASS_FX was built on 30th of August (3 months ago) any idea when I might get a version with 64 bit simulator support?

Thank you,
Cristian

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #938 on: 2 Dec '14 - 10:10 »
If I understand correctly, what you want is for the effect's tail to continue being processed when a stream is paused/stopped? That isn't possible with a single stream because the effects are applied to the stream's sample data as it is decoded, so if there is no decoding/playing, then there can be no effect processing. A solution is to use 2 streams: a decoder that feeds an output stream, which has the effects set on it. The output stream could be a mixer, something like this...

Code: [Select]
decoder=BASS_StreamCreateFile(FALSE, filename, 0, 0, BASS_STREAM_DECODE|BASS_SAMPLE_FLOAT); // create decoder
BASS_CHANNELINFO ci;
BASS_ChannelGetInfo(decoder, &ci); // get sample format
output=BASS_Mixer_StreamCreate(ci.freq, ci.chans, BASS_MIXER_NONSTOP|BASS_SAMPLE_FLOAT); // create a nonstop mixer with same format
BASS_Mixer_StreamAddChannel(output, decoder, 0); // plug the decoder into the mixer
BASS_ChannelSetFX(output, ...); // set an effect on the mixer
BASS_ChannelPlay(output, 0); // start it

To pause/resume the decoder, you can use BASS_Mixer_ChannelFlags to set/remove the BASS_MIXER_PAUSE flag. Note that the mixer will add some latency to the pausing/resuming due to buffering. If you would like to reduce that, you can lower the BASS_CONFIG_BUFFER setting (perhaps BASS_CONFIG_UPDATEPERIOD too).

I have added this logic into main project now, where i am using a decoder (BASS_StreamCreateURL) for default iPad library audio files. it does not work as expected - song is playing but it sounds like it is corrupted - noises, clicks, etc.

In test project i am using a decoder (BASS_StreamCreateFile) for internal audio file from resources and it works normal.

Which means something must be wrong getting audio data from default iPad library.

I have tried with buffer settings (increased to 1000 ms!) but the problem still exists.

Please help!

Thanks.

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #939 on: 2 Dec '14 - 10:35 »
Uh please ignore my last post. If i knew how i would delete it.
Sorry Ian and guys, i posted this one too soon.  :-[
I was using BASS_ChannelGetData(decoder, fft, BASS_DATA_FFT256) to get FFT and i used it on decoder instead on mixer.

So my problem goes back to first beat detection. :P

Thanks.

Regards,
Grega


Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #940 on: 2 Dec '14 - 15:08 »
Yes i do. I create a decoded stream, set position to 0, then call BASS_FX_BPM_BeatDecodeGet with callback set. The first beat is detected at 0,38 sec for example. Then i play the channel using Play method and first beat is detected at 0,32 sec. Which is the correct one - checked with audio editor. So it looks like BASS_FX_BPM_BeatDecodeGet has a bug?

Oh right, so the BASS_FX_BPM_BeatDecodeGet call comes 1st? In that case, what happens if you repeat the BASS_FX_BPM_BeatDecodeGet call, ie. do you get the same incorrect 1st beat from both calls?

You've got all in one : threads at left and the entire and extremely simple code at right.

Thanks. From those call stacks, it looks like the output unit's thread is the other one that's in a deadlock, and I think I see why: there was indeed the potential for a deadlock when calling BASS_Mixer_ChannelGetLevel/Data on a mixer that has the NOBUFFER option enabled. A BASS update that should remove that possibility is now up in the 1st post. Let me know if you can still reproduce the problem with it.

ppeau

  • Posts: 48
Re: BASS for iOS (iPhone/iPad)
« Reply #941 on: 2 Dec '14 - 17:28 »

Thanks. From those call stacks, it looks like the output unit's thread is the other one that's in a deadlock, and I think I see why: there was indeed the potential for a deadlock when calling BASS_Mixer_ChannelGetLevel on a mixer that has the NOBUFFER option enabled. A BASS update that should remove that possibility is now up in the 1st post. Let me know if you can still reproduce the problem with it.

Tested and the deadlock is gone!
Thanks a lot, you make my day  ;D

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #942 on: 3 Dec '14 - 05:59 »
Yes i do. I create a decoded stream, set position to 0, then call BASS_FX_BPM_BeatDecodeGet with callback set. The first beat is detected at 0,38 sec for example. Then i play the channel using Play method and first beat is detected at 0,32 sec. Which is the correct one - checked with audio editor. So it looks like BASS_FX_BPM_BeatDecodeGet has a bug?

Oh right, so the BASS_FX_BPM_BeatDecodeGet call comes 1st? In that case, what happens if you repeat the BASS_FX_BPM_BeatDecodeGet call, ie. do you get the same incorrect 1st beat from both calls?

Same problem. I have also tried without BASS_FX_BPM_BeatDecodeGet call, just with BASS_FX_BPM_BeatCallbackSet and it does not work either.

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #943 on: 3 Dec '14 - 17:45 »
OK. So you only get the correct 1st beat time when using BASS_FX_BPM_BeatCallbackSet after BASS_FX_BPM_BeatDecodeGet? Are you calling BASS_FX_BPM_BeatFree between those 2 calls? Please upload your test audio file, and I'll see if I can make sense of what's happening with it...

   ftp.un4seen.com/incoming/

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #944 on: 3 Dec '14 - 18:53 »
OK. So you only get the correct 1st beat time when using BASS_FX_BPM_BeatCallbackSet after BASS_FX_BPM_BeatDecodeGet? Are you calling BASS_FX_BPM_BeatFree between those 2 calls? Please upload your test audio file, and I'll see if I can make sense of what's happening with it...

   ftp.un4seen.com/incoming/

No no.

WORKING:
BASS_FX_BPM_BeatCallbackSet
BASS_ChannelPlay (or mixer play)
-> First beat detected at 0,32 sec. OK.

NOT WORKING:
BASS_FX_BPM_BeatDecodeGet (start = 0 sec, length = 10 sec or whatever)
-> First beat detected at 0,38 sec. NOT GOOD.

Also not working with BASS_FX_BPM_BeatDecodeGet set twice or with BASS_FX_BPM_BeatFree in the middle or with callback, DecodeGet, etc. I think i tried almost every combination.

So it only works if channel is playing.

I will upload a test file. I can prepare a test code as well if needed. I think it is a bug. Hopefully i am wrong, but i really tried everything.

Do i need u/p for ftp or login as guest?
« Last Edit: 3 Dec '14 - 18:56 by GregaK »

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #945 on: 4 Dec '14 - 10:35 »
To test BASS_FX_BPM_BeatDecodeGet you can simple put 4 bar beat (kick) and you will see that first beat does not get detected at all. First beat is only detected when channel is playing!

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #946 on: 5 Dec '14 - 18:01 »
I haven't looked into detail at the beat detection code yet, but I did run a little test on a simple kick beat and indeed it didn't detect the 1st beat, but that was true for both BASS_FX_BPM_BeatCallbackSet and BASS_FX_BPM_BeatDecodeGet. Are you sure that you're getting different results from them? Both did detect the 1st beat in a 2nd pass (eg. after looping), so it would appear to be a "warming up" issue, and perhaps you're seeing the 1st beat detected because you've warmed up the detector with previous processing?

Ian @ un4seen

  • Administrator
  • Posts: 21781
Re: BASS for iOS (iPhone/iPad)
« Reply #947 on: 5 Dec '14 - 18:04 »
The latest BASSMIDI version (2.4.9) is now up in the 1st post.

GregaK

  • Posts: 22
Re: BASS for iOS (iPhone/iPad)
« Reply #948 on: 5 Dec '14 - 20:05 »
I haven't looked into detail at the beat detection code yet, but I did run a little test on a simple kick beat and indeed it didn't detect the 1st beat, but that was true for both BASS_FX_BPM_BeatCallbackSet and BASS_FX_BPM_BeatDecodeGet. Are you sure that you're getting different results from them? Both did detect the 1st beat in a 2nd pass (eg. after looping), so it would appear to be a "warming up" issue, and perhaps you're seeing the 1st beat detected because you've warmed up the detector with previous processing?

Yes you are correct. 2nd pass detects first beat and 1st pass does not with both functions! So it looks like a warming up issue. However note that first beat is not detected even if i call BASS_FX_BPM_BeatDecodeGet 10 times in a row (with all the callbacks and Bass_Free() stuff set).

(: JOBnik! :)

  • Posts: 1080
Re: BASS for iOS (iPhone/iPad)
« Reply #949 on: 6 Dec '14 - 01:06 »
Hi ;D

Here's an updated libbass_fx.a, that adds support for x86_64 simulator as well:
http://www.jobnik.org/files/beta/libbass_fx.a

Hi,

Bass fx is missing 64 bit simulator support. Can you please add it?
I would like to do some tests before my device arrives, especially  since, on February 1st 2015 all iOS application must provide 64bits support(https://developer.apple.com/news/?id=10202014a).

Quote
#lipo -info libbass_fx.a
Architectures in the fat file: libbass_fx.a are: armv6 armv7 armv7s i386 arm64

#lipo -info libbass.a
Architectures in the fat file: libbass.a are: armv7 armv7s arm64 armv6 i386 x86_64

Thank you