Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
projets:teensy-4faders-midi:accueil [2015/02/19 15:22] resonance |
projets:teensy-4faders-midi:accueil [2015/04/05 16:18] resonance [Photos] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Teensy 4 faders midi ====== | ====== Teensy 4 faders midi ====== | ||
- | * Porteur du projet : ErikM | + | * Porteur du projet : ErikM + Eric (reso-nance) |
- | * Date : 10/12/2014 | + | * Date : 10/ |
* Licence : libre ! | * Licence : libre ! | ||
- | * Fichiers | + | * {{:projets: |
* [[http:// | * [[http:// | ||
===== Description ===== | ===== Description ===== | ||
- | Construction d'un contrôleur midi 4 faders à partir d'un UC33 défectueux et d'un microcontrolleur Teensy2. | ||
{{: | {{: | ||
+ | Construction d'un contrôleur midi 4 faders à partir d'un contrôleur défectueux et d'une Teensy2. | ||
===== Matériaux ===== | ===== Matériaux ===== | ||
- | Liste de matériel | + | Une teensy 2.0, 4 faders (10kΩ - provenant d'une UC33 - [[http:// |
===== Tutoriel ===== | ===== Tutoriel ===== | ||
- | Photos ou guide pas à pas | ||
- | ===== Photos ===== | ||
- | Autres photos, galerie, ... | ||
- | Les mots clés (tags) représentant votre travail | + | * Repérer les pattes utiles du slider : +/- et signal sur les 8 pattes du slider |
- | {{tag>[tag1 tag2 tag3]}} | + | * Souder les sliders sur notre [[projets: |
+ | * préparer les pièces du " | ||
+ | * monter le tout avec de la tige filetée. | ||
+ | * téléverser la configuration midi des ports dans la teensy | ||
+ | |||
+ | |||
+ | ==== le slider ==== | ||
+ | {{: | ||
+ | ==== le boitier ==== | ||
+ | {{: | ||
+ | ==== Le patch teensy ==== | ||
+ | Apres avoir installé Teensyduino, | ||
+ | <code c> | ||
+ | #include < | ||
+ | |||
+ | // the MIDI channel number to send messages | ||
+ | const int channel = 1; | ||
+ | |||
+ | // the MIDI continuous controller for each analog input | ||
+ | const int controllerA0 = 13; // 10 = pan position | ||
+ | const int controllerA1 = 12; // 11 = volume/ | ||
+ | const int controllerA2 = 11; // 91 = reverb level | ||
+ | const int controllerA3 = 10; // 93 = chorus level | ||
+ | |||
+ | void setup() { | ||
+ | } | ||
+ | |||
+ | // store previously sent values, to detect changes | ||
+ | int previousA0 = -1; | ||
+ | int previousA1 = -1; | ||
+ | int previousA2 = -1; | ||
+ | int previousA3 = -1; | ||
+ | |||
+ | elapsedMillis msec = 0; | ||
+ | |||
+ | void loop() { | ||
+ | // only check the analog inputs 50 times per second, | ||
+ | // to prevent a flood of MIDI messages | ||
+ | if (msec >= 20) { | ||
+ | msec = 0; | ||
+ | int n0 = analogRead(A0) / 8; | ||
+ | int n1 = analogRead(A1) / 8; | ||
+ | int n2 = analogRead(A2) / 8; | ||
+ | int n3 = analogRead(A3) / 8; | ||
+ | // only transmit MIDI messages if analog input changed | ||
+ | if (n0 != previousA0) { | ||
+ | usbMIDI.sendControlChange(controllerA0, | ||
+ | previousA0 = n0; | ||
+ | } | ||
+ | if (n1 != previousA1) { | ||
+ | usbMIDI.sendControlChange(controllerA1, | ||
+ | previousA1 = n1; | ||
+ | } | ||
+ | if (n2 != previousA2) { | ||
+ | usbMIDI.sendControlChange(controllerA2, | ||
+ | previousA2 = n2; | ||
+ | } | ||
+ | if (n3 != previousA3) { | ||
+ | usbMIDI.sendControlChange(controllerA3, | ||
+ | previousA3 = n3; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // MIDI Controllers should discard incoming MIDI messages. | ||
+ | // http:// | ||
+ | while (usbMIDI.read()) { | ||
+ | // ignore incoming messages | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Les faders sont configuré pour envoyer les données midi sur le chanel1, port 10, 11, 12 et 13. a modifier dans la partie haute du patch : **the MIDI continuous controller for each analog input** \\ | ||
+ | ==== Photos ==== | ||
+ | {{: | ||
+ | |||
+ | {{tag>[teensy fraiseuse controleur D.I.Y. midi]}} |