Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

projets:p6:accueil

Ceci est une ancienne révision du document !


P6

  • Porteur du projet : Jérôme (resonance)
  • Date : 02/2016 - …
  • Licence : libre !
  • Contexte : Projet de contrôleur MIDI
  • Fichiers : …

Description

Contrôleur MIDI réalisé avec des capteurs piézo-électriques.

Schéma électronique

Moulage silicone

Code OpenScad

Boîtier

Code Arduino

/*
 * P6 project
 * Teensy MIDI with 6 analog sensors
 *
 */
 
boolean DEBUG = false;
 
// Analog sensors
int anaPins[] = {21,20,19,18,17,16}; // analog pins
const int anaNb = 6;
int anaValues[anaNb]; // current analog values
int anaLastValues[anaNb]; // previous analog values
 
// MIDI
const int channel = 1;
int anaCtl[] = {1,2,3,4,5,6}; // midi mapping
 
// Sampling rate
const long interval = 30;
unsigned long currentMillis;
unsigned long previousMillis = 0;
 
void setup() { 
  if (DEBUG) Serial.begin(9600);
} 
 
void loop() {
  currentMillis = millis();
  if(currentMillis - previousMillis >= interval) {
      previousMillis = currentMillis;
      for (int i = 0; i < anaNb; i++) {
        anaValues[i] = analogRead(anaPins[i]) / 4 ;
        if (anaValues[i] != anaLastValues[i]) {
           usbMIDI.sendControlChange(anaCtl[i], anaValues[i], channel);
           if (DEBUG)Serial.print(anaValues[i]);
           if (DEBUG)Serial.print("\t");
           anaLastValues[i] = anaValues[i];
        }
 
      }
      if (DEBUG)Serial.println();
   }
 
  // MIDI Controllers should discard incoming MIDI messages.
  while (usbMIDI.read()) {
  }
}
/home/resonancg/www/wiki/data/attic/projets/p6/accueil.1463130039.txt.gz · Dernière modification: 2016/05/13 11:00 de resonance