Пример определения BPM в iOS SoundTouch

Я искал по всей сети и не могу найти учебник о том, как использоватьБиблиотека SoundTouch для обнаружения удара.

(Примечание. До этого у меня не было опыта работы с C ++. Я знаю C, Objective-C и Java. Поэтому я мог бы испортить кое-что из этого, но это компилируется.)

Я добавилфреймворк в мой проект и удалось получить следующее для компиляции:

NSString *path = [[NSBundle mainBundle] pathForResource:@"song" ofType:@"wav"];

NSData *data = [NSData dataWithContentsOfFile:path];

player =[[AVAudioPlayer alloc] initWithData:data error:NULL];

player.volume = 1.0;

player.delegate = self;

[player prepareToPlay];
[player play];

NSUInteger len = [player.data length]; // Get the length of the data

soundtouch::SAMPLETYPE sampleBuffer[len]; // Create buffer array

[player.data getBytes:sampleBuffer length:len]; // Copy the bytes into the buffer

soundtouch::BPMDetect *BPM = new soundtouch::BPMDetect(player.numberOfChannels, [[player.settings valueForKey:@"AVSampleRateKey"] longValue]); // This is working (tested)

BPM->inputSamples(sampleBuffer, len); // Send the samples to the BPM class

NSLog(@"Beats Per Minute = %f", BPM->getBpm()); // Print out the BPM - currently returns 0.00 for errors per documentation

inputSamples(*samples, numSamples) Информация о байте песни сбивает меня с толку.

Как я могу получить эти данные из файла песни?

Я пытался с помощьюmemcpy() но это некажется, работает.

У кого-нибудь есть мысли?

Ответы на вопрос(3)

Ваш ответ на вопрос