Фреймворк для iOS SoundTouch, пример BPM Detection

Я все еще ищу рабочий код, который вычисляет BPM, кто-нибудь из вас решил этот код? Ценю любую помощь.

Это код, который у меня есть, и он возвращает либо 0, либо неверное значение (по сравнению со значением BPM в Интернете)

-(void) calcBPM {

   NSString *path = [[NSBundle mainBundle] pathForResource:@"song_test" ofType:@"mp3"];
   NSData *data = [NSData dataWithContentsOfFile:path];

   AVAudioPlayer *player =[[AVAudioPlayer alloc] initWithData:data error:NULL];
   NSUInteger len = [player.data length];

   soundtouch::SAMPLETYPE sampleBuffer[len];

   [player.data getBytes:sampleBuffer length:len];

   soundtouch::BPMDetect BPM(player.numberOfChannels, [[player.settings valueForKey:@"AVSampleRateKey"] longValue]);
   BPM.inputSamples(sampleBuffer, len/player.numberOfChannels);
   NSLog(@"Beats Per Minute = %f", BPM.getBpm());
   }

0 ответов

Другие вопросы по тегам