Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:malinette-brutbox:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:malinette-brutbox:accueil [2016/01/15 17:22]
resonance [Firmware Teensy 2]
projets:malinette-brutbox:accueil [2016/04/04 11:05]
resonance supprimée
Ligne 23: Ligne 23:
 {{:projets:malinette-brutbox:scenebrutbox.jpg|}} {{:projets:malinette-brutbox:scenebrutbox.jpg|}}
  
-  * Nom : BrutBox ?+  * Nom : BrutBox
   * État de l'art : [[http://orguesensoriel.com/|Orgue Sensoriel]]. Refaire sensiblement la même chose en moins cher, en libre/reproductible, (en moins bien ergonomiquement ?) mais en plus intéressant musicalement. Les capteurs sont distingués pour les animateurs : déclencheurs/variateurs, afin qu'ils s'accaparent le dispositif. Notez la taille des capteurs, les couleurs, la fixation, la connectique en Jack et l'utilisation avec 1 seul handicapé et 1 animateur.    * État de l'art : [[http://orguesensoriel.com/|Orgue Sensoriel]]. Refaire sensiblement la même chose en moins cher, en libre/reproductible, (en moins bien ergonomiquement ?) mais en plus intéressant musicalement. Les capteurs sont distingués pour les animateurs : déclencheurs/variateurs, afin qu'ils s'accaparent le dispositif. Notez la taille des capteurs, les couleurs, la fixation, la connectique en Jack et l'utilisation avec 1 seul handicapé et 1 animateur. 
   * Entrées : kinect, accéleromètre sans fil, neurosky (sans routage), capteur distance, piezo pince, micro, crayon graphite, conductivité corps (genre makey makey), webcam (face tracking, fiducials, ...), gros boutons, pavé XY façon kaospad, tapis XY   * Entrées : kinect, accéleromètre sans fil, neurosky (sans routage), capteur distance, piezo pince, micro, crayon graphite, conductivité corps (genre makey makey), webcam (face tracking, fiducials, ...), gros boutons, pavé XY façon kaospad, tapis XY
Ligne 31: Ligne 31:
   * Production : Armada   * Production : Armada
  
-==== État de l'art ====+===== État de l'art =====
 <WRAP group> <WRAP group>
 <WRAP third column> <WRAP third column>
Ligne 57: Ligne 57:
 Nous utilisons pour le moment, la carte Teensy 2.0 qui permet de convertir en MIDI les données de nos capteurs. Nous utilisons pour le moment, la carte Teensy 2.0 qui permet de convertir en MIDI les données de nos capteurs.
 En guise de connectique nous avons opté pour des connecteurs USB (pour éviter les faux contacts). En guise de connectique nous avons opté pour des connecteurs USB (pour éviter les faux contacts).
 +
 +
 +**Gravure :**\\
 +On fait de la gravure a l'anglaise a la cnc , vitesse 100mm/mn... passe 0.1mm, cela prend envion 40minutes de faire la carte principale, et 10 minutes par plaque usb B.
 +
 +  * **Fichier actuels :** (dxf+cambam+gcode) : {{:projets:malinette-brutbox:pcb-brutbox-012016.zip|}} 
 +  * Fichiers anciens : {{:projets:malinette-brutbox:teensy20-usbx8.ai|}} ,{{:projets:malinette-brutbox:teensy20-usbx8.svg|}} 
  
 {{ :projets:malinette-brutbox:screen_shot_05-11-15_at_04.09_pm.png?500 |}} {{ :projets:malinette-brutbox:screen_shot_05-11-15_at_04.09_pm.png?500 |}}
-{{:projets:malinette-brutbox:teensy20-usbx8.ai|}} ,{{:projets:malinette-brutbox:teensy20-usbx8.svg|}}  
 {{:projets:malinette-brutbox:teensy-pin-assignments.gif?nolink|teensy pin assignments}} {{:projets:malinette-brutbox:teensy-pin-assignments.gif?nolink|teensy pin assignments}}
 {{:projets:malinette-brutbox:pcb-teensy-usb-implementation.jpg|}} {{:projets:malinette-brutbox:pcb-teensy-usb-implementation.jpg|}}
Ligne 65: Ligne 71:
  
  
-==== Firmware Teensy 2 ====+ 
 +==== Firmware Teensy actuel (Make it brut / Fevrier 2016) ==== 
 +++++ *teensy-8-floatsIN-MAKE-IT-BRUT.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, n0, channel); 
 +      previousA0 = n0; 
 +    } 
 +    if (n1 != previousA1) { 
 +      usbMIDI.sendControlChange(controllerA1, n1, channel); 
 +      previousA1 = n1; 
 +    } 
 +    if (n2 != previousA2) { 
 +      usbMIDI.sendControlChange(controllerA2, n2, channel); 
 +      previousA2 = n2; 
 +    } 
 +    if (n3 != previousA3) { 
 +      usbMIDI.sendControlChange(controllerA3, n3, channel); 
 +      previousA3 = n3; 
 +    } 
 +    if (n4 != previousA4) { 
 +      usbMIDI.sendControlChange(controllerA4, n4, channel); 
 +      previousA4 = n4; 
 +    } 
 +    if (n5 != previousA5) { 
 +      usbMIDI.sendControlChange(controllerA5, n5, channel); 
 +      previousA5 = n5; 
 +    } 
 +  
 +    if (n6 != previousA6) { 
 +      usbMIDI.sendControlChange(controllerA6, n6, channel); 
 +      previousA6 = n6; 
 +    } 
 +    if (n7 != previousA7) { 
 +      usbMIDI.sendControlChange(controllerA7, n7, channel); 
 +      previousA7 = n7; 
 +    } 
 + 
 +  
 +  } 
 +  
 +  // MIDI Controllers should discard incoming MIDI messages. 
 +  // http://forum.pjrc.com/threads/24179-Teensy-3-Ableton-Analog-CC-causes-midi-crash 
 +  while (usbMIDI.read()) { 
 +    // ignore incoming messages 
 +  } 
 +
 +</code> 
 +++++ 
 + 
 +==== Olds Firmwares Teensy 2 ====
   * [[.:brutbox-firmware-old:|versions avant 09/06/215]]   * [[.:brutbox-firmware-old:|versions avant 09/06/215]]
   * Fichiers : ...   * Fichiers : ...
Ligne 587: Ligne 686:
 ++++ ++++
  
-++++ test-nrpn.ino (sur 1 capteur analo) !! erreur de compilation |+++++ test-nrpn.ino (sur 1 capteur analo A0) !! mais erreur de compilation… |
 <code cpp> <code cpp>
 // Fixed values, for demonstration // Fixed values, for demonstration
Ligne 638: Ligne 737:
   }   }
 } }
 +
 +
 +
 +/////////////////////////////////// LOG ERREURS //////////////////////////////////////////////////////
 +Arduino : 1.6.7 (Mac OS X), TD: 1.27, Carte : "Teensy 2.0, MIDI, 16 MHz, US English"
 +
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino: In function 'void sendNRPNHR(uint32_t, uint32_t, uint32_t)':
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:14:83: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((99 & 0x7F) << 16) | ((parameter & 0x7F) << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:14:115: error: 'usb_midi_write_packed' was not declared in this scope
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((99 & 0x7F) << 16) | ((parameter & 0x7F) << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:16:83: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((98 & 0x7F) << 16) | (((parameter >>7) & 0x7F) << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:18:82: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((6 & 0x7F) << 16) | ((value & 0x7F) << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:20:83: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((38 & 0x7F) << 16) | (((value >>7) & 0x7F) << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:23:84: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((101 & 0x7F) << 16) | (0x7F << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:23:99: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((101 & 0x7F) << 16) | (0x7F << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:25:84: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((100 & 0x7F) << 16) | (0x7F << 24));
 +^
 +/Users/zinc5/Documents/Arduino/test-nrpn2/test-nrpn2.ino:25:99: warning: left shift count >= width of type [enabled by default]
 +usb_midi_write_packed(0xB00B | (((channel - 1) & 0x0F) << 8)  | ((100 & 0x7F) << 16) | (0x7F << 24));
 +^
 +exit status 1
 +Erreur lors de la compilation.
 </code> </code>
 ++++ ++++
Ligne 737: Ligne 872:
 ===== Logiciel ===== ===== Logiciel =====
  
-{{ :projets:malinette-brutbox:brutbox_nantes.png?nolink |}} +{{:projets:malinette-brutbox:bb-2016-02-25-gantner.png|}} 
-**Dernière version de septembre 2015** (residence à Nantes chez Stereolux) : {{:projets:malinette-brutbox:brutboxx18092015.zip|}}+**Dernière version : fevrier 2016** (résidence à l'Espace Gantner) :{{:projets:malinette-brutbox:bb-2016-02-24-gantner.zip|}} 
 + 
 +Nouveautés : 
 +  * Partition commune entre les collections d'objets communs à Brutbox et Malinette. 
 +  * Sous menu dans le menu projet pour organiser les créations par dossier 
 +  * intégration de l'objet IN "faceOSC" des petits debrouillards 
 +  * intégration du bloc video dans les entrées bb 
 + 
 +!temporairement : les enregistrements Brutbox arrivent dans le dossier media/recording de la Malinette 
 + 
 +Cette version contient la séquence d'une dizaine d'exemples pour quelques heures d'atelier avec différents exercices : voix, effets audio, ondes cérébrale, guitare électronique, loopsampler, capteur lumière et sons binauraux...
  
-Elle contient une séquence d'une dizaine d'exemples pour quelques heures d'atelier avec différents exercices : voix, effets audio, ondes cérébrale, guitare électronique, loopsampler, capteur lumière et sons binauraux... 
  
   * Basé sur la Malinette et Pure Data Extended : https://git.framasoft.org/resonance/malinette/tree/master   * Basé sur la Malinette et Pure Data Extended : https://git.framasoft.org/resonance/malinette/tree/master
  
  
 +===== Boite en bois et decoupe laser =====
 +<WRAP  round important 80%>
 +Attention certains fichiers ont des problèmes d'échelle (à multiplier par 125%), et d'autres sont outdatés...
 +</WRAP>
  
-===== Boite et decoupe laser ===== 
   * {{:projets:malinette-brutbox:brutbox-proto2.zip|fichiers de découpe des boites et PCB}}   * {{:projets:malinette-brutbox:brutbox-proto2.zip|fichiers de découpe des boites et PCB}}
-  * {{:projets:malinette-brutbox:bb-gaitelyrique.zip|complement CP pour la gaite lyrique}}+  * {{:projets:malinette-brutbox:bb-gaitelyrique.zip|fichiers de découpe des boites non corrects.}}
  
-==== Generateur de boite==== +Nous avons utilisé un générateur de boite : http://boxmaker.connectionlab.org
-y en a plein… mais celui-ci marche pas mal : http://boxmaker.connectionlab.org +
-------+
 ==== Prototype 0.1 ==== ==== Prototype 0.1 ====
   * [[.:pistes:|Pistes initiales]]   * [[.:pistes:|Pistes initiales]]