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:brutbox:accueil [2016/04/04 11:19] resonance |
projets:brutbox:accueil [2018/12/17 10:52] (Version actuelle) resonance [Développement] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== BrutBox ====== | ====== BrutBox ====== | ||
| - | * Porteur | + | * Porteurs |
| - | * 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://reso-nance.org/ |
| - | * Logiciel | + | * Fichiers |
| - | * Matériel | + | |
| - | * Lien : | + | |
| + | {{tag> | ||
| ===== Description ===== | ===== Description ===== | ||
| - | {{: | + | {{: |
| - | + | ||
| - | La BrutBox est un outil pour favoriser la pratique musicale collective. Elle permet une approche intuitive et expérimentale du geste et de sa restitution musicale. Le projet est à destination de tous publics, d' | + | |
| + | La BrutBox est un outil pour favoriser la pratique musicale collective. Elle permet une approche intuitive et expérimentale du geste et de sa restitution musicale. Le projet est à destination de tous publics, d' | ||
| ===== Développement ===== | ===== Développement ===== | ||
| - | * Recherches [[.: | ||
| - | * Ateliers [[.: | ||
| - | ===== Matériaux ===== | ||
| - | Il est temps de figer une Brutbox v1.0 qui sera basée sur une carte Teensy 2.0 et 8 capteurs simples. | ||
| - | |||
| - | * [[https:// | ||
| - | * Cp 3mm | ||
| - | * Cuivre pour pcb | ||
| - | * Capteurs (distance, ldr, potentiometre et bouton d' | ||
| - | * 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; | ||
| - | |||
| - | 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. ===== | ||