2011-01-26 18 views
16

Nel mio liceo possiamo frequentare un corso in cui impariamo praticamente un argomento da soli per un semestre. Stavo pensando che voglio conoscere "la programmazione del suono", ma mi sono reso conto che non ho idea di cosa ciò implichi. Mi interessa conoscere, ad esempio, come funziona un sintetizzatore e come funziona il suono nell'informatica. Voglio davvero concentrarmi sulla parte del codice di basso livello, non tanto sulla parte della composizione. È un argomento fattibile? Ci sono dei buoni tutorial là fuori per qualcuno completamente nuovo a questo? Conosco il C++ e sto usando Windows. La prima risposta in this è qualcosa che mi interessa (anche se è sopra la mia testa).Voglio imparare la programmazione audio

+1

Oops, non avevo capito che dovevo farlo. Grazie per il testa a testa! – ahota

risposta

17

"La programmazione del suono" è un campo molto vasto. Prima di tutto, è sicuramente un argomento fattibile, ma dal momento che è necessario raggruppare le cose in un solo semestre, è necessario limitare il raggio d'azione. Vedo che stai cercando un posto dove iniziare, quindi ecco alcune idee per farti pensare.

Dal momento che avete citato entrambi "come opere sonore in informatica" e "sintetizzatori", vale la pena sottolineare la differenza tra suono analogico, campionato suono e suono sintetizzato, in quanto sono concetti diversi. Li spiegherò brevemente qui.

Il suono analogico è un suono che normalmente noi umani interpretiamo: vibrazioni dell'aria percepite dall'orecchio umano. Puoi pensare al suono come a un segnale unidimensionale, dove la variabile indipendente è il tempo e la variabile dipendente è l'ampiezza della vibrazione. Il suono analogico è continuo sia nel dominio del tempo che dell'ampiezza. I vecchi metodi di registrazione del suono (ad esempio nastro magnetico) utilizzavano una rappresentazione sonora analogica. Il suono analogico non viene spesso utilizzato con i computer (i computer non sono in grado di memorizzare i dati del dominio continuo), ma la comprensione dei segnali analogici è comunque importante. Aspettati di vedere un sacco di matematica (ad esempio numeri complessi, trasformate di Fourier) se segui questo percorso.

Suono campionato è la rappresentazione del suono che si presta bene all'elaborazione con un computer. Le persone hanno più familiarità con il suono campionato attraverso CD e altre registrazioni musicali. Un segnale analogico viene campionato ad una certa frequenza (ad esempio 44,1 KHz per la registrazione di un CD). Quindi un segnale sonoro campionato è discreto nel dominio del tempo. Se il segnale è quantizzato, allora sarà discreto anche nel dominio di ampiezza. Formati come MP3 sono formati campionati. Ci sono molte cose da studiare in questo campo se sei interessato, come il restauro (rimozione statica, ecc.) E la compressione (di nuovo, codec MP3, Ogg Vorbis). È molto divertente perché c'è molto da sperimentare e codice.

Entrambi i suoni analogici e campionati scavano a fondo in un campo chiamato Elaborazione del segnale digitale. Google in giro per questo per avere un'idea di come sia. Viene spesso insegnato come un corso nelle università, quindi se sei davvero appassionato puoi dare un'occhiata ad alcune diapositive o persino provare alcuni dei progetti più semplici e precedenti.

Suono sintetizzato è una rappresentazione che è adatta per la riproduzione di una traccia musicale, in cui gli strumenti che suonano la traccia sono noti in anticipo. Pensalo come spartito per il computer. Qualcuno deve scrivere gli spartiti - non puoi semplicemente registrarlo come suono analogico o campionato. Ciò rende un suono sintetizzato una rappresentazione completamente diversa a suono analogico e suono campionato Inoltre, il computer deve sapere quali sono gli strumenti (ad esempio il piano) in modo che possa riprodurre (sintetizzare) la traccia.Se non conosce lo strumento, si arrende o prende una corrispondenza ravvicinata (ad esempio, sostituisce il pianoforte con la tastiera elettrica). Non ho mai lavorato con i sintetizzatori prima quindi non posso commentare la curva di apprendimento per loro.

Quindi, in base a ciò che ho scritto, scegli una direzione che ti interessa di più, Google in giro e poi perfeziona la tua domanda.

EDIT

Un buon libro da leggere è this. Probabilmente puoi cercare titoli correlati in Amazon e trovare qualcosa di più recente, ma è da un po 'che non faccio shopping.

E se hai una mezz'ora da risparmiare, dai un'occhiata a questo video tutorial. Copre audio, immagini e elaborazione video: sono in realtà campi strettamente correlati.

+0

Risposta stupenda. Mi hai dato molto da cui partire. Sicuramente controllerò quel libro! – ahota

3

Considerare di lavorare attraverso il libro "Who Is Fourier?: A Mathematical Adventure". È possibile adattare gli esempi per eseguire piccoli incarichi di programmazione che dimostrino i concetti di base. Dopo aver finito dovresti essere in grado di usare il fft per creare uno spettrogramma della tua voce mentre pronunci le vocali a, e, i, o, u - identificando la frequenza fondamentale e le formanti di ciascuna vocale.

Raccomando l'apprendimento di Python e dei moduli NumPy, SciPy, and matplotlib (ce ne sono un sacco lì, quindi oltre le esercitazioni di base, basta imparare mentre si va). La shell iPython ha l'opzione "-pylab -p scipy" per importare automaticamente gli strumenti più comuni nel tuo spazio dei nomi. È possibile registrare e riprodurre audio utilizzando PyAudio. C'è anche Pygame, che si espande su SDL (strato Simple DirectMedia), e pyglet, che usa OpenAL (l'OpenGL di audio; fa audio 3D ed effetti).

Per quanto riguarda C/C++, esistono IT ++, SPUC e FFTW per l'elaborazione del segnale e SDL/SDL_mixer e OpenAL/ALmixer per l'interfaccia con file hardware e audio.

1

Vorrei raccomandare questo libro: http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=8218 (parte di essa è disponibile qui: http://books.google.com/books?id=nZ-TetwzVcIC&printsec=frontcover&dq=computer+musical+tutorial&hl=pt-BR&ei=D-dKTaKsBMOB8gbF4KDcDg&sa=X&oi=book_result&ct=result&resnum=1&ved=0CDgQ6AEwAA#v=onepage&q=computer%20musical%20tutorial&f=false)

E un'altra cosa che si poteva guardare è a PureData, è un ambiente grafico open source per la programmazione del suono, ed è bello per principianti. (http://puredata.info/)

Problemi correlati