2010-02-13 3 views

Respuesta

0

La mejor manera de aplicar efectos de audio usando SoundTouch está utilizando también SoundStretch.

se puede descargar el código fuente tanto de aquí http://www.surina.net/soundtouch/sourcecode.html

SoundStretch es un programa de línea de comandos que realiza SoundTouch efectos de la biblioteca de archivos de audio WAV. El programa es un código fuente ejemplo de cómo las rutinas de la biblioteca SoundTouch se pueden usar para procesar el sonido en otros programas, pero también se puede usar como una herramienta de procesamiento de audio independiente .

características SoundStretch:

  • Lecturas & escribe .wav archivos de audio
  • permite el ajuste de parámetros muy amplios rangos:
    • Tempo & velocidad de reproducción ajustable en el rango de -95% .. 5000 %
    • El tono de sonido (clave) ajustable en el rango -60 .. +60 semitonos (+ - 5 octavas).
  • Beats por segundo (BPM) detección que puede ajustar tempo para que coincida con la tasa de BPM deseado.
  • códigos fuente completo disponibles
  • interfaz de línea de comandos permite utilizar el SoundStretch utilidad para el procesamiento .wav archivos de audio en el modo por lotes
  • soporta el procesamiento .wav flujos de audio a través de tuberías de entrada/salida estándar
  • SoundStretch usos SoundTouch rutinas de biblioteca para el procesamiento de audio.

Ejemplo de uso:

NSArray *effects = [NSArray arrayWithObjects:@"-rate=-22", nil]; 
NSURL *audio = [self base:input output:output effects:effects]; 

Dónde base:output:effects se define como:

- (NSURL *)base:(NSURL *)input output:(NSURL *)output effects:(NSArray *)effects{ 
    int _argc = 3 + (int)[effects count]; 

    const char *_argv[]={"createWavWithEffect",[[input path] UTF8String], [[output path] UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String],[@"" UTF8String]}; 

    for (int i=0; i<[effects count]; i++) { 
     _argv[i+3] = [effects[i] UTF8String]; 
    } 
    createWavWithEffect(_argc, _argv); 

    // IMPORTANT! Check the file size, maybe you will need to set by yourself 

    return output; 
} 

Si no quiere compilar por sí mismo SoundTouch, he compartido una Depósito de GitHub con esas bibliotecas compiladas para armv7, armv7s, arm64, i386 y x86_64

https://github.com/enrimr/soundtouch-ios-library

Y si desea utilizar SoundTouch por sí mismo sin necesidad de utilizar SoundStretch, hay que añadir el directorio SoundTouch (que incluye libSoundTouch.a y el directorio con las cabeceras) en su proyecto Xcode.

Para proyectos de SWIFT:

Programación con SWIFT no puede importar un .h por lo que tendrá que crear un archivo .h llamado <Your-Project-Name>-Bridging-Header-File.h A continuación, hacer referencia a ella en sus proyectos la configuración de creación (en "Swift compilador" look para 'Bridging Cabecera Objetivo C') con:

$(SRCROOT)/<Your-Project-Name>-Bridging-Header.h 

Y ahora usted debe ser capaz de utilizar la clase SoundTouch.

Para proyectos de Objective-C:

incluir la siguiente

#include "SoundTouch.h" 

en el archivo de controlador.

+0

cómo usar "createWavWithEffect" gracias tú. Estoy usando SoundTouch 1.8 – user1561904