MIDI-bestanden spelen op littleBits 'Arduino at Heart en Synth Bits - 💡 Fix My Ideas

MIDI-bestanden spelen op littleBits 'Arduino at Heart en Synth Bits

MIDI-bestanden spelen op littleBits 'Arduino at Heart en Synth Bits


Auteur: Ethan Holmes, 2019

Sinds ik een paar weken geleden met het RadioShack / LittleBits-evenement in New York speelde, raakte ik geobsedeerd door Manny Alvears LittleBits-muziekspeler van RadioShack-techspecs en had ik eindeloos veel plezier met Carol of the Bells tijdens de feestdagen. Ik pakte een paar van de littleBits-synth modules om het meer trippy te maken: het filter, de envelop en de vertraging.

Maar toch was één nummer niet genoeg voor mij, maar ik lees geen muziek, dus ik zal waarschijnlijk niet snel transcripties naar hertz transcriberen. Pas toen ik naar de Wikipedia-pagina voor Coventry Carol keek, merkte ik dat er een MIDI-bestand was dat ik kon downloaden. Er is een aantal geweldige software voor het ontleden van MIDI-bestandsindelingen. Ik pakte midicsv, die MIDI-bestanden converteert naar door komma's gescheiden waarden zoals deze:

2, 192, Note_on_c, 0, 62, 110 2, 192, Note_on_c, 0, 67, 110 2, 384, Note_on_c, 0, 62, 0 2, 384, Note_on_c, 0, 67, 0 2, 384, Note_on_c, 0, 62, 110 2, 384, Note_on_c, 0, 66, 110 2, 576, Note_on_c, 0, 62, 0 2, 576, Note_on_c, 0, 66, 0

Ik besefte dat ik de oplossing had waar ik naar op zoek was ... nou ja, bijna.

Dat is veel n-nep!

Ik bekeek het bestand in de uitstekende (en gratis) Aria Maestosa en besefte dat dit geen kwestie was van het vertalen van een melodie. Blijkbaar is muziek gemaakt van akkoorden! Dus ik dwaalde een beetje in de wildernis van mijn geest tot ik me realiseerde dat ik de akkoorden mogelijk in arpeggio's zou kunnen veranderen. Dawsons 'What is een Arpeggiator-artikel opende mijn gedachten. Ik kon geen Arpeggiator vinden die ik kon begrijpen, laat staan ​​in te pluggen in mijn opdrachtregelworkflow.

Maar voordat ik op dat punt kwam, had ik brute kracht uitgeprobeerd: ik gebruikte Aria Maestosa om het lied (aka delet notes randomly) in een monofonisch stuk te slachten en stelde een eenvoudig programma samen dat het CSV in de notities en duur kon converteren nodig door Manny's programma. Maar het klonk verkeerd (geen verrassing, toch?); Ik moest echt de andere noten spelen. Maar de manier waarop ik mijn programma ontwierp was niet geschikt om de akkoorden in afzonderlijke noten over elk tijdbereik te breken. Dus ik herschreef het om een ​​reeks noten op te slaan die op een gegeven moment zouden klinken:

192: 62, 67 384: 62, 66

Toen ik de gegevens op die manier bekeek, was het voor mij gemakkelijk om de MIDI-weergave in het door Manny's programma vereiste formaat om te zetten. Ik moest een conversie toepassen om een ​​MIDI-nootnummer in Hz te veranderen, en toen was het gemakkelijk om uitvoer als volgt te krijgen:

int melody [] = {392, 294, 392, ...} int noteDurations [] = {96, 96, ...}

Ik heb mijn conversiescript op Github geplaatst en het bevat een aangepaste versie van de schets van Manny. Laat de uitvoer van het script in die sketch vallen (vervangt de definities van melodie[], noteDurations [], en tellen). Hier is hoe ik het programma op mijn Mac draai, pipelining de output van midicsv naar het midi2littleBits_arp.pl script:

midicsv coventry_carol.mid | ./midi2littleBits_arp.pl 2

Het getal 2 geeft het nummer van de track aan binnen het CSV-bestand dat ik wil extraheren, dus zorg ervoor dat je de uitvoer van midicsv bekijkt voordat je de track kiest. In mijn ervaring is het nummer twee of hoger geweest.

Upload de gewijzigde sketch naar LittleBits Arduino at Heart bit, en speel de muziek! Je moet eerst de tutorial van Manny doorlopen voordat je deze gewijzigde versie probeert, alleen om zeker te weten dat het werkt.

De arpeggio's zijn echt grof, en ze rotzooien met de beat, maar het is nog steeds plezierig. Ik wed dat er nog meer mensen met muziekkennis zijn met ideeën om dit te verbeteren.



U Bent Wellicht Geïnteresseerd Zijn

Het Omega2-bord van $ 5 stroomt voorbij Stretch-doel, Packs Punch voor IoT Dev

Het Omega2-bord van $ 5 stroomt voorbij Stretch-doel, Packs Punch voor IoT Dev


7 Fatale fouten te vermijden op uw PCB-ontwerp

7 Fatale fouten te vermijden op uw PCB-ontwerp


Autodesk gaf elk Fab Lab toegang tot $ 25.000 aan ontwerpsoftware

Autodesk gaf elk Fab Lab toegang tot $ 25.000 aan ontwerpsoftware


Maker Pro News - Drone Ban bij SXSW, Open-Source 3DP Resin en meer

Maker Pro News - Drone Ban bij SXSW, Open-Source 3DP Resin en meer