Domanda

Mi piacerebbe produrre suoni che assomigliano audio da strumenti reali. Il problema è che ho molto poco idea di come ottenere che.

Quello che so così lontano da strumenti reali è che suoni che in uscita sono raramente puliti. Ma come produrre tali suoni impuri?

Questa lontano ho ottenuto di fare questo, si produce un suono abbastanza semplice da cui non sono sicuro che è anche utilizzando correttamente l'alsa.

import numpy
from numpy.fft import fft, ifft
from numpy.random import random_sample
from alsaaudio import PCM, PCM_NONBLOCK, PCM_FORMAT_FLOAT_LE

pcm = PCM()#mode=PCM_NONBLOCK)
pcm.setrate(44100)
pcm.setformat(PCM_FORMAT_FLOAT_LE)
pcm.setchannels(1)
pcm.setperiodsize(4096)

def sine_wave(x, freq=100):
    sample = numpy.arange(x*4096, (x+1)*4096, dtype=numpy.float32)
    sample *= numpy.pi * 2 / 44100
    sample *= freq
    return numpy.sin(sample)

for x in xrange(1000):
    sample = sine_wave(x, 100)
    pcm.write(sample.tostring())
È stato utile?

Soluzione

Di buon umore, se si desidera generare (da zero) qualcosa che suona davvero "biologico", vale a dire come un oggetto fisico, si è probabilmente meglio fuori ad imparare un po 'su come questi suoni sono generati. Per un'introduzione solido, si potrebbe avere uno sguardo a un libro come Fletcher e Rossings La fisica Strumenti musicali . C'è un sacco di roba sul web troppo, si potrebbe desiderare di avere uno sguardo a un primer James Clark ha qui

Avere almeno uno scremato su questo genere di cose vi darà un'idea di ciò che si è di fronte. Modellazione strumenti fisici è esattamente molto difficile!

Se ciò che si vuole fare è di avere qualcosa che suona fisico, piuttosto qualcosa che suona come strumento X, il tuo lavoro è un po 'più facile. È possibile costruire frequenze abbastanza facilmente e impilarli insieme, aggiungere un po 'di rumore, e si otterrà qualcosa che almeno non suona qualcosa come un tono puro.

La lettura di un po 'di analisi di Fourier in generale contribuirà, come le tecniche di volontà Modulazione di Frequenza (FM).

Buon divertimento!

Altri suggerimenti

Sintesi del suono è un argomento complesso che richiede molti anni di studio per master.

Non è anche un problema del tutto risolto, anche se relativamente recenti sviluppi (come sintesi per modelli fisici) hanno fatto progressi nel imitando strumenti del mondo reale.

Ci sono una serie di opzioni aperte a voi. Se si è certi che si desidera esplorare ulteriormente la sintesi, allora vi consiglio di iniziare imparando sintesi FM. E 'relativamente facile da imparare e implementare nel software, almeno nelle forme di base, e produce una vasta gamma di suoni interessanti. Inoltre, controllare il libro "The Computer Music Tutorial" di Curtis Roads. E 'una bibbia per tutte le cose computer music, e anche se è vecchia di qualche anno, è il libro di scelta per imparare i fondamentali.

Se volete un modo più veloce per produrre un suono realistico, considerare l'utilizzo di tecniche di campionamento: cioè, registrare gli strumenti che si desidera riprodurre (o utilizzare un banco di campioni pre-esistente), e solo riprodurre i campioni. Si tratta di un approccio molto più semplice (e spesso più efficace).

Sono d'accordo che questo è molto non è banale e non c'è nessun set "modo giusto", ma si dovrebbe prendere in considerazione a partire da un (o fare il proprio) MIDI SoundFont .

Come altre persone hanno detto, non è un argomento banale a tutti. Ci sono sfide, sia sul lato programmazione delle cose (soprattutto se avete a cuore a bassa latenza) e la parte di sintesi. Una miniera d'oro per la sintesi del suono è la pagina di Julius O. Smith. C'è molto di tecniche per la sintesi http: // www-CCRMA .stanford.edu / ~ Jos / .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top