2011-02-02 20 views
9

Estoy tratando de escribir mi propia aplicación de audio, principalmente para aprender sobre las matemáticas de cómo se procesan las señales para obtener efectos, pero también para divertirme. (Una empresa bastante grande, pero tengo el tiempo en este momento). Me gustaría que funcione algo como Propellerhead's Record, especialmente en el rack.Creación de una estación de trabajo de audio digital

Estoy corriendo en una Mac, así que estoy pensando en usar unidades de audio para las diferentes partes, luego Core Audio para las piezas de andamio. Entonces, todo estaría escrito en C u Obj-C.

Sin embargo, no he usado ya sea Audio Units o Core-Audio, y el internet no me ha servido de nada.

¿Alguien sabe dónde podría aprender sobre estos? ¿O sería Java (el único otro idioma que me gustaría usar) ser mejor, o hay algo que extrañé por completo al tratar de encontrar la forma "fácil" de hacerlo?

Gracias, Jon

+0

Si Quiero aprender sobre el procesamiento/efectos de señales digitales. Recomiendo encarecidamente "solo" escribir complementos VST. Actualmente también estoy trabajando en un DAW, y realmente deseo poder finalmente llegar al efecto escribiendo parte. Además, VST-plugin-programming te mostrará cómo escribir un DAW con una interfaz agradable para los efectos/complementos. – AudioDroid

Respuesta

10

si usted quiere escribir una aplicación de audio:

  • como mínimo, mojarse los pies con un proyecto existente. si tuviera que elegir personalmente un proyecto, contribuiría con Ardor.

  • el procesamiento de la señal en un DAW es relativamente simple. tendrás que trabajar con mezcladores, archivos y gráficos. si ya te sientes cómodo escribiendo aplicaciones, entonces probablemente no aprenderás mucho (más allá de lo básico). por supuesto, puede encontrar un proyecto existente y ampliarlo con características que se relacionan con lo que quiere aprender; podrías escribir tapones o visualizaciones para ello.

si prefiere trabajar con procesamiento de señal:

  • AU o VST plugins habrá una buena introducción - hay muchos proyectos existentes que se puede hacer referencia. eventualmente, se cansará de esperar a que un host se cargue para probar su programa.

idioma:

  • objc no es utilizable para la representación de audio en tiempo real.

  • java es muy inusual para esta aplicación. en realidad hay envoltorios para AU y CoreAudio ... pero no se puede nombrar una Java AU comercial para OS X.

  • la mayoría de las tiendas de audio (que yo sepa) están usando C++ - no C. (Hardware es diferente) . esto realmente parece una omisión extraña de su lista: la mayoría de los DAW y complementos usan C++, y ese es el idioma en el que encontraría más ejemplos.Si ya se siente cómodo con C y Java, le recomiendo que acepte las condiciones de C++ porque ese es el lenguaje estándar en la industria cuando se dirige a los escritorios.

+0

Gracias por la respuesta detallada. Voy con CoreAudio y AU. (y por C, quise decir C++. Supongo que simplemente tenía una mente en blanco). ¿Alguna vez tiene alguna referencia a algunos algoritmos para los efectos? ¿O algo sobre cómo se hacen los diferentes efectos? Gracias de nuevo. – Jon

+0

Eso es increíble, muchas gracias. – Jon

5

Mira el C++ multiplataforma JUCE biblioteca, que es de código abierto con la opción de licencia de código (precio no está mal). Muchos desarrolladores profesionales de DAW y VST lo usan, soy uno de ellos.

https://www.juce.com/

Advertencia, esta biblioteca es muy divertido para jugar. Renovó mi interés en C++, lo cual no fue poca cosa.

3

que están justo al en en el supuesto de que el núcleo-audio y AudioUnits podría constituir la base para un sistema (que pueden no necesita ser un DAW de pleno derecho, pero puede tener alguna combinación de grabación de audio multipista , edición, reproducción, etc ...) mucho más fácil que preocuparse por las preocupaciones de plataformas cruzadas, marcos integrales masivos como Juce, o ASIO y otros hacks os-bypass. Creo que encontrará que la programación de audio es una disciplina especializada y la mayoría de la gente aquí en stackoverflow no está preparada para ofrecer consejos útiles. Java es bastante inadecuado, como lo es C#, al igual que los idiomas interpretados PARA AUDIO, en particular para audio multicanal, DSP, etc. debido a limitaciones de tiempo y la necesidad de trabajar en un nivel bastante bajo para muchos bucles críticos. encontrará los documentos que necesita en developer.apple.com (tendrá que hacer un inicio de sesión) y puede encontrar ejemplos de shell para su interés directamente dentro de los ejemplos de xcode ... buena suerte

Cuestiones relacionadas