2011-02-02 13 views
9

Sto cercando di scrivere la mia DAW, principalmente solo per conoscere la matematica di come i segnali vengono elaborati per ottenere effetti, ma anche per divertimento. (Un'impresa piuttosto grande, ma ho il tempo al momento). Mi piacerebbe che funzioni come Propellerhead's Record come nel rack in particolare.Creazione di una workstation audio digitale

Sono in esecuzione su un Mac, quindi sto pensando di utilizzare Audio Units per le diverse parti, quindi Core Audio per le parti di scaffolding. Quindi, l'intera cosa dovrebbe essere scritta in C o Obj-C.

Tuttavia, non ho utilizzato né Audio Units né Core-Audio prima e Internet non è stato di alcun aiuto per l'apprendimento.

Qualcuno sa dove potrei venire a conoscenza di questi? O sarebbe meglio (o l'unico altro linguaggio che mi sentirei a mio agio), o c'è qualcosa che ho perso completamente mentre cercavo di trovare il modo "facile" per farlo?

Grazie, Jon

+0

Se tu voglio conoscere l'elaborazione/effetti del segnale digitale, consiglio vivamente di "solo" scrivere plug-in VST. Attualmente sto lavorando anche a una DAW, e mi piacerebbe davvero, potrei finalmente arrivare all'effetto scrivendo la parte. Anche VST-plugin-programming ti mostrerà come scrivere una DAW con una bella interfaccia per effetti/plugin. – AudioDroid

risposta

10

se si vuole scrivere una DAW:

  • al minimo, avere i piedi bagnati con un progetto esistente. se dovessi scegliere personalmente un progetto, contribuirei ad Ardor.

  • l'elaborazione del segnale in una DAW è relativamente semplice. dovrai lavorare con mixer, file e grafici. se sei già a tuo agio nello scrivere app, probabilmente non imparerai molto (oltre le basi). ovviamente, potresti trovare un progetto esistente ed estenderlo con caratteristiche che riguardano ciò che vuoi imparare; potresti scrivere plug o visualizzazioni per questo.

se preferisce lavorare con elaborazione del segnale:

  • AU o VST plug-in sarà un buon intro - ci sono molti progetti già esistenti che si può fare riferimento. alla fine, ti stanchi di aspettare che un host si carichi per testare il tuo programma.

lingua:

  • objc non è utilizzabile per il rendering in tempo reale di audio.

  • java è molto insolito per questa applicazione. ci sono in realtà wrapper per AU e CoreAudio ... ma non si può nominare un Java AU commerciale per OS X.

  • la maggior parte degli shop audio (che io sappia) usano C++ - non C. (Hardware è diverso) . sembra davvero una strana omissione dal tuo elenco: la maggior parte dei DAW e dei plugin usano C++, e questa è la lingua in cui troverai la maggior parte degli esempi.Se sei già a tuo agio con C e Java, ti consiglio di venire a patti con il C++ perché è la lingua standard del settore quando si scelgono i desktop.

+0

Grazie per la risposta dettagliata. Vado con CoreAudio e AU. (e per C, intendevo C++. Indovina che avevo solo una mente vuota). Hai per caso qualche riferimento ad alcuni algoritmi per gli effetti? O qualcosa su come vengono fatti gli effetti diversi? Grazie ancora. – Jon

+0

È fantastico, grazie mille. – Jon

5

sguardo al cross-platform C++ juce biblioteca, è open source con l'opzione di licenza il codice (prezzo non è male). Un sacco di sviluppatori DAW e VST professionali lo usano, io sono uno di loro.

https://www.juce.com/

Attenzione, questa libreria è molto divertente con cui giocare. Ha rinnovato il mio interesse per il C++, cosa non da poco.

3

tu sei proprio-on nel ritenere che core-audio e Audio Units potrebbe costituire la base per un sistema (che potrebbe non essere necessario per essere una DAW a pieno titolo, ma può avere qualche combinazione di registrazione audio multitraccia , editing, riproduzione, ecc ...) è molto più facile che preoccuparsi delle preoccupazioni multipiattaforma, di enormi framework onnicomprensivi come Juce, o ASIO e altri hack bypassanti. Penso che scoprirai che la programmazione audio è una disciplina specializzata e la maggior parte della gente qui sullo stackoverflow è mal preparata per offrire consigli utili. Java è piuttosto inadeguato, come C#, come le lingue interpretate per AUDIO, in particolare per audio multicanale, DSP, ecc. A causa di limiti temporali e la necessità di lavorare su un livello piuttosto basso per molti loop critici. troverai i documenti che ti servono su developer.apple.com (dovrai effettuare un login) e puoi trovare esempi di shell per il tuo interesse direttamente all'interno di esempi xcode ... buona fortuna

Problemi correlati