Przeszukałem cały Internet i nie mogę znaleźć samouczka, jak korzystać z SoundTouch library do wykrywania rytmu.Struktura iOS SoundTouch Przykład BPM Detection
(Uwaga:... Nie mam doświadczenia z C++ Wcześniej wiem C, Objective-C i Java więc mogłem pomieszane trochę tego, ale kompiluje)
I dodaje framework do mojego projektu i udało się uzyskać następujące skompilować:
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
informacje bajt inputSamples(*samples, numSamples)
piosenka myli mnie.
Jak uzyskać te informacje z pliku utworu?
Próbowałem użyć memcpy()
, ale wydaje się, że nie działa.
Ktoś ma jakieś myśli?
fajne czy możesz powiedzieć, w jaki sposób dodałeś bibliotekę SoundTouch do projektu xcode? – otakuProgrammer
Wystarczy pobrać framework i zaimportować go do projektu. – MrHappyAsthma
ok udało mi się dołączyć go do projektu xcode, powyższy kod nie będzie działał, czasami aplikacja się zawiesza, próbowałem zarówno plików wav i mp3, korzystałem nawet z oryginalnej próbki audio z witryny soundtouch, to spowodowało awarię issue, or nan result (przy użyciu oryginalnego dźwięku próbnego) – otakuProgrammer