Ho cercato su tutto il Web e non riesco a trovare un tutorial su come usare lo SoundTouch library per il rilevamento dei battiti.iOS SoundTouch framework BPM Esempio di rilevamento
(Nota:... Non ho C esperienza ++ prima di questo io lo so C, Objective-C e Java Così ho potuto incasinato po 'di questo, ma si compila)
ho aggiunto il framework al mio progetto e sono riusciti a ottenere i seguenti per compilare:
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
le informazioni di byte inputSamples(*samples, numSamples)
canzone mi confonde.
Come posso ottenere queste informazioni da un file di brano?
Ho provato a utilizzare memcpy()
ma non sembra funzionare.
Qualcuno ha qualche idea?
cool puoi dire come hai aggiunto la libreria SoundTouch al progetto xcode? – otakuProgrammer
Basta scaricare il framework e importarlo nel progetto. – MrHappyAsthma
ok sono riuscito a includerlo nel progetto xcode, il codice sopra non funzionerà, alcune volte l'app si blocca, ho provato entrambi i file wav e mp3, ho anche usato il campione audio orig dal sito web soundtouch, mi dà un crash problema, o risultato nan (quando si utilizza l'audio campione originale) – otakuProgrammer