Midi-harmooni

Opiskelukaverini, multitalentti Eero Grundström otti yhteyttä ja kysyi olisiko mahdollista rakentaa matkaharmoonin bassokoskettimista lähtevä jänniteohjaus. Ennenkuin edes tarkalleen tajusin mitä tuo tarkoitti ilmoitin että tottakai kiinnostaa ja aloin keittämään kahvia.

Matkaharmooni

Muutama asia oli jo selvillä. Ensinnäkin tarve oli vain alimmalle 17 koskettimelle. Toiseksi Eero halusi systeemistä mielellään läppärittömän (läppärin avulla olisi ollut ehkä mahdollista tunnistaa sävelkorkeudet mikrofonisignaalista ja tulkita ne midiksi). Kolmanneksi tilaa soittimen sisällä (kts. kuva alempana) oli aika vähän.

Ensimmäiseksi kannattaa toki tarkistaa onko joku jo keksinyt pyörän. Pianon tyyppisiin kosketinsoittimiin oli tarjolla muutamakin eri ratkaisu mutta ne ovat varsin hintavia eikä toisaalta ollut mitään tietoa niiden soveltumisesta tällaiseen projektiin. Luultavasti myös koskettimien leveys ja tuo tilaongelma olisi ollut esteenä. Jouduin siis kehittämään oman systeemin. Oh joy.

Ensimmäiseksi kokeilin painesensoreita. Nämä tuntuivat vaativan aivan liikaa voimaa toimiakseen luotettavasti joten ne hylättiin saman tien. Mekaaniset kytkimet diskattiin koska ne luultavasti vaikuttaisivat liikaa soittotuntumaan. Seuraavaksi muistui mieleen hanureissa käytettävä midityssysteemi joka toimii magneettikytkimillä. Pari magneettikytkintä siis tilaukseen ja testit käyntiin. Magneettiteippi ei antanut tarpeeksi vetovoimaa mutta askarteluliikkestä löytyneet pikkumagneetit toimivat täydellisesti. Voitiinkin siirtyä projektissa eteenpäin.

Tarve siis oli cv-signaalille. Pyörittelin hetken Arduinon käyttämistä mutta siitä tarpeeksi tarkan cv-signaalin saaminen vaikutti liian hankalalta projektilta. Tässä oli haasteita jo muutenkin.

Koska Eerolla oli modulaarissaan valmiina midi-cv-muunnin niin päädyimme lopulta Raspberry Pi-minitietokoneeseen joka tulkitsisi magneettikytkimet midi-dataksi joka muutetaan sitten tuolla modulaarin muuntimella cv-signaaliksi. Tämä mahdollisti samalla myös systeemin käytön minkä tahansa usb-midi-laitteen kanssa.

<nörttiosuus alkaa> Raspberry Pi:ssä (käytin 3 B+ mallia) löytyi suoraan piirilevyltä 26 GPIO-pinniä noiden magneettikytkimien lukemiseen. Ja suureksi onneksi vanhaan tuttuu Pure Data-ohjelmointikieleen löytyi WiringPi-laajennus jolla noita pinnejä pystyi tarkkailemaan. Python-opiskelun pystyi siis siirtämään vielä tulevaisuuteen. RasPi-työvaiheessa pääsi toki muutama voimasana kun OSX-maailmaan tottunut äänisuunnittelija tutustui Linux-maailman autostartteihin ja midiasetuksiin. Myös GPIO-pinnien hämmentävä “lepotila”-logiikka aiheutti pientä päänvaivaa. Mutta maaliin päästiin. Pure Datassa koodasin myös lisäpalikan joka valitsee Eeron toiveiden mukaan matalimman soitetun nuotin. Eli jos Eero soittaa harmoonilla esim. C-vitossoinnun (C-G) lähetetään midillä ulos pelkkä C. </nörttiosuus loppuu>

Loppu projektista kului millimetrejä mittaillen, piirilevylle komponentteja mallaillen ja kolvi käryten. Valmis systeemi toimii “piuhat kiinni ja menoksi”-pohjalta eikä tarvitse mitään näyttöjä tai näppäimistöjä. Kaikki softat käynnistyy autostartilla noin 20 sekunnissa. RasPin koteloon asennettu ledi kertoo milloin systeemi on toimintavalmis ja vilkuttelee myös aina kun nuo magneettikytkimet aktivoituu.

midiharmooni

Melkein valmis midiharmooni. Löydä kuvasta tulitikku.

Encorena Eeron systeemissä ilmeni ongelma jossa tuo usb-yhteys meni “nukkumaan” jos midiä ei liikkunut pariin sekuntiin. Syyksi paljastui linux-asennuksen usb-virransäästö joka pysyi poissa kun lähetin usb-porttiin soiton ohessa turhaa cc-dataa puolen sekunnin välein. Ilmeisesti oma testilaitteeni (Arturia MicroBrute) lähetteli usb:llä jotain joka riitti pitämään tuon portin päällä RasPin päässä. Kaikenlaista sitä. Normikeikka.

Mi.Mu-hanskat

Pekka Saarikorpi otti 2019 yhteyttä ja aiheena oli jälleen Ableton Liven ohjaaminen samalla liikkuen ja tanssien. Olimme painineet aiheen kimpussa jo 2017, mutta nyt oli tarve ohjata tietokonetta täysin langattomasti.

Oma ehdotukseni oli käyttää TouchOsc-appia. TouchOsc on mobiililaitteissa pyörivä ohjausympäristö jonka käyttöliittymä on käyttäjän määriteltävissä.

TouchOsc-kokeilut olivat sinällään ihan lupaavia, mutta Pekka oli samoihin aikoihin kuullut myös Imogen Heapin kehittämistä Mi.Mu-hanskoista jotka mahdollistaisivat monipuolisemman midi-ohjauksen ja myös vapaamman liikkumisen. Näihin lopulta myös päädyttiin.

Pekka hoiti Mi.Mu-hanskojen ohjelmoinnin joten minun ratkaistavaksi jäi pari pähkinää Ableton Liven päässä. Hanskat toimivat sensoreilla jotka mittaavat sormien asentoja (näillä ohjelmistolle voidaan opettaa esim. “nyrkki” ja “avokämmen”-tyyppisiä komentoja) sekä mm. kiihtyvyyttä ja käsien asentoja eri akseleilla. Järjestelmä ei ymmärrettävistä syistä voi olla yhtä absoluuttisen tarkka kuin perinteinen midi-ohjain joten välillä nuotteja jäi soittamatta ja välillä niitä tuli liikaa. Nyt lisää kahvia.

Ajosessioon päätyi lopulta kolme “turvaverkkoa”. Ensimmäiseksi rakensin Max for Live-palikan joka mahdollisti Liven master scenen laukomisen taaksepäin. Ohjelmasta löytyy midi-ohjattavat napit laukaistavan scenen hakemiseen ja laukaisemiseen siirtyen samalla eteenpäin. Tämä Max-palikka vastaanottaa taaksepäin-komennon hanskoilta ja lähettää sen jälkeen IAC-väylää pitkin Livelle käskyn siirtää laukaistavaa Scene-paikkaa 2 askelta taakse (tai ylöspäin) ja sen jälkeen vielä käskyn laukaista tuo scene. Lopputuloksena on Scene-laukaisu “taaksepäin” ohjelmoinnissa. Samalla opin että näitä käskyjä ei saa lähettää liian nopeasti, 150ms välein lähetetyt komennot tuntuivat toimivan luotettavasti.

Tässä välissä on hyvä valottaa tuota IAC-väylää. Tuolla väylällä voi ohjata OSX-laitteissa midi-dataa eri ohjelmien välillä. Vähemmän käytetty kikka on ohjata tuon kautta midi-dataa takaisin samaan ohjelmaan. Tällöin voidaan Liven kanavatasolla (missä nuo Max for live-palikat operoivat) tehtyä mididataa ajaa takaisin Liven midi-inputteihin ja käyttää sitä Liven Midi Remote-puolen ohjaukseen, kuten esimerkiksi juuri noihin Scene Launch-käskyihin. Windows-puolella on myös pari vaihtoehtoa vastaavaan reitittelyyn.

Toinen “turvaverkko” oli midiraita jossa oli ohjelmoituna nuotteja jotka – jälleen IAC-väylän kautta – laukaisisivat Scene Launch-komennon automaattisesti tietyn ajan kuluttua. Tällöin ääniohjelmointi rullaisi eteenpäin (tosin hiukan myöhässä) vaikka yhteys Mi.Mu-hanskojen kanssa katoaisi kokonaan.

Viimeiseksi lisäsimme vielä kolmannen pikku Max-apulaisen joka rajoitti eteenpäin/taaksepäin-komentojen virtaa. Jos Live sai esimerkiksi käskyn laukaista ohjelmointi eteenpäin jätetään sen jälkeen kahden sekunnin ajan sama komento huomioimatta. Tämä helpottikin huomattavasti tuplakomentojen kanssa.

Bonuspähkinöinä oli vielä Mi.Mu-hanskojen langattoman yhteyden ihmettelyä. Hanskat toimivat WLAN-yhteydellä joten ruuhkaisia WLAN-kanavia pitää väistellä ettei kommunikaatiossa ole viiveitä. Onneksi ohjaussoftassa on sisäänrakennettu WLAN-skanneri. Wifi Explorer Lite vaikuttaa hyvältä ilmaiselta vaihtoehdolta.

Ps. Kiitokset Aku Raskille tuon IAC-väyläkikan neuvomisesta.

Wusheng Companyn “Trog” (Musiikki ja äänisuunnittelu: Pekka Saarikorpi) Kanneltalossa vielä 25.1., 30.1. ja 31.1.