Indholdsfortegnelse:

Arpeggiating Synthesizer (Mosquito I): 6 trin
Arpeggiating Synthesizer (Mosquito I): 6 trin

Video: Arpeggiating Synthesizer (Mosquito I): 6 trin

Video: Arpeggiating Synthesizer (Mosquito I): 6 trin
Video: 1980s Synth Bass Arpeggio Techniques 2024, Juli
Anonim
Arpeggiating Synthesizer (myg I)
Arpeggiating Synthesizer (myg I)

Mosquito I er en lille arpeggiating synthesizer, der bruger en Arduino Nano og Mozzi lydsyntesebibliotek. Det kan afspille over tyve 8-trins sekvenser, men du kan tilføje så mange brugerdefinerede sekvenser, som du vil. Det er relativt enkelt at opsætte og kræver ikke mange dele.

Tilbehør:

  • Arduino Nano (eller enhver Arduino burde virkelig fungere)
  • 5 stk potentiometre (10K lineær)
  • 2 stk trykknapper
  • 1 stk LED
  • 1 stk modstand (330 ohm)
  • 2 stk. Modstand (1K)
  • 1 stk Modstand (2K)
  • 1 stk. Elektrolytisk kondensator (100 uF)
  • 1 stk keramisk kondensator (33 nF)
  • 1 stk Stereo Jack
  • Tilslutningstråd
  • Brødbræt

Trin 1: Opsætning af Arduino

Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino
Opsætning af Arduino

Lad os først få Nano på brødbrættet og sætte vores strøm op:

  1. Læg Nano på brødbrættet. Placer som vist på billedet ovenfor. Det skal grænser op til midterkanalen på brødbrættet. Du vil have det placeret mod den ene ende af brødbrættet, med USB -porten vendt mod den side. På denne måde kommer kablet ikke i vejen, når vi tilslutter det. Hvis du bruger en større Arduino som f.eks. Uno eller Mega, monterer du det naturligvis ikke på brødbrættet.
  2. Tilslut strømskinner til Arduino. Tilslut en af de positive (røde) skinner på dit brødbræt til Arduino's 5V pin ved hjælp af ledninger eller jumperkabler. Tilslut derefter en af de negative (blå) skinner til en af Nano's GND -ben.
  3. Tilslut strømskinner til hinanden. For at få strøm langs skinnerne på begge sider af brødbrættet skal du forbinde skinnerne på hver side af brødbrættet til hinanden ved at føre en ledning fra den positive skinne på den ene side til den positive skinne på den anden side. Gentag dette med de negative skinner.

Trin 2: Tilføjelse af kontrolelementerne

Tilføjelse af kontrolelementerne
Tilføjelse af kontrolelementerne

Myg I bruger fem potentiometre og to knapper til betjening.

Potentiometre:

  1. Læg gryderne på brødbrættet. Placer gryderne, så hver nål er på sin egen række.
  2. Tilslut gryder til strømskinner. Forbind den venstre sidestift på hver gryde (hvis du kigger på knappen på siden) til en af de negative skinner på brødbrættet. Slut den højre sidestift på hver gryde til en af brødbrædets positive skinner.
  3. Tilslut gryder til Arduino. Slut midterstiften på hver gryde til en af de analoge ben på Arduino. Den første gryds midterstik forbindes til A0, den anden gryde til A1 og så videre med den sidste gryde tilsluttet A4.

Trykknapper:

  1. Placer knapper på brødbrættet. Placer de to trykknapper på brødbrættet, så de ligger over midterkanalen.
  2. Forbind positive sider. På den ene side af brødbrættet skal du slutte en af trykknappens stifter til den positive skinne.
  3. Tilslut negative sider. Placer en af 1K -modstandene på brødbrættet, så den ene ende er forbundet til trykknappens ubrugte stift, og den anden side af modstanden tilsluttes den negative skinne.
  4. Tilslut -knap til Arduino. Kør en ledning på rækken, der forbinder knappen med den negative skinne til D2 -stiften. Gør det samme med den anden knap, men slut den til D3.

Trin 3: Tilføjelse af output

Tilføjelse af output
Tilføjelse af output

Vi udsender lyd fra pin 9 samt blinker en LED på det første trin i hver sekvens. Sådan konfigureres hardwaren til det.

LED

  1. Placer en LED i et tomt rum på brødbrættet.
  2. Tilslut det negative (korte) ben på LED'en til den negative skinne.
  3. Placer strømbegrænsende modstand. Tilslut den ene side af en 330 ohm modstand til det positive (lange) ben på LED'en. Tilslut den anden side af modstanden til pin D4 på Arduino.

Lydudgang

  1. Placer RC -netværket. Udgangssignalet fra Arduino kommer fra pin 9, men signalet kan være lidt varmere end nogle højttalere kan klare. For at bringe det ned til noget tættere på linjeniveau har jeg tilføjet et RC -netværk (baseret på et design af Notes & Volts). Placer 33nF- og 100uF -kondensatorerne sammen med 2K -modstanden som vist på billedet/skematisk. Sørg for, at den elektrolytiske 100uF kondensator er forbundet med den rigtige polaritet (det positive/lange ben går til pin 9 på Arduino og det negative/korte ben forbundet til stikket).
  2. Tilslut den negative side af lydstikket til jorden. Lydstikforbindelser varierer lidt afhængigt af den type, du bruger, men de fungerer generelt alle ens. Vi skal forbinde donkraftens muffe til jorden. Dette er undertiden markeret med et minus -symbol eller mærket som "ærme", "ring" eller "gnd". Hvis der ikke er etiketter på dit lydstik, skal du muligvis konsultere databladet eller bare foretage en grundig inspektion af stikket og se, om du kan afgøre, hvilken stift der er forbundet til jackets bøsning eller ydre ring.
  3. Tilslut den positive side af lydstikket til den negative side af 100uF kondensatoren. Vores lydsignal strømmer nu fra pin 9 på Arduino gennem RC -netværket og kommer ud fra den negative side af 100uF kondensatoren. Vi forbinder det med den positive side af vores lydstik. Dette er normalt markeret med et plus -symbol eller kan være mærket "tip". Igen, hvis det ikke er mærket, skal du muligvis inspicere det for at finde ud af, hvilken pin der vil forbinde til spidsen af stikket. Hvis du også bruger et stereostik, kan der være en L -tip og R -tip -forbindelse. Da vi udsender et monosignal, kan du bare oprette forbindelse til en af tipforbindelserne.

Vigtigt: Hvis du synes, at lyden er for stille, kan du muligvis fjerne RC -netværket i trin 1 og tilslutte direkte til lyden fra pin 9 på Arduino. Dette burde være i orden, hvis du forbinder lyden til noget med en forforstærker som eksterne computerhøjttalere, hvor du har en lydstyrkeknap, men jeg vil ikke anbefale det til ting som hovedtelefoner, øretelefoner eller direkte ledninger til en højttaler. Hvis du beslutter dig for at fjerne RC -netværket, foreslår jeg, at du skruer lydstyrken helt ned på dine højttalere, før du starter Arduino, og derefter gradvist øger lydstyrken for at undgå at blæse dine højttalere ud.

Når du har fået alt sat op, skal du kontrollere, at alle forbindelser ser korrekte ud og matcher billedet og skematisk ovenfor

Trin 4: Upload af koden

Nu hvor hardwaren er helt opsat, er vi klar til at tackle softwaresiden:

  1. Start Arduino IDE. Start Arduino IDE på din computer (hvis du ikke har den, kan du downloade den fra
  2. Download Mozzi -biblioteket. Mozzi -biblioteket er det, der giver os mulighed for at bruge vores Arduino som en synthesizer. For at få dette bibliotek i din IDE skal du gå til Mozzi github -siden https://sensorium.github.io/Mozzi/download/. Klik på den grønne "Code" -knap, og vælg Download ZIP.
  3. Installer Mozzi -biblioteket fra zip -filen. I Arduino IDE skal du gå til Skitse-> Inkluder bibliotek-> Tilføj. ZIP-bibliotek … Naviger til den zip-fil, du downloadede, for at tilføje den. Du skulle nu se Mozzi opført under sektionen Skitse-> Inkluder bibliotek.
  4. Download Mosquito I Arduino -koden. Du kan få dette fra mit github -websted https://github.com/analogsketchbook/mosquito_one. (Bemærk skemaerne er også tilgængelige der, hvis du har brug for dem til ledningsreference.
  5. Slut Arduino til computeren, og upload koden.

Trin 5: Roder rundt

Det er det. Du bør være i stand til at slutte dine højttalere til lydstikket og høre den søde lyd af arpeggiated syntese fra den ittybitty Nano! Hvis du ikke hører noget i starten, kan du prøve at centrere knapperne på alle gryderne for at sikre, at du får anstændige startværdier.

Her er hvad kontrollerne gør:

Gryder:

Rate: Dette styrer, hvor hurtigt sequencer afspiller. Ved at skrue ned for den afspilles diskrete noter i rækkefølge. Ved at skrue den op smører noterne sammen for at skabe helt nye bølgeformer.

Legato: Den anden gryde styrer legato eller seddelængde. Hvis du drejer det mere til venstre, produceres korte, sticatto -noter, mens det drejes til højre giver længere noter.

Pitch: Dette indstiller basishøjden for sekvensen. Pitchkontrollen indstiller MIDI -værdier, så det øger/formindsker tonehøjden i halvtone snarere end et kontinuerligt pitchskift.

Fase: Ved at dreje denne knap til højre introduceres en subtil faseeffekt. Teknisk set forårsager dette, at de to oscillatorer i Mosquito I bliver en smule detuneret, hvilket er årsag til fasningen. Det sporer dog ikke med tonehøjden, så faseeffekten er sandsynligvis mere mærkbar på noter med lavere tonehøjde.

Filter: Denne knap styrer afskæringsfrekvensen for et lavpasfilter. Hvis du drejer den til venstre, afbrydes de høje frekvenser, der producerer en mere dæmpet lyd, mens du drejer den til højre, giver en lysere lyd.

Knapper:

Myg har over tyve forskellige sekvenser, den kan afspille som standard. Med trykknapperne kan du vælge, hvilken sekvens der skal afspilles. Den ene knap flytter dig op på listen over sekvenser, og den anden går ned på listen.

Trin 6: Tilpasning

Tilpasning
Tilpasning

Jeg har tilføjet en masse standardsekvenser, for det meste forskellige skalaer, men du kan tilpasse koden ret let for at ændre sekvensen af noter, der afspilles, tilføje nye eller ændre antallet af noter i en sekvens. Nedenfor er detaljerne om, hvordan det gøres, hvis du vil tilpasse det.

Ændring af noter i eksisterende rækkefølge

Sekvenserne gemmes i en række arrays kaldet NOTER. Hver note gemmes som en MIDI -noteværdi, så hvis du vil ændre noter i en bestemt sekvens, skal du bare ændre MIDI -note -numrene for den sekvens. Standardopsætningen er at afspille 8 trin pr. Sekvens, så du kun kan have 8 MIDI -værdier i en sekvens (se nedenfor, hvis du vil have forskellige sekvenslængder).

Én ting at bemærke, pitchknappen tilføjer en noteforskydning til de MIDI -værdier, der er angivet i NOTES -arrayet. Når knappen er centreret, afspiller den de MIDI-toner, der er angivet i arrayet, men når du drejer pitch-knappen, tilføjer eller trækker den en halv tone til de toner, der spilles.

Tilføjelse af nye sekvenser

Du kan tilføje nye sekvenser til NOTES-arrayet ved blot at tilføje et nyt 8-note array i slutningen af listen. Hvis du dog gør dette, skal du også ændre værdien af variablen numSequences for at matche det nye antal sekvenser. F.eks. Har NOTES -arrayet som standard 21 sekvenser, så variablen numSequences er sat til 21. Hvis du tilføjer en ny sekvens, skal du ændre variablen numSequences til 22.

Du kan tilføje så mange nye sekvenser, som du vil.

Ændring af sekvenslængde

Hvis du vil ændre længden af dine sekvenser (hvis du vil sige en 4-trins eller 16-trins sekvens), kan du gøre det, men den eneste advarsel er, at alle sekvenser skal have samme længde. Du skal også indstille variablen numNotes, så den matcher længden af dine sekvenser.

Andre ændringer

Der er en række andre tilpasninger, der er mulige, f.eks. Skift af bølgeformstyper, filterindstillinger/værdier, som ligger uden for denne vejledning. At finde ud af Mozzi -kode kan være lidt udfordrende i starten, men jeg har forsøgt at dokumentere koden så meget som muligt for at vise, hvad de forskellige dele af koden gør.

Der er et par hoveddele af koden til Mozzi, der har ret specifikke anvendelser, og jeg har angivet dem nedenfor for at give dig en idé om, hvad de bruges til:

  • setup () - Hvis du har programmeret til Arduinos, før du kender denne funktion, og den stort set bruges det samme i Mozzi. Vi bruger det mest til at konfigurere standardindstillinger for oscillatorer, filtre osv.
  • updateControl () - Det er her, brorparten af Mozzi -koden gør sit arbejde. Det er her, vi læser pot- og knapværdier, kortlægger og omdanner disse værdier til feed til synthesizeren, og hvor sekventeringen udføres.
  • updateAudio () - Dette er det sidste output fra Mozzi -biblioteket. Typisk holdes koden her meget lille og slank, fordi denne funktion bruges af Mozzi til at maksimere alle de urcyklusser, den kan. Som du kan se i mygkoden, kan det være lidt kryptisk, men alt det, vi i bund og grund gør, kombinerer/multiplicerer vores forskellige bølgeformer og derefter bitshifter dem, så de passer til et bestemt talinterval. Det er bedst at holde denne funktion meget let (ikke serieopkald eller læsestifter) og lægge de fleste ting i funktionen controlUpdate () i stedet. Mozzi -dokumentationen beskriver dette mere grundigt.

Anbefalede: