Stap 7: Arduino schets en softwaresynthesizer
In deze stap wij program van de Arduino en installeren van de softwaresynthesizer.
Programmeren van de Arduino Nano
Als u niet familiair met de Arduino platform check out th. Voor het windows-platform hebt u volgende stappen te volgen:
- Zorg ervoor dat je de Arduino IDE geïnstalleerd (extra bibliotheken zijn niet nodig) en het stuurprogramma verbinding maken met uw Arduino Nano.
- Download het bestand 'MidiRecorder_PianoFingering.ino' bestand/schets opgenomen in deze stap (scroll naar beneden).
- Open de map 'Documents\Arduino', maak er een nieuwe map en noem het MidiRecorder_PianoFingering' (als deze map is niet de plaats waar u uw schetsen u waarschijnlijk bent ervaren genoeg met de Arduino IDE te vinden van de juiste stappen zelf :-))
- Plaats het gedownloade bestand in deze nieuwe map.
- Sluit de Arduino op uw pc via USB.
- Open de Ino bestand in de Arduino IDE
- Zorg ervoor dat u het juiste ontwikkel bord (Arduino Nano 168 of 328) hebt geselecteerd en de juiste COM-poort hebt geselecteerd.
- Druk op de upload-upload de schets aan de Arduino Nano.
Uitleg van de schets
Ik probeerde te houden de schets zo eenvoudig mogelijk en besloot niet te gebruiken fluit Vingeren (in welke notities combinatie van knop zijn indrukt), maar de piano Vingeren (in welke elke knop pers is verschillende nota):
- Setup - In de setup we de Arduino vertellen dat de pinnen op de knoppen aangesloten zijn input pints. Als de duim-knop is ingedrukt (of geen knoppen zijn gekoppeld) instellen we de staat-variabele op demoMode.
- Lus - als staat demoMode is - is een melodie verzenden naar de computer te synthetiseren. De melodie is een tekenreeks (bijvoorbeeld "c4 d2 e4") in QBasic stijl (https://en.wikibooks.org/...#PLAY). De melodie wordt herhaald na 2 seconden.
- Lus - als staat niet demoMode is - We bepalen het volume van geluid ontvangen door de microfoon (= maximaal verschil tussen analoge signalen) en de boodschap van een volume-midi ('besturingselement wijzigen'). Ook controleren wij alle knoppen een op een tijd voor hun staat. Als nieuw ingedrukt wij sturen een midi-bericht van de noteon ('kanaal stem'). Als de duim is ook ingedrukt zullen de nota we sturen een scherpe. Als nieuw knopstatus wij een midi-bericht van de noteoff sturen.
Zie voor meer info over de werking van midi, dit uitstekende instructable:.
Instellen van de softwaresynthesizer
Software-synthesizers (vst) komen vaak als plugins met bestand extensie dll. Deze plugins nodig een host uit te voeren. Een leuk gratis vst-host is savihost. Ik kies de versie van de VST2, met inbegrip van toetsenbord. U kunt het downloaden van http://www.hermannseib.com/english/savihost.htm.
U kunt bijna alle vst-plugins die je leuk vindt, omdat we alleen de meest elementaire midi-berichten verzenden naar de synthesizer (noteon/noteoff- en volumegegevens berichten wijzigen). Enkele suggesties op plugins (allemaal gratis te gebruiken):
- Lxox_Flute - http://www.vst4free.com/free_vst.php?id=188
- Kontakt 5 - http://www.native-instruments.com/en/specials/free...
- Synth1 - https://www.kvraudio.com/product/synth1-by-ichiro...
- TAL_Elek7ro - https://tal-software.com/products/tal-elek7ro
- TX16Wx. http://www.tx16wx.com/
Ik gebruik Lxox_Flute vanwege zijn eenvoud en mooie fluit simulatie. Elek7ro is ook niet te hard te begrijpen en u kunt gebruiken bij het maken van andere instrumenten. Synth1 heeft een mooie set van vooraf gedefinieerde blaasinstrumenten en laat u remap uw adem volume voor een ander effect. TX16Wx kunt u uw eigen Voorbeeldgeluiden (wav-bestanden) gebruiken. Kontakt 5 heeft een mooie solide gevoel aan het.
Voor het uitvoeren van een plugin die u wilt wijzigen (of kopieer) savihost.exe aan de bestandsnaam van de vst-plugin dll-bestand. Na het uitvoeren van de nieuwe exe, zorg ervoor om te activeren van midi in menu 'apparaten>'Midi' en de 'Input poort 1' ingesteld op uw midi2USB-apparaat (zie eerste foto).
Opmerking: Ik heb gemerkt dat de Lxox_Flute-plugin maakt geen geluid op lage octaven. De Arduino 'Oktober' variabele is ingesteld op oktaaf 5 die op mijn setup werkt. Als dit niet op je setup (onwaarschijnlijk werkt) kunt u de Arduino 'oktober' variabele of transformeren het octaaf via VSTHost menu 'PlugIn' > submenu 'transformatie' > 'kanaal' ingesteld op '1' > 'omzetting' aan '+ 1 octaaf' instellen (Zie tweede foto).