Sommario:

Sintesi del suono analogico sul tuo computer: 10 passaggi (con immagini)
Sintesi del suono analogico sul tuo computer: 10 passaggi (con immagini)

Video: Sintesi del suono analogico sul tuo computer: 10 passaggi (con immagini)

Video: Sintesi del suono analogico sul tuo computer: 10 passaggi (con immagini)
Video: Quando provi a fare un complimento a una ragazza... 2024, Dicembre
Anonim
Sintesi del suono analogico sul tuo computer
Sintesi del suono analogico sul tuo computer

Ti piace il suono di quei vecchi sintetizzatori analogici? Vuoi giocare con uno a tuo piacimento, a casa tua, per tutto il tempo che vuoi, GRATUITAMENTE? Qui è dove i tuoi sogni Moog più selvaggi diventano realtà. Puoi diventare un artista di registrazioni elettroniche o semplicemente creare suoni fantastici e divertenti da ascoltare sul tuo lettore mp3. Tutto ciò di cui hai bisogno è un computer! È tutto fatto attraverso la magia di un simulatore di circuiti gratuito chiamato LTSpice. Ora so che probabilmente stai dicendo "Gee willikers, Tyler, non so niente sull'esecuzione di un simulatore di circuiti, suona DIFFICILE!". Non preoccuparti, Bunky! È facile e ti darò alcuni modelli con cui iniziare e modificare per fare qualsiasi rumore strano tu voglia. Non sei sicuro che valga la pena? Ecco un collegamento a un file audio pronto per la riproduzione (è composto da "composition_1.asc" nel passaggio 7 di questo 'ible) che puoi provare. L'ho convertito da.wav a mp3 per ridurre il tempo di download. https://www.rehorst.com/mrehorst/instructables/composition_1.mp3 Ci sono dei bassi bassi nel suono, quindi ascolta con le cuffie o buoni altoparlanti. Se ti piace quello che vedi, votami! Nota: ho allegato dei file schematici per LTSpice che puoi eseguire sul tuo computer, ma per qualche motivo quando provi a scaricarli i nomi e le estensioni vengono modificati. Il contenuto dei file sembra OK, quindi dopo aver scaricato i file cambia semplicemente i nomi e le estensioni e dovrebbero funzionare. I nomi e le estensioni corretti sono mostrati sulle icone su cui fai clic per scaricare.

Passaggio 1: per prima cosa

LTSpice è un programma Windows, ma non lasciarti abbattere. Funziona bene sotto Wine in Linux. Sospetto che non ci siano problemi a eseguirlo nel client VMWare, VirtualBox o altri strumenti di virtualizzazione sotto Linux e probabilmente anche su Mac. Scarica una copia di LTSpice per Windows (ugh!) qui: https://www.linear.com/ designtools/software/ltspice.jspInstallarlo. Che cos'è LTSpice? È un simulatore di circuiti nel dominio del tempo che ogni appassionato di elettronica dovrebbe sapere come usare. Non fornirò un tutorial dettagliato su come funziona qui, ma spiegherò alcune cose che dovrai sapere man mano che procediamo. Un avvertimento: è facilmente possibile produrre frequenze troppo basse o troppo alto per sentire. Se lo fai e guidi i tuoi costosi altoparlanti con un amplificatore ad alta potenza, potresti semplicemente far saltare in aria i tuoi altoparlanti / amplificatore. Guarda SEMPRE le forme d'onda prima di riprodurle e fai attenzione a limitare il volume quando riproduci un file per la prima volta per sicurezza. È sempre una buona idea riprodurre i file tramite cuffie economiche a basso volume prima di provare gli altoparlanti.

Passaggio 2: ingresso

Ingresso
Ingresso

L'input al simulatore è sotto forma di diagramma schematico. Si selezionano i componenti, li si posiziona sullo schema, quindi li si collega insieme. Una volta che il circuito è completo, dici al simulatore come vuoi che simuli il circuito e che tipo di output desideri. Dai un'occhiata allo schema chiamato resistors.asc. Vedrai che c'è un circuito che include una sorgente di tensione, una coppia di resistori, un nodo di uscita etichettato, una massa e una riga di comando di testo. Diamo un'occhiata a ciascuno. Ora è un buon momento per aprire il file del circuito collegato di seguito. Terreno: questo è il componente PI CRITICO del tuo schema. DEVI avere una messa a terra collegata ad almeno un punto del tuo circuito o otterrai risultati molto strani dalle tue simulazioni. La fonte di tensione: se stai inserendo una tensione in un circuito, devi dirgli se è CA o CC (o qualcosa di più complesso), qual è la tensione, la "resistenza interna" della sorgente, ecc. Puoi inserire questi parametri facendo clic con il pulsante destro del mouse con il puntatore sulla sorgente. Tutto ciò di cui hai veramente bisogno è la resistenza per semplici simulazioni. Resistori: i resistori sono abbastanza facili da capire. Basta fare clic con il pulsante destro del mouse per impostare il valore della resistenza. Ignora qualsiasi altro parametro che potrebbe nascondersi lì. Nodi di input e output etichettati: solo nomi per i nodi nel circuito che sono facili da usare. - usa nomi come "output", "input", ecc. La direttiva di simulazione: l'istruzione.tran dice al simulatore come vuoi che venga simulato il circuito. Questo è un simulatore nel dominio del tempo, il che significa che analizza il circuito in diversi momenti. Devi dirgli quale dovrebbe essere il passo temporale massimo e per quanto tempo la simulazione dovrebbe funzionare in "tempo di circuito", non in tempo reale. Se dici al simulatore di funzionare per 10 secondi di tempo di circuito e imposti il passo temporale massimo a 0,001 secondi, analizzerà il circuito almeno 10.000 volte (10 sec/0,001 sec) quindi si fermerà. Quando la simulazione viene eseguita, la tensione ad ogni nodo del circuito e le correnti in entrata e in uscita da ogni nodo verranno calcolate e salvate ad ogni passo temporale. Tutte queste informazioni saranno disponibili per tracciare su un display come lo schermo di un oscilloscopio (tempo dell'asse orizzontale, tensione o corrente sull'asse verticale. In alternativa, puoi anche inviare l'output a un file audio.wav che puoi riprodurre su un computer, masterizza su un CD o converti in mp3 per riprodurlo sul tuo lettore mp3. Ne parleremo più avanti…

Passaggio 3: uscita

Produzione
Produzione

L'output può essere un grafico di tensione rispetto al tempo, tensione rispetto alla tensione, ecc., o un file di testo costituito da un gruppo di tensioni o correnti ad ogni passo temporale, o un file audio.wav che useremo molto in questo instructable. Scaricare e aprire il file "resistors.asc". Fare clic sul simbolo dell'omino che corre (parte in alto a sinistra dello schermo) e il circuito dovrebbe funzionare. Ora fai clic sull'etichetta "OUT" nel circuito. Vedrai la tensione etichettata "output" visualizzata sull'output grafico lungo un asse orizzontale che rappresenta il tempo. Questa è la tensione misurata rispetto alla terra (ecco perché hai bisogno di almeno una terra in ogni circuito!). Queste sono le basi. Prova a cambiare uno dei valori del resistore o la tensione, quindi riesegui la simulazione e guarda cosa succede alla tensione di uscita. Ora sai come eseguire un simulatore di circuiti. Facile no?

Passaggio 4: ora un po' di suono

Ora un po' di suono!
Ora un po' di suono!

Aprire il circuito chiamato "dizzy.asc". Questo è uno strano generatore di rumore che utilizza un modulatore e un paio di sorgenti di tensione per produrre un file audio di qualità CD (16 bit, 44,1 ksps, 2 canali) con cui puoi giocare. Il componente modulatore è in realtà un oscillatore. La frequenza e l'ampiezza sono entrambe regolabili come un VCO e un VCA in un vero sintetizzatore analogico. La forma d'onda è sempre sinusoidale, ma ci sono modi per modificarla, ne parleremo più avanti. I limiti di frequenza sono impostati dai parametri mark e space. Mark è la frequenza quando la tensione di ingresso FM è 1V e lo spazio è la frequenza quando la tensione di ingresso FM è 0V. La frequenza di uscita è una funzione lineare della tensione di ingresso FM, quindi la frequenza sarà a metà strada tra le frequenze mark e space quando la tensione di ingresso FM è 0,5 V e sarà 2 volte la frequenza di mark quando la tensione di ingresso FM è 2 V. modulatore può anche essere modulato in ampiezza tramite il pin di ingresso AM. L'ampiezza dell'uscita del modulatore (oscillatore) corrisponderà alla tensione applicata all'ingresso della tensione AM. Se si utilizza una sorgente CC con una tensione di 1, l'ampiezza di uscita sarà di 1 V (ciò significa che oscillerà tra -1 e +1 V). Il modulatore ha due uscite: seno e coseno. Le forme d'onda sono esattamente le stesse, tranne per il fatto che sono sfasate di 90 gradi. Questo può essere divertente per le applicazioni audio stereo. C'è un'istruzione.tran che dice al simulatore il tempo massimo e la durata della simulazione. In questo caso, circuit-time (tempo di simulazione totale) = tempo del file audio. Ciò significa che se esegui la simulazione per 10 secondi otterrai un file audio lungo 10 secondi. L'istruzione.save viene utilizzata per ridurre al minimo la quantità di dati che il simulatore salverà durante l'esecuzione della simulazione. Normalmente salva le tensioni ad ogni nodo e le correnti in entrata e in uscita da ogni componente. Ciò può aggiungere MOLTI dati se il tuo circuito si complica o esegui una lunga simulazione. Quando esegui la simulazione, seleziona semplicemente una tensione o una corrente dall'elenco nella finestra di dialogo e il file di dati (.raw) sarà piccolo e la simulazione verrà eseguita alla massima velocità. Infine, l'istruzione.wave dice al simulatore di creare un file audio stereo di qualità CD (16 bit per campione, 44,1 ksps, due canali) ponendo la tensione su "OUTL" nel canale sinistro e la tensione su "OUTR" nel canale destro. Il file.wav è composto da campioni a 16 bit. L'output a scala intera nel file.wav (tutti i 16 bit in un campione attivato) si verifica quando la tensione in uscita è esattamente +1 Volt o -1 Volt. Il circuito del sintetizzatore dovrebbe essere impostato per generare tensioni non superiori a +/- 1 V su ciascun canale, altrimenti l'uscita nel file.wav verrà "tagliata" ogni volta che la tensione supera +1 o -1 V. Poiché stiamo facendo un file audio campionato a 44,1 ksps, abbiamo bisogno del simulatore per simulare il circuito almeno 44, 100 volte al secondo, quindi impostiamo il passo temporale massimo a 1/44, 100 sec o circa 20 microsecondi (us).

Passaggio 5: altri tipi di sorgenti di tensione, altri tipi di suoni

Altri tipi di sorgenti di tensione, altri tipi di suoni
Altri tipi di sorgenti di tensione, altri tipi di suoni
Altri tipi di sorgenti di tensione, altri tipi di suoni
Altri tipi di sorgenti di tensione, altri tipi di suoni

Un sintetizzatore analogico ha bisogno di una sorgente di rumore casuale. È possibile generare rumore utilizzando una "sorgente di tensione comportamentale" (bv) e accenderla e spegnerla utilizzando un "interruttore controllato in tensione" (sw). L'utilizzo del componente bv per generare rumore implica la definizione della tensione in base a una formula. La formula per generare rumore è la seguente: V=white(time*X)*Y La funzione white crea una tensione casuale tra -0,5 e +0,5 V utilizzando il valore del tempo corrente come seme. Impostando Y su 2 si ottiene un'oscillazione di +/- 1V. L'impostazione di X tra 1.000 (1e3) e 100.000 (1e5) influisce sullo spettro del rumore e modifica il suono. Anche l'interruttore controllato in tensione richiede l'impostazione di alcuni parametri in un'istruzione.model. Se lo desideri, puoi utilizzare più interruttori controllati dalla tensione e più dichiarazioni del modello per far sì che ognuno si comporti in modo diverso. Devi dire al simulatore le resistenze "on" e "off" e la tensione di soglia alla quale commuta. Vh è "tensione di isteresi". Impostalo su un valore positivo come 0,4 V e non ci sarà alcun clic quando l'interruttore si apre e si chiude. >>> Aggiornamento: ecco un modo ancora più semplice per creare una sorgente di rumore con cancello: basta moltiplicare la tensione del rumore per un impulso fonte- vedere easy_gated_noise.asc, sotto.

Passaggio 6: campane, batteria, piatti, corde pizzicate

Campane, batteria, piatti, corde pizzicate
Campane, batteria, piatti, corde pizzicate

Campane, tamburi, piatti e corde pizzicate sono tutti percussivi. Hanno un tempo di salita relativamente veloce e un tempo di decadimento esponenziale. Questi sono facili da creare utilizzando sorgenti di tensione sinusoidali e comportamentali combinate con alcuni semplici circuiti. Guarda lo schema "bell_drum_cymbal_string.asc". Le sorgenti di tensione pulsata con il resistore, il condensatore e il diodo creano le forme d'onda a rapido aumento e lento decadimento esponenziale necessarie. Quelle tensioni di uscita modulano le uscite di sorgenti comportamentali impostate come sorgenti di rumore casuale o onde sinusoidali. Quando la tensione della sorgente pulsata aumenta, carica rapidamente il condensatore. Il condensatore quindi si scarica attraverso il resistore. Il diodo impedisce alla sorgente di tensione di scaricare il condensatore quando la tensione della sorgente è a zero. Valori di resistenza maggiori aumentano il tempo di scarica. È possibile specificare il tempo di salita della sorgente pulsata: il piatto è una sorgente nitida con un tempo di salita molto rapido. Il tamburo è anche una fonte di rumore che opera a frequenze più basse e ha un tempo di salita più lento. La campana e la corda utilizzano sorgenti sinusoidali modulate anche da sorgenti pulsate. La campana funziona a una frequenza più alta e ha un tempo di salita più veloce della corda. Esegui la simulazione e ascolta il risultato. Notare che la batteria appare in entrambi i canali mentre tutti gli altri suoni sono sul canale destro o sinistro. I due resistori all'uscita del tamburo sono responsabili dell'immissione del suono in entrambi i canali.

Passaggio 7: mettere tutto insieme

Mettere tutto insieme
Mettere tutto insieme

OK, ora hai visto come creare alcuni suoni e come modellare gli inviluppi e modularli in frequenza. Ora è il momento di mettere insieme alcune fonti diverse in un unico schema e generare qualcosa di interessante da ascoltare. Come fai a far entrare quella fonte di rumore nella composizione a 33 secondi? Come si accende quel campanello a 16 secondi, poi lo si spegne e poi lo si riaccende a 42 secondi? Un modo è utilizzare una sorgente di tensione comportamentale per produrre il suono desiderato, quindi attivarla e disattivarla moltiplicando la tensione di generazione del suono per un'altra tensione che attiva e disattiva il suono, come è stato fatto in bell_drum_cymbal_string.asc. Puoi fare la stessa cosa per sfumare i suoni in entrata e in uscita. L'idea qui è di impostare suoni ripetuti, quindi utilizzare fonti aggiuntive per aggiungere quei suoni alla tua composizione nei momenti desiderati moltiplicando le loro tensioni per le tensioni sonore. Puoi includere tutte le tensioni che desideri nell'uscita audio finale, semplicemente continua a moltiplicarle (come per la logica "e") insieme. Avviando i suoni tutti in una volta, rimarranno in perfetta sincronia per tutta la composizione, quindi non saranno mai in anticipo o in ritardo nel tempo della musica. Guarda composizione_1.asc. Ci sono due campane, una in ogni canale. Le tensioni pulse_bell operano per tutta la simulazione, ma i suoni vengono visualizzati in uscita solo quando V(bell_r) e V(bell_l) non sono uguali a 0.

Passaggio 8: rampa esponenziale

Rampa esponenziale
Rampa esponenziale
Rampa esponenziale
Rampa esponenziale

Aggiornamento 7/10- scorrere fino in fondoEcco un circuito che genera una rampa esponenziale applicata a una coppia di sorgenti di rumore. V1 e V2 generano rampe lineari che iniziano da 0 e salgono a X volt (canale sinistro) e Y volt (canale destro) nei periodi prd_l e prd_r. B1 e B3 utilizzano una formula per convertire le rampe lineari in rampe esponenziali con ampiezze massime di 1V. B2 e B4 generano un rumore casuale modulato in ampiezza dalle rampe esponenziali e dai parametri amp_l e amp_r (controlli di livello semplici). Ho allegato un file mp3 generato da questo circuito in modo da poter sentire come suona. Probabilmente dovrai rinominare il file per farlo riprodurre. X e Y impostano i limiti di tensione delle rampe lineari. Alla fine le rampe di entrambi i canali vengono scalate a 1V, ma impostando X e Y è possibile controllare la pendenza della rampa esponenziale. Un numero piccolo come 1 dà una rampa quasi lineare e un numero grande come 10 dà una rampa esponenziale molto ripida. I periodi di rampa vengono impostati utilizzando i parametri prd_l e prd_r. Il tempo di salita della rampa lineare è impostato sul valore prd_l o prd_r meno 5 ms e il tempo di discesa è impostato su 5 ms. Il lungo tempo di caduta impedisce il clic alla fine di ogni rampa quando l'ampiezza torna a zero.out_l e out_r sono i prodotti delle tensioni di rumore casuale basate sul tempo, le tensioni di rampa esponenziali e i parametri amp_l e amp_r. Notare che il valore del rumore casuale del canale destro utilizza un "seme" diverso rispetto al canale sinistro. Ciò mantiene il rumore in ogni canale casuale e diverso dal canale opposto. Se usi lo stesso seme, allo stesso tempo otterrai lo stesso valore casuale e il suono finirà al centro invece di essere percepito come due sorgenti diverse, una in ogni canale. Questo potrebbe essere un effetto interessante con cui giocare…Aggiornamento: nota che la forma d'onda va da 0V a qualche valore positivo. È meglio che la tensione oscilli tra valori uguali positivi e negativi. Ho rielaborato lo schema per fare proprio questo, ma ha aumentato un po' la complessità dell'equazione che definisce la forma d'onda. Scarica l'exponential_ramp_noise.asc (ricorda che il server Instructables cambierà il nome e l'estensione quando lo salvi).

Passaggio 9: rampa esponenziale applicata a un'onda sinusoidale

Rampa esponenziale applicata a un'onda sinusoidale
Rampa esponenziale applicata a un'onda sinusoidale

Questa pagina mostra come utilizzare la rampa esponenziale del passaggio precedente per modulare una sorgente seno (in realtà, seno e coseno). La sorgente di tensione comportamentale viene utilizzata per trasformare una rampa lineare in una rampa esponenziale che pilota l'ingresso FM su un componente modulate2. L'ampiezza è modulata sia da una rampa esponenziale veloce che da un'onda sinusoidale lenta. Ascolta il file di esempio: suona piuttosto strano.

Passaggio 10: suggerimenti

1) Puoi variare il tempo totale di simulazione: mantienilo breve mentre giochi con i componenti e quando ottieni il suono che ti piace, quindi imposta il simulatore in modo che funzioni per 30 minuti (1800 sec) o per il tempo che preferisci. È possibile copiare circuiti da una pagina all'altra e creare sottocircuiti in modo da poter collegare insieme piccoli moduli di circuito come utilizzando una patch board su un vero sintetizzatore.2) La frequenza di campionamento di un CD è di 44,1 ksps. Se mantieni il time-step massimo fino a 20 us otterrai un output "pulito" perché il simulatore avrà i dati disponibili per ogni nuovo campione. Se usi un time-step più piccolo, la simulazione sarà lenta e probabilmente non avrà alcun effetto sul suono. Se usi un passo temporale più lungo potresti sentire qualche aliasing che ti potrebbe piacere o meno.3) usa l'istruzione.save dialogbox sul tuo schema e quando esegui la simulazione e seleziona solo una delle tensioni o correnti per mantenere il dimensione del file.raw piccola. Se non effettui una selezione, TUTTE le tensioni e le correnti verranno salvate e il file.raw diventerà MOLTO grande.4) prova a usare frequenze molto basse per modulare le frequenze più alte5) prova a usare frequenze più alte per modulare le frequenze più basse.6) combinare gli output di alcune sorgenti a bassa frequenza con alcune sorgenti ad alta frequenza per rendere le cose interessanti.7) utilizzare una sorgente di tensione pulsata per modulare un seno o un'altra sorgente per fornire il ritmo.8) utilizzare circuiti analogici per modellare gli impulsi di tensione in qualcosa che si desidera.9) utilizzare espressioni matematiche per definire l'uscita di una sorgente di tensione comportamentale Buon divertimento!

Consigliato: