« Rpimidi » : différence entre les versions

De TeriaHowto
Sauter à la navigation Sauter à la recherche
Aucun résumé des modifications
Ligne 70 : Ligne 70 :
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
/usr/src/ttymidi/ttymidi -s /dev/ttyAMA0 -b 38400  -v
/usr/src/ttymidi/ttymidi -s /dev/ttyAMA0 -b 38400  -v
Serial  0x90 Note on            000 042 127
Serial  0x80 Note off          000 042 000
Serial  0x90 Note on            000 042 127
</syntaxhighlight>
</syntaxhighlight>

Version du 28 novembre 2016 à 19:56

Objectif

Utiliser un Raspberry Pi comme enregistreur d'un piano numérique Yamaha via le protocole MIDI et les ports GPIO du Pi.

Plate-forme de test

  • Un Raspberry Pi avec la dernière Raspbian
  • Un Arduino pour simuler le piano Yamaha et envoyer des notes au format MIDI

Arduino

  • Insérer le code de test suivant dans l'Arduino
#include <MIDI.h>

// Simple tutorial on how to receive and send MIDI messages.
// Here, when receiving any message on channel 4, the Arduino
// will blink a led and play back a note for 1 second.

MIDI_CREATE_DEFAULT_INSTANCE();

#define LED 13   		    // LED pin on Arduino Uno

void setup()
{
    pinMode(LED, OUTPUT);
    MIDI.begin(4);          // Launch MIDI and listen to channel 4
}

void loop()
{
    digitalWrite(LED,HIGH);
    MIDI.sendNoteOn(42,127,1);  // Send a Note (pitch 42, velo 127 on channel 1)
    delay(1000);		        // Wait for a second
    MIDI.sendNoteOff(42,0,1);   // Stop the note
    digitalWrite(LED,LOW);
    delay(1000);
}

Pi

  • Editer /boot/config.txt, ajouter les lignes suivantes et redémarrer :
init_uart_clock=2441406
init_uart_baud=38400
dtparam=uart0_clkrate=3000000
  • Installer ttymidi :
sudo apt-get install libasound2-dev
cd /usr/src
wget http://www.varal.org/ttymidi/ttymidi.tar.gz
tar xf ttymidi.tar.gz
cd ttymidi
sed -i 's/-lasound/-lasound -lpthread/' Makefile
make
  • Tester (une fois que l'Arduino est bien connecté au Pi)
/usr/src/ttymidi/ttymidi -s /dev/ttyAMA0 -b 38400  -v
Serial  0x90 Note on            000 042 127
Serial  0x80 Note off           000 042 000
Serial  0x90 Note on            000 042 127