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 16:13] resonance [Teensy 4 faders midi] |
projets:teensy-4faders-midi:accueil [2015/04/23 09:53] resonance |
||
---|---|---|---|
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 ! | ||
- | * {{: | + | * {{: |
* [[http:// | * [[http:// | ||
===== Description ===== | ===== Description ===== | ||
- | Construction d'un contrôleur midi 4 faders à partir d'un contrôleur défectueux et d'une Teensy2. | ||
{{: | {{: | ||
+ | Construction d'un contrôleur midi 4 faders à partir d'un contrôleur défectueux et d'une Teensy2. | ||
===== Matériaux ===== | ===== Matériaux ===== | ||
Une teensy 2.0, 4 faders (10kΩ - provenant d'une UC33 - [[http:// | Une teensy 2.0, 4 faders (10kΩ - provenant d'une UC33 - [[http:// | ||
Ligne 18: | Ligne 17: | ||
* préparer les pièces du " | * préparer les pièces du " | ||
* monter le tout avec de la tige filetée. | * monter le tout avec de la tige filetée. | ||
- | * téléverser la configuration midi des ports de la teensy | + | * téléverser la configuration midi des ports dans la teensy |
==== le slider ==== | ==== le slider ==== | ||
Ligne 24: | Ligne 24: | ||
==== le boitier ==== | ==== le boitier ==== | ||
{{: | {{: | ||
- | ===== Photos | + | ==== 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 | + | {{tag> |