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 | ||
projets:teensymiditouchcontroller:accueil [2015/04/01 10:18] resonance |
projets:teensymiditouchcontroller:accueil [2015/04/23 13:00] (Version actuelle) resonance [Touches tactiles en Midi] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
+ | |||
+ | {{: | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | ===== Description | ||
* Porteur du projet : [[user: | * Porteur du projet : [[user: | ||
* Date : 22/12/2014 | * Date : 22/12/2014 | ||
* Licence : libre ! | * Licence : libre ! | ||
* Contexte : installation utilisant le midi comme interface de commande | * Contexte : installation utilisant le midi comme interface de commande | ||
- | * Fichiers : ... | + | * Fichiers : {{: |
* Lien : [[http:// | * Lien : [[http:// | ||
- | ===== Description ===== | + | |
- | {{youtube> | + | {{ youtube> |
- | {{: | + | |
Hommage aux pianistes anonymes qui improvisaient les bandes sons des films muets, instrument intelligent, | Hommage aux pianistes anonymes qui improvisaient les bandes sons des films muets, instrument intelligent, | ||
Ligne 18: | Ligne 25: | ||
===== Matériaux ===== | ===== Matériaux ===== | ||
- | - une carte Teensy 3.1\\ | + | * une carte Teensy 3.1\\ |
- | - un [[https:// | + | * un [[https:// |
- | - cable usb micro-B: [[http:// | + | * cable usb micro-B: [[http:// |
- | - OPTIONNEL (mais très fortement conseillé): | + | * //OPTIONNEL// (mais très fortement conseillé): |
- | - fil de montage\\ | + | * fil de montage\\ |
- | - pièces de cuivre, ou bandes d' | + | * pièces de cuivre, ou bandes d' |
- | - potentiomètres (10K)\\ | + | * potentiomètres (10K)\\ |
- | - interrupteurs momentanés ou switches\\ | + | * interrupteurs momentanés ou switches\\ |
- | - 12 résistances (par controleur construit) | + | * 12 résistances (par controleur construit) |
===== Tutoriel ===== | ===== Tutoriel ===== | ||
Ligne 50: | Ligne 57: | ||
- 8 entrées analogiques qui lisent des potentiomètres et envoient des Control Change (CC) MIDI\\ | - 8 entrées analogiques qui lisent des potentiomètres et envoient des Control Change (CC) MIDI\\ | ||
- 4 entrées digitales qui envoient des Control Change\\ | - 4 entrées digitales qui envoient des Control Change\\ | ||
- | |||
- | |||
**1- DESIGN D'UN PCB:** | **1- DESIGN D'UN PCB:** | ||
- | |||
en utilisant Fritzing ( [[http:// | en utilisant Fritzing ( [[http:// | ||
Ligne 62: | Ligne 66: | ||
(Le design ne respecte surement pas toutes les règles de design d'un circuit imprimé et est surement loin d' | (Le design ne respecte surement pas toutes les règles de design d'un circuit imprimé et est surement loin d' | ||
- | Le circuit vu dans Fritzing: | + | Le circuit vu dans Fritzing:\\ |
- | + | {{: | |
- | {{: | + | |
- | + | ||
- | Le circuit une fois reçu, et monté: | + | |
- | + | ||
- | {{: | + | |
- | **2- MONTAGE DES COMPOSANTS SUR LA CARTE:** | + | Le circuit une fois reçu, et monté:\\ |
+ | {{: | ||
+ | **2- MONTAGE DES COMPOSANTS SUR LA CARTE:**\\ | ||
Commencer par les résistances smd de 10K: poser un peu de soudure sur un des plots carrés qui leurs sont destinés, placer la résistance et souder un de ses cotés sur le plot en appuyant doucement dessus, lorsqu' | Commencer par les résistances smd de 10K: poser un peu de soudure sur un des plots carrés qui leurs sont destinés, placer la résistance et souder un de ses cotés sur le plot en appuyant doucement dessus, lorsqu' | ||
Ligne 77: | Ligne 78: | ||
- | Voilà la carte montée: | + | Voilà la carte montée:\\ |
sur la photo ci-dessous, les 12 entrées pour les touches tactiles sont en haut. Sur la droite se trouvent les 4 entrées digitales, et en bas les borniers vers les 8 entrées analogiques. Pour les entrées digitales et analogiques: | sur la photo ci-dessous, les 12 entrées pour les touches tactiles sont en haut. Sur la droite se trouvent les 4 entrées digitales, et en bas les borniers vers les 8 entrées analogiques. Pour les entrées digitales et analogiques: | ||
Ligne 99: | Ligne 99: | ||
v1.0, December 17 2013 | v1.0, December 17 2013 | ||
by Yann Seznec www.yannseznec.com | by Yann Seznec www.yannseznec.com | ||
- | |||
modified by Matthieu Pernaud for teensy 3.1 and for different purposes: | modified by Matthieu Pernaud for teensy 3.1 and for different purposes: | ||
Ligne 115: | Ligne 114: | ||
- no system for sending touch pin as CC | - no system for sending touch pin as CC | ||
- the CC assignments are sort of random, probably should have another array for them | - the CC assignments are sort of random, probably should have another array for them | ||
- | |||
*/ | */ | ||
/* TOUCHPINS - send midi notes */ | /* TOUCHPINS - send midi notes */ | ||
- | |||
int const numTouchPins = 12; // number of pins to use as touchpins, sending note values | int const numTouchPins = 12; // number of pins to use as touchpins, sending note values | ||
int touch[numTouchPins]; | int touch[numTouchPins]; | ||
Ligne 131: | Ligne 128: | ||
/*ANALOG PINS*/ | /*ANALOG PINS*/ | ||
- | |||
int const numPins = 8; // number of analog inputs | int const numPins = 8; // number of analog inputs | ||
int currentVal[numPins]; | int currentVal[numPins]; | ||
Ligne 139: | Ligne 135: | ||
}; | }; | ||
int analogstartcc = 50; // MIDI CC number to start from. | int analogstartcc = 50; // MIDI CC number to start from. | ||
- | |||
- | |||
int const numDigPins = 0; // number of digital pins to send note values | int const numDigPins = 0; // number of digital pins to send note values | ||
Ligne 150: | Ligne 144: | ||
48, | 48, | ||
int digInput[numDigPins]; | int digInput[numDigPins]; | ||
- | |||
int const numDigPinsCC = 4; // number of digital pins to send CC | int const numDigPinsCC = 4; // number of digital pins to send CC | ||
Ligne 160: | Ligne 153: | ||
int digInputcc[numDigPinsCC]; | int digInputcc[numDigPinsCC]; | ||
- | |||
- | |||
- | |||
- | |||
// the MIDI channel number to send messages on | // the MIDI channel number to send messages on | ||
- | |||
const int channel = 1; | const int channel = 1; | ||
- | |||
- | |||
void setup() { | void setup() { | ||
- | |||
pinMode(10, INPUT_PULLUP); | pinMode(10, INPUT_PULLUP); | ||
pinMode(11, INPUT_PULLUP); | pinMode(11, INPUT_PULLUP); | ||
pinMode(12, INPUT_PULLUP); | pinMode(12, INPUT_PULLUP); | ||
pinMode(24, INPUT_PULLUP); | pinMode(24, INPUT_PULLUP); | ||
- | |||
Serial.begin(38400); | Serial.begin(38400); | ||
- | |||
} | } | ||
void loop() { | void loop() { | ||
- | | ||
- | | ||
// touch sending notes | // touch sending notes | ||
- | | ||
for (int i = 0; i < numTouchPins; | for (int i = 0; i < numTouchPins; | ||
touch[i] = touchRead(touchpin[i]); | touch[i] = touchRead(touchpin[i]); | ||
Ligne 213: | Ligne 193: | ||
} | } | ||
- | | ||
*/ | */ | ||
- | |||
- | |||
// digital pins sending notes | // digital pins sending notes | ||
// for (int i = 0; i < numDigPins; i++) { | // for (int i = 0; i < numDigPins; i++) { | ||
Ligne 230: | Ligne 207: | ||
//// digital pins sending CC | //// digital pins sending CC | ||
- | |||
for (int i = 0; i < numDigPinsCC; | for (int i = 0; i < numDigPinsCC; | ||
if (digitalRead(digitalpincc[i]) == 1 && currentDigcc[i] == 0) { | if (digitalRead(digitalpincc[i]) == 1 && currentDigcc[i] == 0) { | ||
Ligne 243: | Ligne 219: | ||
//// analog pins | //// analog pins | ||
- | |||
for (int i = 0; i < numPins; i++) { | for (int i = 0; i < numPins; i++) { | ||
- | |||
newVal[i] = analogRead(analogPins[i]); | newVal[i] = analogRead(analogPins[i]); | ||
- | | ||
if (abs(newVal[i] - currentVal[i])> | if (abs(newVal[i] - currentVal[i])> | ||
{ | { | ||
Ligne 253: | Ligne 226: | ||
currentVal[i] = newVal[i]; | currentVal[i] = newVal[i]; | ||
} | } | ||
- | | ||
- | |||
} | } | ||
| | ||
Ligne 261: | Ligne 232: | ||
delay(5); | delay(5); | ||
} | } | ||
- | |||
} | } | ||
- | |||
- | |||
</ | </ | ||
Ligne 287: | Ligne 255: | ||
voilà un patch Pure Data pour tester la carte (avec le code ci dessus uploadé): | voilà un patch Pure Data pour tester la carte (avec le code ci dessus uploadé): | ||
- | {{: | + | * {{: |
+ | ===== Photos ===== | ||
+ | {{: | ||
- | quelques photos de notre réalisation: | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
- | |||
- | {{: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Photos ===== | ||
- | {{tag> |