Turinys:

Arpeggiating sintezatorius (Mosquito I): 6 žingsniai
Arpeggiating sintezatorius (Mosquito I): 6 žingsniai

Video: Arpeggiating sintezatorius (Mosquito I): 6 žingsniai

Video: Arpeggiating sintezatorius (Mosquito I): 6 žingsniai
Video: Unison в синтезе. Супер пила - мать родна. 2024, Lapkritis
Anonim
Arpeggiating sintezatorius (Mosquito I)
Arpeggiating sintezatorius (Mosquito I)

„Mosquito I“yra mažas arpeggiatorinis sintezatorius, kuris naudoja „Arduino Nano“ir „Mozzi“garso sintezės biblioteką. Jis gali atkurti daugiau nei dvidešimt 8 žingsnių sekų, tačiau galite pridėti tiek pasirinktinių sekų, kiek norite. Tai gana paprasta nustatyti ir nereikalauja daug dalių.

Priedai:

  • „Arduino Nano“(arba bet kuris „Arduino“tikrai turėtų veikti)
  • 5 ea potenciometrai (10K linijinis)
  • 2 ea Mygtukai
  • 1 šviesos diodas
  • 1 ea rezistorius (330 omų)
  • 2 ea rezistorius (1K)
  • 1 ea rezistorius (2K)
  • 1 ea elektrolitinis kondensatorius (100 uF)
  • 1 ea keraminis kondensatorius (33 nF)
  • 1 ir stereo lizdas
  • Prijungimo viela
  • Bandomoji Lenta

1 žingsnis: „Arduino“nustatymas

„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas
„Arduino“nustatymas

Pirmiausia įdėkime „Nano“į duonos lentą ir nustatykime savo galią:

  1. Padėkite „Nano“ant duonos lentos. Įdėkite, kaip parodyta aukščiau esančiame paveikslėlyje. Jis turėtų apimti duonos lentos centrinį kanalą. Norite, kad jis būtų nukreiptas į vieną duonos lentos galą, o USB prievadas būtų nukreiptas į tą pusę. Tokiu būdu kabelis netrukdys, kai jį prijungsime. Jei naudojate didesnį „Arduino“, pvz., „Uno“ar „Mega“, žinoma, jo nemontuosite ant lentos.
  2. Prijunkite maitinimo bėgelius prie „Arduino“. Prijunkite vieną iš teigiamų (raudonų) savo duonos lentos bėgių prie „Arduino“5V kaiščio, naudodami laidus arba trumpiklius. Tada prijunkite vieną iš neigiamų (mėlynų) bėgelių prie vieno iš „Nano“GND kaiščių.
  3. Prijunkite maitinimo bėgelius vienas prie kito. Norėdami gauti energijos išilgai bėgių abiejose duonos lentos pusėse, prijunkite bėgius abiejose duonos lentos pusėse vienas prie kito, pravesdami laidą nuo teigiamo bėgelio iš vienos pusės iki teigiamo bėgio kitoje pusėje. Pakartokite tai su neigiamais bėgiais.

2 veiksmas: valdiklių pridėjimas

Valdiklių pridėjimas
Valdiklių pridėjimas

„Mosquito I“valdymui naudojami penki potenciometrai ir du mygtukai.

Potenciometrai:

  1. Padėkite puodus ant duonos lentos. Puodus pastatykite taip, kad kiekvienas smeigtukas būtų savo eilėje.
  2. Prijunkite puodus prie maitinimo bėgių. Prijunkite kairįjį kiekvieno puodo kaištį (jei žiūrite į rankenėlę) prie vieno iš neigiamų bėgių ant duonos lentos. Prijunkite kiekvieno puodo dešinį šoninį kaištį prie vieno iš teigiamų duonos lentos bėgelių.
  3. Prijunkite puodus prie „Arduino“. Prijunkite kiekvieno puodo centrinį kaištį prie vieno iš analoginių „Arduino“kaiščių. Pirmojo puodo vidurinis kaištis jungiasi prie A0, antrasis - prie A1 ir pan., Paskutinis puodas prijungtas prie A4.

Mygtukai:

  1. Padėkite mygtukus ant duonos lentos. Padėkite du mygtukus ant duonos lentos taip, kad jie apimtų centrinį kanalą.
  2. Sujunkite teigiamas puses. Vienoje duonos lentos pusėje prijunkite vieną iš mygtuko kaiščių prie teigiamo bėgelio.
  3. Sujunkite neigiamas puses. Padėkite vieną iš 1K rezistorių ant duonos lentos taip, kad vienas galas būtų prijungtas prie nenaudojamo mygtuko kaiščio, o kita rezistoriaus pusė - prie neigiamo bėgio.
  4. Prijunkite mygtuką prie „Arduino“. Eikite į laidą eilutėje, jungiančioje mygtuką su neigiamu bėgeliu prie D2 kaiščio. Atlikite tą patį su kitu mygtuku, bet prijunkite jį prie D3.

3 žingsnis: Išėjimų pridėjimas

Išėjimų pridėjimas
Išėjimų pridėjimas

Mes siunčiame garsą iš 9 kaiščio ir mirksi šviesos diodas pirmame kiekvienos sekos žingsnyje. Štai kaip nustatyti aparatūrą.

LED

  1. Padėkite šviesos diodą tuščioje duonos lentos vietoje.
  2. Prijunkite neigiamą (trumpą) šviesos diodo kojelę prie neigiamo bėgio.
  3. Įdėkite srovę ribojantį rezistorių. Prijunkite vieną 330 omų rezistoriaus pusę prie teigiamos (ilgos) šviesos diodo kojelės. Prijunkite kitą rezistoriaus pusę prie „Arduino“kaiščio D4.

Garso išvestis

  1. Įdėkite RC tinklą. Išvesties signalas iš „Arduino“ateina iš 9 kaiščio, tačiau signalas gali būti šiek tiek karštesnis, nei gali valdyti kai kurie garsiakalbiai. Kad priartėčiau prie linijos lygio, pridėjau RC tinklą (pagal „Notes & Volts“dizainą). Įdėkite 33nF ir 100uF kondensatorius kartu su 2K rezistoriumi, kaip parodyta paveikslėlyje/schemoje. Įsitikinkite, kad elektrolitinis 100uF kondensatorius yra prijungtas prie tinkamo poliškumo (teigiama/ilga koja eina į „Arduino“9 kaištį, o neigiama/trumpa - prijungta prie lizdo).
  2. Prijunkite neigiamą garso lizdo pusę prie žemės. Garso lizdo jungtys šiek tiek skirsis priklausomai nuo naudojamo tipo, tačiau paprastai jos veikia vienodai. Turime prijungti lizdo rankovę prie žemės. Kartais tai pažymima minuso simboliu arba pažymima kaip „rankovė“, „žiedas“arba „gnd“. Jei jūsų garso lizde nėra etikečių, gali tekti peržiūrėti duomenų lapą arba tiesiog atidžiai patikrinti lizdą ir išsiaiškinti, ar galite nustatyti, kuris kaištis yra prijungtas prie lizdo įvorės ar išorinio žiedo.
  3. Prijunkite teigiamą garso lizdo pusę prie neigiamos 100uF kondensatoriaus pusės. Mūsų garso signalas dabar teka iš „Arduino“9 kaiščio per RC tinklą ir sklinda iš neigiamos 100uF kondensatoriaus pusės. Mes prijungsime tai prie teigiamos mūsų garso lizdo pusės. Paprastai tai pažymima pliuso simboliu arba gali būti pažymėta kaip „patarimas“. Vėlgi, jei jis nėra paženklintas, gali tekti jį patikrinti, kad išsiaiškintumėte, kuris kaištis bus prijungtas prie lizdo galo. Be to, jei naudojate stereo lizdą, gali būti L ir R antgalių jungtis. Kadangi mes siunčiame monofoninį signalą, galite tiesiog prisijungti prie bet kurios iš galinių jungčių.

Svarbu: jei pastebėsite, kad garsas yra per tylus, 1 veiksme galite pašalinti RC tinklą ir tiesiogiai prisijungti prie garso iš „Arduino“9 kaiščio. Tai turėtų būti gerai, jei garsą jungiate prie kažko su išankstiniu stiprintuvu, pvz., Išoriniais kompiuterio garsiakalbiais, kuriuose turite garsumo rankenėlę, tačiau aš to nerekomenduočiau, pavyzdžiui, ausinėms, ausinėms ar tiesiogiai prijungti prie garsiakalbio. Jei nuspręsite panaikinti RC tinklą, siūlau iki galo įjungti garsiakalbių garsumą prieš įjungiant „Arduino“, o tada palaipsniui didinti garsumą, kad garsiakalbiai neišpūstų.

Kai viskas bus nustatyta, dar kartą patikrinkite, ar visos jungtys atrodo teisingos ir atitinka aukščiau esantį vaizdą ir schemą

4 veiksmas: įkelkite kodą

Dabar, kai visa aparatinė įranga yra paruošta, esame pasirengę spręsti programinės įrangos pusę:

  1. Paleiskite „Arduino IDE“. Kompiuteryje paleiskite „Arduino IDE“(jei jos neturite, galite ją atsisiųsti iš
  2. Atsisiųskite „Mozzi“biblioteką. „Mozzi“biblioteka leidžia mums naudoti „Arduino“kaip sintezatorių. Norėdami gauti šią biblioteką savo IDE, eikite į „Mozzi github“puslapį https://sensorium.github.io/Mozzi/download/. Spustelėkite žalią mygtuką „Kodas“ir pasirinkite Atsisiųsti ZIP.
  3. Įdiekite „Mozzi“biblioteką iš ZIP failo. „Arduino IDE“eikite į Sketch-> Include Library-> Add. ZIP Library… Eikite į atsisiųstą ZIP failą, kad jį pridėtumėte. Dabar turėtumėte pamatyti „Mozzi“, esantį skyriuje „Eskizas-> Įtraukti biblioteką“.
  4. Atsisiųskite „Mosquito I Arduino“kodą. Tai galite gauti iš mano „github“svetainės https://github.com/analogsketchbook/mosquito_one. (Atkreipkite dėmesį, kad schemos taip pat yra prieinamos, jei jums to reikia, norint gauti laidų nuorodą.
  5. Prijunkite „Arduino“prie kompiuterio ir įkelkite kodą.

5 žingsnis: susirašinėjimas

Viskas. Turėtumėte sugebėti prijungti savo garsiakalbius prie garso lizdo ir išgirsti malonų sulėtintos sintezės garsą iš šio „Nitty“! Jei iš pradžių nieko negirdite, pabandykite centruoti visų puodų rankenėles, kad įsitikintumėte, jog gaunate tinkamas pradines vertes.

Štai ką veikia valdikliai:

Puodai:

Įvertinimas: tai kontroliuoja, kaip greitai atkuriamas sekos atkūrimo įrenginys. Išjungus jį, nuosekliai groja atskiros natos. Pasukus aukštyn, natos tepamos kartu, sukuriant visiškai naujas bangos formas.

Legato: Antrasis puodas valdo legato arba natos ilgį. Pasukus daugiau į kairę, gaunamos trumpos, sticatto natos, o pasukus į dešinę - ilgesnės.

Žingsnis: tai nustato pagrindinį sekos žingsnį. Aikštelės valdiklis nustato MIDI reikšmes, todėl padidina/sumažina žingsnį pusiau, o ne ištisinį poslinkį.

Etapas: pasukus šią rankenėlę į dešinę, atsiranda subtilus etapinis efektas. Techniškai kalbant, dėl to du „Mosquito I“osciliatoriai yra šiek tiek susilpninti, o tai lemia laipsnišką etapą. Tačiau tai nėra stebėjimas naudojant aukštį, todėl fazavimo efektas tikriausiai labiau pastebimas mažesnio aukščio natose.

Filtras: ši rankenėlė valdo žemo dažnio filtro išjungimo dažnį. Pasukus į kairę, aukšti dažniai išjungiami, todėl sklinda labiau prislopintas garsas, o pasukus į dešinę - ryškesnis garsas.

Mygtukai:

„Mosquito“turi daugiau nei dvidešimt skirtingų sekų, kurias jis gali žaisti pagal numatytuosius nustatymus. Mygtukai leidžia pasirinkti, kuri seka grojama. Vienas mygtukas perkelia jus į sekų sąrašą aukštyn, o kitas - žemyn.

6 veiksmas: pritaikymas

Tinkinimas
Tinkinimas

Pridėjau daugybę numatytųjų sekų, dažniausiai skirtingų skalių, tačiau galite gana lengvai pritaikyti kodą, kad pakeistumėte grojamų natų seką, pridėtumėte naujų ar pakeistumėte natų skaičių. Žemiau pateikiama išsami informacija, kaip tai daroma, jei norite jį pritaikyti.

Pastabų keitimas esamoje seka

Sekos saugomos masyvų masyve, vadinamame PASTABOS. Kiekviena pastaba saugoma kaip MIDI užrašo reikšmė, taigi, jei norite keisti užrašus tam tikroje sekoje, tiesiog pakeiskite tos sekos MIDI užrašų numerius. Numatytoji sąranka yra atlikti 8 veiksmus kiekvienoje sekoje, kad galėtumėte turėti tik 8 MIDI reikšmes (žr. Toliau, jei norite turėti skirtingą sekų ilgį).

Reikėtų pažymėti vieną dalyką: žingsnio rankenėlė prideda pastabos poslinkį prie MIDI reikšmių, nurodytų masyve NOTES. Kai rankenėlė yra centre, ji groja masyve nurodytas MIDI natas, tačiau, pasukus aukščio rankenėlę, ji prideda ar atima pus toną grojamoms natoms.

Naujų sekų pridėjimas

Prie NOTES masyvo galite pridėti naujų sekų, sąrašo pabaigoje tiesiog pridėdami naują 8 natų masyvą. Tačiau jei tai padarysite, taip pat turėsite pakeisti kintamojo numSequence reikšmę, kad ji atitiktų naują sekų skaičių. Pavyzdžiui, masyvas NOTES pagal numatytuosius nustatymus turi 21 seką, todėl kintamasis numSequence yra 21. Jei pridėsite vieną naują seką, turėsite pakeisti kintamąjį numSequence į 22.

Galite pridėti tiek naujų sekų, kiek norite.

Sekos ilgio keitimas

Jei norite pakeisti savo sekų ilgį (jei norite pasakyti 4 ar 16 žingsnių seką), galite tai padaryti, tačiau vienintelis įspėjimas yra tas, kad visos sekos turi būti vienodo ilgio. Taip pat turėsite nustatyti kintamąjį numNotes, kad jis atitiktų jūsų sekų ilgį.

Kiti pakeitimai

Yra daugybė kitų pritaikymų, tokių kaip bangų formos perjungimas, filtrų nustatymai/vertės, kurie nepatenka į šios pamokos taikymo sritį. Iš pradžių išsiaiškinti „Mozzi“kodą gali būti šiek tiek sudėtinga, tačiau aš stengiausi kiek įmanoma dokumentuoti kodą, kad parodytų, ką daro įvairios kodo dalys.

Yra keletas pagrindinių „Mozzi“kodo dalių, kurios yra gana konkrečios paskirties, ir aš jas išvardijau žemiau, kad galėčiau suprasti ir suprasti, kam jos naudojamos:

  • sąranka () - jei programavote „Arduinos“anksčiau, nei susipažinote su šia funkcija ir ji beveik tokia pati naudojama „Mozzi“. Dažniausiai jį naudojame nustatydami numatytuosius generatorių, filtrų ir kt.
  • updateControl () - čia dirba liūto dalis „Mozzi“kodo. Čia mes skaitome puodų ir mygtukų reikšmes, priskiriame ir transformuojame šias vertes, kad jos būtų įtrauktos į sintezatorių, ir kur atliekama seka.
  • updateAudio () - tai galutinis „Mozzi“bibliotekos išėjimas. Paprastai kodas čia yra labai mažas ir liesas, nes šią funkciją Mozzi naudoja norėdamas maksimaliai išnaudoti visus laikrodžio ciklus. Kaip matote uodų kode, tai gali būti šiek tiek paslaptinga, bet mes iš esmės darome derindami/daugindami savo įvairias bangos formas ir tada jas perkeldami, kad tilptų į tam tikrą skaičių diapazoną. Geriausia, kad ši funkcija būtų labai lengva (ne serijiniai skambučiai ar skaitymo kaiščiai), o daugumą dalykų įdėkite į funkciją „controlUpdate ()“. „Mozzi“dokumentuose tai išsamiau aprašyta.

Rekomenduojamas: