1. A breve aggiorneremo la piattaforma di Reboot per risolvere alcuni problemi con i plug-in, quindi chiediamo ancora un po' di pazienza, Lo staff di Reboot

Guida Riprodurre MIDI con Arduino

Discussione in 'Arduino tutorial' iniziata da nastys, 24 Apr 2015.

  1. nastys

    nastys Staff スタッフ Staff

    Iscritto:
    23 Gen 2015
    Messaggi:
    652
    Like ricevuti:
    210
    Desideravo riprodurre file MIDI con il mio clone di Arduino, ed effettivamente un modo sono riuscito a trovarlo.

    Questa guida è stata testata su un clone di Arduino UNO e non posso garantirne il corretto funzionamento con altre board. Né io Né Reboot.ms ci assumiamo alcuna responsabilità in caso di danneggiamenti.

    Requisiti

    • Arduino MEGA o compatibile, oppure Arduino NANO o compatibile (io ho usato un clone di Arduino UNO)
    • Arduino IDE
    • Altoparlante
    • Resistenze da 100 ohm (anche di più o di meno, a seconda dell'altoparlante, ma calcolate bene, altrimenti brucerete Arduino!), più ne avete meglio è (massimo 6 per MEGA/UNO, 3 per NANO; io ne ho usata solo 1. Se ne avete più di una dovete collegarle o saldarle tra di loro in questo modo)
    • Un file MIDI (.mid, .midi o .kar; ma dovrete rinominarlo in .mid)
    • La libreria Playtune, la cui ultima versione è disponibile su GitHub: https://github.com/LenShustek/arduino-playtune
    • miditones, sempre su GitHub: https://github.com/LenShustek/miditones
    Installazione di Playtune

    Scaricate Playtune come file ZIP (cliccando su Download ZIP su GitHub) ed estraetelo nella cartella di Arduino IDE, dentro Libraries.
    Adesso, in un'altra scheda aprite la cartella hardware/arduino/avr/cores/arduino e copiate il file Arduino.h. Tornate alla scheda di Playtune, create una cartella avr e incollate. Rinominate il nuovo file in arduino.h. Copiate lo stesso file anche nella cartella di Playtune.
    Schermata del 2015-04-24 15:15:28.png

    Creazione dello sketch

    Per ulteriori informazioni, leggete il README di Playtune.
    Il codice di base è:
    Codice:
    #include <playtune.h>
    
    // MIDI qui
    
    Playtune pt;
    
    void setup() {
      pt.tune_initchan(9);
    }
    
    void loop() {
      pt.tune_playscore ((byte*)score); /* start playing */
      while (pt.tune_playing) ;   /* wait here until playing stops */
      pt.tune_delay(1000);        /* wait a second */
    }
    A differenza dei file di esempio, ho usato il casting a byte* in pt.tune_playscore, perché altrimenti per qualche motivo non riesce a compilare.

    Sostituite // MIDI qui con il codice che verrà generato più avanti.
    L'altoparlante in questo caso è stato collegato al pin 9. Se desiderate usare un altro pin, sostituite il numero in pt.tune_initchan (dentro void setup).
    Se volete usare più pin per una migliore qualità, aggiungete altri pt.tune_initchan specificando il numero del pin da utilizzare.

    Conversione del file MIDI

    Scaricate miditones come file ZIP (cliccando su Download ZIP su GitHub), estraetelo e aprite un terminale (click destro > Apri nel terminale su Ubuntu 15.04+; tenete premuto Maiusc e fate click destro > Apri nel prompt dei comandi su Windows).
    Su GNU/Linux, dovrete compilarlo con il seguente comando:
    Codice:
    gcc miditones.c -o miditones | gcc miditones_scroll.c -o miditones_scroll
    Schermata del 2015-04-24 14:37:29.png
    Adesso copiate il file .mid sulla cartella di miditones e nel terminale inviate il seguente comando:
    Codice:
    ./miditones <nomefile>
    (sostituendo <nomefile> con il nome del file SENZA l'estensione .mid)
    Verrà generato un file .c contenente il brano appena convertito.
    Aprite il file e copiate tutto. Tornate sullo sketch e incollate al posto di // MIDI qui. Adesso potete caricare lo sketch.
    Collegate una resistenza al pin (digitale!) e l'altoparlante alla resistenza e alla massa (GND).
    Se usate più pin, collegate le resistenze in questo modo.
     
    #1
    Ultima modifica: 24 Apr 2015
    A StandardBus piace questo elemento.
Sto caricando...

Condividi questa Pagina