Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 21st, 2012  |  syntax: None  |  size: 1.33 KB  |  hits: 6  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. implementing iphone Voice Memo: read many topics but i miss something
  2. NSURL *url = [NSURL fileURLWithPath:@"/dev/null"];
  3.  
  4. NSDictionary *settings = [NSDictionary dictionaryWithObjectsAndKeys:
  5.     [NSNumber numberWithFloat: 44100.0],                 AVSampleRateKey,
  6.     [NSNumber numberWithInt: kAudioFormatAppleLossless], AVFormatIDKey,
  7.     [NSNumber numberWithInt: 1],                         AVNumberOfChannelsKey,
  8.     [NSNumber numberWithInt: AVAudioQualityMax],         AVEncoderAudioQualityKey,
  9.   nil];
  10.  
  11. NSError *error;
  12.  
  13. recorder = [[AVAudioRecorder alloc] initWithURL:url settings:settings error:&error];
  14.  
  15. if (recorder) {
  16.     [recorder prepareToRecord];
  17.     recorder.meteringEnabled = YES;
  18.     [recorder record];
  19. } else
  20.     NSLog([error description]);
  21.        
  22. [recorder updateMeters];
  23.  
  24. const double ALPHA = 0.05;
  25. double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0]));//to have a decimal value
  26. lowPassResults = ALPHA * peakPowerForChannel + (1.0 - ALPHA) * lowPassResults;  
  27.  
  28. NSLog(@"Average input: %f Peak input: %f Low pass results: %f", [recorder averagePowerForChannel:0], [recorder peakPowerForChannel:0], lowPassResults)
  29.        
  30. RMS_signal (V) = sqrt(sum(x^2) / N)
  31.        
  32. [recorder peakPowerForChannel:0]?
  33.        
  34. [NSNumber numberWithFloat: 44100.0],                 AVSampleRateKey,
  35.        
  36. Magnitude (dB) = 20.0 * log10(RMS_signal) + K