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:14] resonance [Description] |
projets:brutbox:accueil [2018/12/17 10:52] resonance [Développement] |
||
---|---|---|---|
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 | + | * Fichiers : https:// |
- | * Matériel : boites, circuit | + | |
- | * Lien : http:// | + | |
+ | {{tag> | ||
===== Description ===== | ===== Description ===== | ||
- | Suite à de nombreuses recherches disponibles ici : [[projets:malinette-brutbox:accueil|Malinette BrutBox]] \\ | + | {{: |
- | Il est temps de figer une Brutbox v1.0 qui sera basée sur une carte Teensy 2.0 et 8 capteurs simples. | + | |
+ | 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 ===== | ||
- | * Recherches [[.: | ||
- | * Ateliers [[.: | ||
- | ===== Matériaux ===== | ||
- | * [[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; | ||
- | } | ||
- | + | ===== Développement ===== | |
- | } | + | |
- | + | ||
- | // 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. ===== |