Innholdsfortegnelse:

Analog lydsyntese på datamaskinen din: 10 trinn (med bilder)
Analog lydsyntese på datamaskinen din: 10 trinn (med bilder)

Video: Analog lydsyntese på datamaskinen din: 10 trinn (med bilder)

Video: Analog lydsyntese på datamaskinen din: 10 trinn (med bilder)
Video: «Развлечение с музыкой и программированием», Коннор Харрис и Стивен Крюсон 2024, November
Anonim
Analog lydsyntese på datamaskinen
Analog lydsyntese på datamaskinen

Liker du lyden til de gamle analoge synthesizerne? Vil du spille med en på din egen tid, på ditt eget sted, så lenge du vil, GRATIS? Her går dine villeste Moog -drømmer i oppfyllelse. Du kan bli en elektronisk innspillingskunstner eller bare lage noen kule, trippy lyder å lytte til på mp3 -spilleren din. Alt du trenger er en datamaskin! Det hele er gjort gjennom magien til en gratis kretssimulator kalt LTSpice. Nå vet jeg at du sannsynligvis sier "Gee willikers, Tyler, jeg vet ikke noe om å kjøre en kretssimulator- det høres HARDT ut!". Ikke bekymre deg, Bunky! Det er enkelt, og jeg gir deg noen maler til å begynne med og endre for å lage de rare lydene du vil. Ikke sikker på at det er verdt innsatsen? Her er en lenke til en lydfil som er klar til å spilles av (den er laget av "composition_1.asc" i trinn 7 i denne 'ible') som du kan prøve. Jeg konverterte den fra.wav til mp3 for å redusere nedlastingstiden. https://www.rehorst.com/mrehorst/instructables/composition_1.mp3 Det er litt lav bass i lyden, så lytt med hodetelefoner eller gode høyttalere. Hvis du liker det du ser, stem på meg! Merk: Jeg har lagt ved skjematiske filer for LTSpice som du kan kjøre på datamaskinen din, men av en eller annen grunn blir navnene og utvidelsene endret når du prøver å laste dem ned. Innholdet i filene ser OK ut, så etter at du har lastet ned filene, er det bare å endre navn og utvidelser, så skal de fungere. De riktige navnene og utvidelsene vises på ikonene du klikker for å laste ned.

Trinn 1: Første ting først

LTSpice er et Windows -program, men ikke la det gå deg ned. Det går fint under Wine i linux. Jeg mistenker at det ikke er noen problemer med å kjøre den i VMWare -klient, VirtualBox eller andre virtualiseringsverktøy under Linux, og sannsynligvis også på Mac -maskiner. Last ned en kopi av LTSpice for Windows (ugh!) Her: https://www.linear.com/ designtools/software/ltspice.jsp Installer det. Hva er LTSpice? Det er en kretssimulator for tidsdomene som alle elektronikkhobbyister burde vite hvordan de skal bruke. Jeg kommer ikke til å gi en detaljert opplæring om hvordan det fungerer her, men jeg vil forklare noen ting du må vite når vi går. Ett ord av advarsel- det er lett mulig å produsere for lave frekvenser eller for høy til å høre. Hvis du gjør det og driver de dyre høyttalerne med en kraftig forsterker, kan du bare blåse høyttalerne/forsterkeren i biter. Se ALLTID på bølgeformene før du spiller dem av, og vær forsiktig med å begrense volumet når du spiller av en fil for første gang for å være trygg. Det er alltid en god idé å spille av filene via billige hodetelefoner med lavt volum før du prøver høyttalere.

Trinn 2: Inndata

Inngang
Inngang

Input til simulatoren er i form av et skjematisk diagram. Du velger komponenter, plasserer dem på skjemaet og kobler dem deretter sammen. Når kretsen er fullført, forteller du simulatoren hvordan du vil at den skal simulere kretsen og hva slags utgang du vil ha. Ta en titt på skjematikken som kalles resistors.asc. Du vil se at det er en krets som inkluderer en spenningskilde, et par motstander, en merket utgangsnode, en bakke og en tekstkommandolinje. La oss se på hver enkelt. Nå er det et godt tidspunkt å åpne kretsfilen som er lenket under. Grunn: Dette er den MEST KRITISKE komponenten på skjematikken din. Du MÅ ha en jording koblet til minst ett punkt på kretsen din, eller du vil få veldig rare resultater fra simuleringene dine. Spenningskilden: Hvis du setter en spenning i en krets, må du fortelle den om det er vekselstrøm eller likestrøm (eller noe mer komplekst), hva spenningen er, "intern motstand" til kilden, etc. Du kan angi disse parameterne ved å høyreklikke med pekeren på kilden. Alt du egentlig trenger er motstanden for enkle simuleringer. Motstander: Motstandene er ganske enkle å forstå. Bare høyreklikk for å angi verdien av motstand. Ignorer alle andre parametere som kan gjemme seg der. Merkede inngangs- og utgangsnoder: Bare navn på noder i kretsen som er brukervennlige.- bruk navn som "output", "input", etc. Simuleringsdirektivet:.tran-setningen forteller simulatoren hvordan du vil at kretsen skal simuleres. Dette er en tidsdomenesimulator som betyr at den analyserer kretsen på forskjellige tidspunkter. Du må fortelle det hva det maksimale tidstrinnet bør være og hvor lenge simuleringen skal kjøre i "kretstid", ikke i sanntid. Hvis du ber simulatoren om å kjøre i 10 sekunder med kretstid og du setter det maksimale tidstrinnet til 0,001 sekunder, vil den analysere kretsen minst 10 000 ganger (10 sek/0,001 sek) og stoppe. Når simuleringen kjører, spenningen ved hver node i kretsen og strømmen inn og ut av hver node vil bli beregnet og lagret ved hvert tidstrinn. All denne informasjonen vil være tilgjengelig for å plotte på en skjerm som et oscilloskopskjermbilde (tid for den horisontale aksen, spenning eller strøm på den vertikale aksen. Alternativt kan du også sende utgangen til en.wav -lydfil som du kan spille av på en datamaskin, brenn til en CD, eller konverter til mp3 for å spille på mp3 -spilleren din. Mer om det senere …

Trinn 3: Utgang

Produksjon
Produksjon

Utgang kan være et grafisk diagram over spenning vs tid, spenning vs spenning, etc., eller en tekstfil som består av en haug med spenninger eller strømmer ved hvert trinn, eller en.wav -lydfil som vi kommer til å bruke mye i Last ned og åpne filen "resistors.asc". Klikk på det lille løpende mannssymbolet (øvre venstre del av skjermen), og kretsen skal kjøre. Klikk nå på "OUT" -etiketten i kretsen. Du vil se spenningen merket "utgang" vist på den grafiske utgangen langs en horisontal akse som representerer tid. Det er spenningen målt i forhold til bakken (det er derfor du trenger minst en jord i hver krets!). Det er det grunnleggende. Prøv å endre en av motstandsverdiene eller spenningen, og kjør deretter simuleringen på nytt og se hva som skjer med utgangsspenningen. Nå vet du hvordan du kjører en kretssimulator. Lett var det ikke?

Trinn 4: Nå litt lyd

Nå litt lyd!
Nå litt lyd!

Åpne kretsen kalt "dizzy.asc". Denne er en rar støyprodusent som bruker en modulator og et par spenningskilder for å produsere en lydfil med CD -kvalitet (16 bits, 44,1 ksps, 2 kanaler) som du kan spille med. Modulatorkomponenten er faktisk en oscillator. Frekvens og amplitude er begge justerbare som en VCO og VCA i en ekte analog synthesizer. Bølgeformen er alltid sinusformet, men det er måter å endre den på- mer om det senere. Frekvensgrensene er angitt av merke- og mellomromsparametere. Merk er frekvensen når FM -inngangsspenningen er 1V og mellomrom er frekvensen når FM -inngangsspenningen er 0V. Utgangsfrekvensen er en lineær funksjon av FM -inngangsspenningen, så frekvensen vil være halvveis mellom merket og romfrekvensene når FM -inngangsspenningen er 0,5V og vil være 2x markfrekvensen når FM -inngangsspenningen er 2V. modulatoren kan også amplitudemoduleres via AM -inngangspinnen. Modulatorens (oscillator) utgangsamplitude vil matche spenningen som tilføres AM -spenningsinngangen. Hvis du bruker en likestrømskilde med en spenning på 1, vil utgangsamplituden være 1V (det betyr at den svinger mellom -1 og +1 V). Modulatoren har to utganger- sinus og cosinus. Bølgeformene er nøyaktig de samme bortsett fra at de er 90 grader ute av fase. Dette kan være morsomt for stereolydapplikasjoner. Det er en.tran -setning som forteller simulatoren maksimalt tidstrinn og varigheten av simuleringen. I dette tilfellet er kretstid (total simuleringstid) = lydfiltid. Det betyr at hvis du kjører simuleringen i 10 sekunder får du en lydfil som er 10 sekunder lang.. Save -setningen brukes til å minimere datamengden som simulatoren lagrer når den kjører simuleringen. Normalt sparer det spenningene ved hver node og strømmen inn og ut av hver komponent. Det kan gi mye data hvis kretsen din blir komplisert eller du kjører en lang simulering. Når du kjører simuleringen, bare velg en spenning eller strøm fra listen i dialogboksen, og datafilen (.raw) blir liten, og simuleringen vil kjøre med maksimal hastighet. Til slutt sier.wave -setningen simulatoren lag en stereolydfil i CD -kvalitet (16 biter per prøve, 44,1 ksps, to kanaler) som setter spenningen til "OUTL" i den venstre kanalen og spenningen på "OUTR" i den høyre kanalen.. Wav -filen består av 16 biters prøver. Fullskalautgang i.wav -filen (alle 16 bitene i en prøve slått på) oppstår når spenningen som sendes ut er nøyaktig +1 volt eller -1 volt. Synthesizer -kretsen din bør settes opp for å generere spenninger ikke mer enn +/- 1V ut til hver kanal, ellers blir utgangen i.wav -filen "klippet" når spenningen overstiger +1 eller -1 V. Siden vi lager en lydfil som er samplet til 44,1 ksps, trenger vi simulatoren for å simulere kretsen minst 44, 100 ganger i sekundet, så vi setter det maksimale tidstrinnet til 1/44, 100 sekunder eller omtrent 20 mikrosekunder (oss).

Trinn 5: Andre typer spenningskilder, andre typer lyder

Andre typer spenningskilder, andre typer lyder
Andre typer spenningskilder, andre typer lyder
Andre typer spenningskilder, andre typer lyder
Andre typer spenningskilder, andre typer lyder

En analog synthesizer trenger en kilde til tilfeldig støy. Du kan generere støy ved hjelp av en "atferdsspenningskilde" (bv), og du kan slå den på og av ved hjelp av en "spenningsstyrt bryter" (sw). Bruk av bv -komponenten til å generere støy innebærer å definere spenningen basert på en formel. Formelen for å generere støy ser slik ut: V = hvit (tid*X)*Y Den hvite funksjonen skaper en tilfeldig spenning mellom -0,5 og +0,5 V ved å bruke gjeldende tidsverdi som et frø. Innstilling Y til 2 gir en +/- 1V sving. Innstilling X mellom 1, 000 (1e3) og 100, 000 (1e5) påvirker støyets spektrum og endrer lyden. Den spenningsstyrte bryteren trenger også noen parametere for å bli angitt i en.modellerklæring. Du kan bruke flere spenningsstyrte brytere og flere modelluttalelser for å få hver til å oppføre seg annerledes hvis du vil. Du må fortelle simulatoren "på" og "av" motstander og terskelspenningen som den bytter. Vh er "hysteresespenning". Sett den til en positiv verdi som 0,4V, og det vil ikke være noen klikkelyder når bryteren åpnes og lukkes. >>> Oppdater: her er en enda enklere måte å lage en inngjerdet støykilde på- bare multipliser støyspenningen med en pulsert kilde- se easy_gated_noise.asc, nedenfor.

Trinn 6: Klokker, trommer, cymbaler, plukkede strenger

Klokker, trommer, cymbaler, plukkede strenger
Klokker, trommer, cymbaler, plukkede strenger

Klokker, trommer, cymbaler og plukkede strenger er alle slagverk. De har en relativt rask stigningstid og en eksponentiell forfallstid. De er enkle å lage ved hjelp av sinus- og atferdsmessige spenningskilder kombinert med noen enkle kretser. Se på skjematisk "bell_drum_cymbal_string.asc". De pulserende spenningskildene med motstanden, kondensatoren og dioden skaper den raske stigningen og sakte eksponentielle nedbrytningsbølgeformene som trengs. Disse utgangsspenningene modulerer utgangene til atferdskilder som er satt opp som tilfeldig støy eller sinusbølgekilder. Når den pulserende kildespenningen stiger, lades kondensatoren raskt. Kondensatoren tømmes deretter gjennom motstanden. Dioden forhindrer spenningskilden i å tømme kondensatoren når kildespenningen er null. Større motstandsverdier øker utladningstiden. Du kan angi stigningstiden for den pulserende kilden - cymbalen er en fin kilde med en veldig rask stigningstid. Trommelen er også en støykilde som opererer med lavere frekvens og har en lavere stigningstid. Klokken og strengen bruker sinusbølgekilder som også er modulert av pulserende kilder. Klokken opererer med høyere frekvens og har en raskere stigningstid enn strengen. Kjør simuleringen og lytt til resultatet. Vær oppmerksom på at trommelen vises i begge kanalene mens alle de andre lydene enten er høyre eller venstre kanal. De to motstandene ved trommelutgangen er ansvarlig for å sette lyden i begge kanalene.

Trinn 7: Sett alt sammen

Sette alt sammen
Sette alt sammen

OK, nå har du sett hvordan du lager noen lyder og hvordan du former konvoluttene og frekvensmodulerer dem. Nå er det på tide å sette sammen noen forskjellige kilder i en enkelt skjematisk og generere noe interessant å lytte til. Hvordan får du den støykilden til å komme inn i komposisjonen på 33 sekunder? Hvordan slår du på den ringeklokken på 16 sekunder, slår du den av og deretter på igjen etter 42 sekunder? En måte er å bruke en atferdsspenningskilde for å lage ønsket lyd, og deretter slå den på og av ved å multiplisere lydgenererende spenning med en annen spenning som slår lyden på og av, slik det ble gjort i bell_drum_cymbal_string.asc. Du kan gjøre det samme for å falme lyder inn og ut. Ideen her er å sette opp gjentagende lyder, og bruk deretter flere kilder for å legge disse lydene til komposisjonen din til ønsket tid ved å multiplisere spenningene med lydspenningene. Du kan inkludere så mange spenninger i den endelige lydutgangen du vil, bare fortsett å multiplisere dem (det samme som logisk "og") sammen. Ved å starte lydene på en gang vil de forbli i perfekt synkronisering gjennom komposisjonen, slik at de aldri vil være tidlig eller sent på tidspunktet for musikken. Se på komposisjon_1.asc. Det er to klokker, en i hver kanal. Pulssignalene fungerer under hele simuleringen, men lydene vises bare i utgangen når V (bell_r) og V (bell_l) ikke er lik 0.

Trinn 8: Eksponentiell rampe

Eksponensiell rampe
Eksponensiell rampe
Eksponensiell rampe
Eksponensiell rampe

Oppdater 7/10- bla til bunn Her er en krets som genererer en eksponentiell rampe som brukes på et par støykilder. V1 og V2 genererer lineære ramper som starter ved 0 og stiger til X volt (venstre kanal) og Y volt (høyre kanal) i perioder prd_l og prd_r. B1 og B3 bruker en formel for å konvertere de lineære rampene til eksponentielle ramper med maksimal amplituder på 1V. B2 og B4 genererer tilfeldig støy som amplituden moduleres av eksponensielle ramper og parametere amp_l og amp_r (enkle nivåkontroller). Jeg har vedlagt en mp3 -fil generert av denne kretsen, slik at du kan høre hvordan det høres ut. Du må sannsynligvis gi nytt navn til filen for å få den til å spille. X og Y angir spenningsgrensene for de lineære rampene. Etter hvert skaleres begge kanalens ramper til 1V, men ved å sette X og Y kan du kontrollere brattheten til den eksponentielle rampen. Et lite tall som 1 gir en nesten lineær rampe, og et stort tall som 10 gir en veldig bratt eksponentiell rampe. Rampeperiodene settes ved hjelp av parameterne prd_l og prd_r. Den lineære rampestigningstiden er satt til prd_l- eller prd_r -verdien minus 5 ms, og falltiden er satt til 5 ms. Den lange falltiden forhindrer klikk ved enden av hver rampe ettersom amplituden faller tilbake til null. Out_l og out_r er produktene av de tidsbaserte tilfeldige støyspenningene, de eksponentielle rampespenningene og parameterne amp_l og amp_r. Vær oppmerksom på at den høyre kanalens tilfeldige støyverdi bruker et annet "seed" enn den venstre kanalen. Det holder støyen i hver kanal tilfeldig og forskjellig fra den motsatte kanalen. Hvis du bruker samme seed, får du samtidig samme verdi samme tilfeldige verdi, og lyden havner i midten i stedet for å bli oppfattet som to forskjellige kilder, en i hver kanal. Dette kan være en interessant effekt å leke med … Oppdatering: legg merke til at bølgeformen går fra 0V til en positiv verdi. Det er bedre for spenningen å svinge mellom like positive og negative verdier. Jeg omarbeidet skjematikken for å gjøre nettopp det, men det økte kompleksiteten til ligningen som definerer bølgeformen litt. Last ned exponential_ramp_noise.asc (husk at Instructables -serveren vil endre navn og utvidelse når du lagrer den).

Trinn 9: Eksponentiell rampe påført en sinusbølge

Eksponensiell rampe påført en sinusbølge
Eksponensiell rampe påført en sinusbølge

Denne siden viser hvordan du bruker den eksponentielle rampen fra forrige trinn til å modulere en sinuskilde (faktisk sinus og cosinus). Atferdsspenningskilden brukes til å gjøre en lineær rampe til en eksponentiell rampe som driver FM -inngangen på en modul modul2. Amplituden moduleres av både en rask eksponentiell rampe og en langsom sinusbølge. Lytt til prøvefilen- det høres ganske rart ut.

Trinn 10: Forslag

1) Du kan variere den totale simuleringstiden - hold den kort mens du spiller med komponenter, og når du får lyden du liker, sett deretter simulatoren til å kjøre i 30 minutter (1800 sekunder) eller hvor lenge du vil. Du kan kopiere kretser fra en side til en annen, og du kan lage underkretser slik at du bare kan koble små kretsmoduler sammen som å bruke et patchkort på en ekte synthesizer.2) En CD -samplingsfrekvens er 44,1 ksps. Hvis du holder det maksimale tidstrinnet ned til 20 oss, får du en "ren" utgang fordi simulatoren vil ha data tilgjengelig for hver ny prøve. Hvis du bruker et mindre tidstrinn, vil simuleringen være treg og sannsynligvis ikke ha noen effekt på lyden. Hvis du bruker et lengre tidstrinn, kan du høre noen aliasing som du kanskje ikke liker. 3) bruk dialogboksen.save på skjematikken din, og når du kjører simuleringen og bare velger en av spenningene eller strømningene for å beholde størrelsen på.raw -filen liten. Hvis du ikke gjør et valg, blir ALLE spenninger og strømmer lagret, og.raw -filen blir VELDIG stor. 4) prøv å bruke svært lave frekvenser for å modulere høyere frekvenser5) prøv å bruke høyere frekvenser for å modulere lavere frekvenser. kombinere utganger fra noen lavfrekvente kilder med noen høyfrekvente kilder for å gjøre ting interessant. 7) bruk en pulsert spenningskilde for å modulere en sinus eller annen kilde for å gi rytme. 8) bruk analoge kretser for å forme spenningspulser til noe du vil ha.) bruk matematiske uttrykk for å definere utgangen til en atferdsspenningskilde Ha det gøy!

Anbefalt: