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:brutbox:accueil [2016/04/04 11:14] resonance [Développement] |
projets:brutbox:accueil [2017/04/10 17:51] resonance [Description] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== BrutBox ====== | ====== BrutBox ====== | ||
- | | + | |
- | * Date : 2014-2016 | + | |
+ | * Partenaires : Espace Gantner - LFO Fablab | ||
+ | * Date : 2014 - en cours | ||
* Licence : GNU/GPLv3 | * Licence : GNU/GPLv3 | ||
- | * Contexte : Outil musical | + | * Contexte : Outil de création |
- | * Fichiers : | + | * Lien : http:// |
- | * Logiciel : Brutbox-201604 | + | |
- | * Matériel : boites, circuit | + | |
- | * Lien : http:// | + | |
+ | {{tag> | ||
===== Description ===== | ===== Description ===== | ||
- | Suite à de nombreuses recherches disponibles ici : [[projets:malinette-brutbox:accueil|Malinette | + | {{: |
- | Il est temps de figer une Brutbox v1.0 qui sera basée sur une carte Teensy 2.0 et 8 capteurs simples. | + | |
- | ===== Matériaux ===== | + | La BrutBox est un outil pour favoriser la pratique musicale collective. Elle permet |
- | * [[https://www.pjrc.com/store/teensy.html|Teensy 2.0 ]] | + | |
- | * Cp 3mm | + | |
- | * Cuivre pour pcb | + | |
- | * Capteurs (distance, ldr, potentiometre | + | |
- | * Prise USB A et B (8 de chaques) | + | |
- | * Visserie | + | |
- | ===== Fichiers et codes sources ===== | + | |
- | ==== Carte teensy et firmware ==== | + | |
- | Code Teensy : \\ | + | |
- | ++++ teensy-8-in.ino | | + | |
- | <code cpp> | + | |
- | // the MIDI channel number to send messages | + | |
- | const int channel = 1; | + | |
- | + | ||
- | // the MIDI continuous controller for each analog input | + | |
- | const int controllerA0 = 1; // | + | |
- | const int controllerA1 = 2; // | + | |
- | const int controllerA2 = 3; // | + | |
- | const int controllerA3 = 4; // | + | |
- | const int controllerA4 = 5; // | + | |
- | const int controllerA5 = 6; // | + | |
- | const int controllerA6 = 7; // | + | |
- | const int controllerA7 = 8; // | + | |
- | + | ||
- | void setup() { | + | |
- | } | + | |
- | + | ||
- | // store previously sent values, to detect changes | + | |
- | int previousA0 = -1; | + | |
- | int previousA1 = -1; | + | |
- | int previousA2 = -1; | + | |
- | int previousA3 = -1; | + | |
- | int previousA4 = -1; | + | |
- | int previousA5 = -1; | + | |
- | int previousA6 = -1; | + | |
- | int previousA7 = -1; | + | |
- | elapsedMillis msec = 0; | + | ===== Développement |
- | + | ||
- | void loop() { | + | |
- | // only check the analog inputs 50 times per second, | + | |
- | // to prevent a flood of MIDI messages | + | |
- | if (msec >= 50) { | + | |
- | msec = 0; | + | |
- | int n0 = analogRead(A0) / 8; | + | |
- | int n1 = analogRead(A1) / 8; | + | |
- | int n2 = analogRead(A2) / 8; | + | |
- | int n3 = analogRead(A3) / 8; | + | |
- | int n4 = analogRead(A4) / 8; | + | |
- | int n5 = analogRead(A5) / 8; | + | |
- | int n6 = analogRead(A6) / 8; | + | |
- | int n7 = analogRead(A7) / 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; | + | |
- | } | + | |
- | if (n4 != previousA4) { | + | |
- | usbMIDI.sendControlChange(controllerA4, | + | |
- | previousA4 = n4; | + | |
- | } | + | |
- | if (n5 != previousA5) { | + | |
- | usbMIDI.sendControlChange(controllerA5, | + | |
- | previousA5 = n5; | + | |
- | } | + | |
- | + | ||
- | if (n6 != previousA6) { | + | |
- | usbMIDI.sendControlChange(controllerA6, | + | |
- | previousA6 = n6; | + | |
- | } | + | |
- | if (n7 != previousA7) { | + | |
- | usbMIDI.sendControlChange(controllerA7, | + | |
- | previousA7 = n7; | + | |
- | } | + | |
- | |||
- | } | ||
- | |||
- | // MIDI Controllers should discard incoming MIDI messages. | ||
- | // http:// | ||
- | while (usbMIDI.read()) { | ||
- | // ignore incoming messages | ||
- | } | ||
- | } | ||
- | </ | ||
- | ++++ | ||
- | ==== PCB ==== | + | <WRAP group> |
- | ==== Boite laser en bois ==== | + | <WRAP third column> |
- | * Boite capteur générique 75x75x60mm | + | [[.:v1:|{{:projets:brutbox:bb-v1.jpg? |
- | * Boite mère Teensy 75x90x40mm | + | **[[.:v1:|BrutBox version 1]]** (2014-2017) </ |
+ | <WRAP third column> | ||
+ | [[.: | ||
+ | **[[.: | ||
+ | </ | ||
+ | <WRAP third column> | ||
+ | [[.: | ||
+ | **[[.: | ||
+ | </ | ||
+ | </ | ||
- | ==== Logiciel ==== | ||
- | Dernière version issue de la résidence de Février 2016 à l' | ||
- | {{: | ||
- | ==== Carte électronique ==== | ||
- | ===== historique de dev. ===== |