[MCP] Un peu de théorie avec les SysEx

Entrons dans le vif du sujet: le détail du protocole!

Comme annoncé dans mon article précédent, le controleur et le DAW (STAN en français) dialoguent entre eux via MIDI, et plus particulièrement via des messages de controle MIDI ou des SysEx.

Si les données transmises ou reçues font plus que 3 bytes, alors le protocole utlisera des SysEx, sinon des messages MIDI «standards» seront utilisés.

Tout les bytes transmis sont noté en utilisant le format Hexadécimal (0xF0, 0x6C par exemple). Toutes les infos que je présente ici sont dispo en anglais, et peut-être un peu moins détaillée dans le Manuel LogicControl

Les messages SysEx

Ceux-ci commencent par un 0xF0 indiquant un début de trame.

La trame commence par un header de 5 bytes comme par exemple F0 00 00 66 00 :

  • F0 : début de la trame SysEx,
  • 00 00 66 : id du fabricant (mackie)
  • 00 : id du produit (je suppose)

Dans la suite de cet article, je simplifierai ce header en <hdr>

Afficher des données sur l’écran LCD

  • Tous les messages concernant le LCD commencent par le <hdr> suivi du byte 0x12.
  • Le byte suivant détermine la position à laquelle le message devra être affiché.
  • Le texte du message arrive ensuite (généralement 6 caractères)
  • Enfin, le message SysEx termine avec le byte 0xF7.

 

La surface MCU possède 8 pistes à controler et un écran LCD sur lequel il est possible d’afficher 2 lignes de 56 caractères. Un rapide calcul nous permet de determiner que chaque piste nous permettra d’afficher 7 caractères.

Chaque position de caractère est identifié par une valeur Hexa:

  • allant de 0x00 à 0x37 (soit 56 valeurs) pour la première ligne,
  • et de 0x38 à 0x6F pour la seconde ligne.

Soit une représentation:

lcd_representation
Cliquer pour agrandir

 

Prenons l’exemple d’un SysEx:

F0 00 00 66 00 12 38 ***4C 35 30 52 35 30 20*** FC
 <hdr>          |   \_position                    \_end of SysEx
           LCD message

 

  • 5 chars : F0 00 00 66 00  qui correspond à l’identifiant du device,
  • 12 : qui indique le début du message LCD
  • Puis : 38 4C 35 31 52 34 39 20 8
  • Donc: à partir de l’offset 38 (2e ligne, 1er caractère) on doit donc afficher :
SysEx 4C 35 31 52 34 39 20
Affiche L 5 1 R 4 9 (espace)

 

Si vous suivez jusque là, on a donc un affichage de Panoramique (PAN)  sur la 2e ligne, 1er afficheur : L51 R49  (j’ai du me rater dans le DAW pour faire un PAN pareil icon_redface.gif )

 

La suite la prochaine fois avec un peu de mise en pratique! 😀

[MCP] Introduction au protocole Mackie Control

Retour inatendu sur le blog, cet article est le début d’une petite série concernant la réalisation d’une surface de contrôle pour DAW via le protocole Mackie Control, largement utilisé dans le milieu audionumérique.

Un peu d’histoire (quelque peu simplifiée, je vous l’accorde):

Quelques années en arrière, et encore maintenant, dans un studio d’enregistrement/mixage/mastering on avait une grosse console analogique au centre et des périphériques audio (analogiques toujours) reliés à celle-ci pour appliquer des effets et autres traitements. Les puristes diront que c’est la seule configuration viable, et la seule qui retranscrit le vrai son. Les principaux problèmes de cette configuration, c’est son prix (la somme du matériel contenu dans un studio pro peut facilement dépasser les 100 000€), son encombrement et son poids. Autre inconvénient de taille, c’est que si on veut pouvoir retravailler un morceau dans le futur, il faut avoir pris soin de noter tous les réglages pour tous les équipements utilisés (je vous laisse imaginer un projet avec plus de 40 pistes, avec chacune plusieurs processeurs d’effets: compresseur, reverbe, echo et j’en passe…)

MSR Studio
Le MSR Studio à New York

 

Avec l’arrivée des ordinateurs, on a résolu beaucoup de ces problèmes, tout peut être réalisé numériquement dans le DAW, ce qui permet bien souvent d’ajouter un nombre illimité de pistes et de traitements audio. Le gain de place est énorme, il suffit d’une carte son (avec suffisamment d’entrées pour les enregistrements multipistes comme pour la batterie par exemple), d’un système d’écoute et d’un ordinateur. Il est également très facile de rappeler une session de travail.

Le principal inconvénient à la configuration dite « in the box », c’est qu’il faut tout faire à la souris, ou avec des raccourcis claviers. Quand on doit faire des automations (changements de paramètres en temps réel) ou modifier le volume de plusieurs pistes à la fois, c’est pas pratique.

Pour palier à ça, les ingénieurs on créé des surfaces de contrôle, qui ressemblent grandement à des tables de mixages traditionnelles, mais sans le traitement audio.

Une surface de contrôle permet juste d’envoyer la position et la valeur des paramètres au logiciel et inversement si les potentiomètres de celle-ci sont motorisés.

SSL Nucleus
La surface de contrôle SSL Nucleus

Le protocole en question:

La communication entre l’ordinateur et la surface de contrôle se fait via MIDI, qui est basiquement de la communication série un peu boostée.

Le MIDI étant assez limité dans sa version de base, le constructeur Mackie a créé un protocole pour faire passer des informations plus « concrètes » (comme du texte, des états de voyants, des actions permettant de contrôler en détail les logiciels de musique) entre ses surfaces de contrôle et le DAW. C’est ainsi qu’est né le protocole Mackie Contrôle.

Mackie Control
Mackie Control

Le protocole utilise des messages MIDI standards, tels que le Control Change (CC), NoteOn, NoteOff, AfterTouch etc.  Mais aussi des messages SysEx qui embarquent des messages beaucoup plus gros.

Le protocole est propriétaire, mais à la suite d’une « erreur » de la part d’Apple, qui a documenté la surface de contrôle Mackie HUI pour son OS en y joignant une annexe avec la description MIDI détaillée, le protocole a fuité, et beaucoup de constructeurs ont commencés à le réutiliser pour leur matériel. C’est alors devenu une référence pour beaucoup de fabricants de surfaces de contrôle actuelles, allant des moins chères (Behringer entre autres), aux moins abordables (Avid, SSL nucleus).

 

Je m’arrête là pour cette introduction, dans le prochain article, on jettera un œil aux données qui transitent via ce protocole!

Shruthi-1 : Comment allier open-source, musique et électronique!

Je ne finirai jamais de me réjouir de la quantité de projets open-source sur le net!

Comme vous l’aurez compris, j’aime plutôt bien le libre, la musique et de plus en plus l’électronique, et à l’occasion d’une recherche sur le net, j’ai trouvé le Shruthi-1!

Shruthi
Le Shruthi dans sa belle boite!

Le Shruthi est un synthé hybride numérique et analogique. Celui-ci est monophonique mais permet d’obtenir une très large palette de sons pour tout les goûts!  De la grosse basse funky, aux vieux sons de jeux comme sur un Commodore 64 ou une NES, en passant par des son étranges, évolutifs et séquencés. Il a tout pour ravir les amateurs de synthèse sonore!

Comme précisé sur le site, le Shruthi n’est pas vendu de manière industrielle et c’est pas vraiment du plug and play out-of-the-box. Le principe, c’est de tout faire soit même, avec ses petites mimines, ainsi que de l’équipement de base pour tout bidouillage: un fer à souder avec de l’étain, et un tourne-vis. Un voltmètre est toujours pratique, surtout pour les tests, mais pas indispensable.

Même sans grandes connaissances en électronique, c’est  assez facile à réaliser, ça demande rigueur et patience certes. Il m’aura fallu 2-3h pour finir la carte contrôleur  et un peu plus de 3h pour la carte filtre SMR4

Même les débutants peuvent le faire!

Il est possible d’acheter le kit, qui comprend tout ce qu’il faut pour réaliser la carte contrôleur, une carte filtre et la boite.

Mais l’envie vous prend d’explorer de nouvelles sonorités, il est tout à fait possible de prendre ces éléments séparément et d’y changer la carte filtre par une des autres proposées ou par une de votre cru (là, ça sort de mes compétences).

Et vu que c’est un projet open-source, et bien, les schémas, les typons et le code sont disponible librement 🙂  Très bien documenté, commenté et présenté en plus!

Bref, pour moins de 200 euros, vous avez un synthé qui n’a rien à envier aux grandes pointures du domaine, et en plus il y a toujours le plaisir de le faire sois même et de contribuer au monde du libre!

Allez jeter un oeil par vous même: http://mutable-instruments.net/   Tout est très bien documenté, c’est réalisé par un français à Paris et il propose d’autres montages électroniques liés à la musique.

Mon Shruthi a pris sa place sur mon Juno-Di

Courte introduction à Arduino

Me revoilà sur le blog après un petit moment, j’ai décidé aujourd’hui de vous parler de l’Arduino dont vous avez certainement dû entendre parler si vous vous intéressez au monde du libre ou de l’électronique.

Cet article s’adresse aux non-initiés, les termes employés sont assez basiques, bref, ce n’est qu’une introduction 😉

Un Arduino, qu’est-ce que c’est?

C’est une petite carte électronique pas beaucoup plus grande qu’une carte de visite qui possède un microcontroleur programmable et plusieurs entrées et sorties numériques et analogique.

Le gros point positif de cette carte, c’est qu’elle est open-source sous licence Creative Commons (By-SA) ce qui veut dire que vous pouvez en faire ce que voulez du moment que vous partagez ou distribuez votre travail sous les même conditions.

Un Arduino, à quoi ça sert?

C’est bien beau tout ça, mais concrètement, elle sert à quoi ta carte électronique?

Et bien, là dessus, le sujet est vaste! Avec un Arduino, on est bien souvent limité que par son imagination (ou son manque de moyens). En effet, les entrées et sorties permettent de déclencher des évènements en fonction des états de celle-ci, ce qui peut ce révéler bien pratique pour de la domotique par exemple: « S’il fait noir dehors, alors tu fermes les volets ».

Et comment s’en sert-on?

Forcement, ton truc open-source n’est disponible que sur ton ordinateur avec le pingouin partout là non?

Que neni! Qui dit open-source ne dit pas forcément GNU/Linux! L’avantage est que la plateforme de développement Arduino est disponible pour tous les systèmes d’exploitations Windows/MacOS/Linux. Et si vous avez un système particulier, les sources sont fournies, vous pouvez donc compiler vous même.

Il faut juste quelques connaissances en programmation (un Arduino se programme en C) et des bases d’électronique. Rien de bien méchant, même lorsqu’on ne connait pas et qu’on est motivé.

Il suffit de brancher l’Arduino à son ordinateur en USB, démarrer le programme sur l’ordinateur et de laisser son inspiration guider ses doigt sur le clavier (ou de charger des exemples fournis avec l’IDE) de brancher des fils sur la carte selon ses envies sans même avoir à sortir le fer à souder.

Ça coûte cher?

Oh là! je te vois venir avec ton super truc, tu peut faire ce que tu veux avec, ça doit donc coûter super cher! »

Pas du tout! Étant open-source, chacun peut fabriquer soit-même son Arduino, c’est pourquoi beaucoup de magasins en ligne proposent leur version de l’Arduino (certaines fonctionnalités sont déjà intégrés, le look général change un peu).

Pour ma part, j’ai commandé chez Adafruit (30$ donc environ 22€). La carte est une carte Arduino UNO officielle.

Et comment je branche ça avec mon installation existante?

Et ton truc arriverai à me faire un café quand je lui demande depuis mon téléphone en bluetooth, puis qu’il m’envoie un tweet pour me dire que c’est prêt et que lorsqu’il n’y a plus de café, il m’affiche ça sur un afficheur led tout en me lançant the « Eye of the Tiger » sur ma chaine hifi ?

Oui, tout à fait! Et même plus encore!

Ce qui est bien avec l’open source, c’est la communauté qui gravite autour de ce genre de projet, ainsi que l’évolutivité du matériel!

L’Arduino est évolutif grâce à ses « shields » – bouclier en français – comprenez ici module d’extension qui vient s’ajouter directement sur la carte Arduino pour accroître les possibilité de celle-ci.

Il existe toute sorte de « shield » et bien sur il est même possible de fabriquer les sien 😀

J’ai donc acheté un shield Ethernet (toujours chez Adafruit) qui me permet d’insérer mon Arduino dans le réseau, en faire un serveur web, un client qui se connecte à un serveur régulièrement pour transmettre des informations ou en récupérer, etc…

Mon Arduino avec son shield ethernet et sa plaque de prototypage

Conclusion

La présentation de ce magnifique outil touche à sa fin. Si vous voulez vous initier à l’électronique, la programmation, la domotique ou autre, n’hésitez pas! C’est pas cher et amusant (il est facile de passer plusieurs heures dessus à tenter de nouveaux trucs sans s’en rendre compte).

Par la suite, je vous présenterai surement quelques projets sur lesquels je me suis lancé avec mon Arduino.

Si ça vous à tenté, lancez vous dans l’aventure Arduino!

Allez faire un tour sur SKYDUINO, ça regorge de tutos vidéo créés par un passionné, c’est super clair, les sources de ceux-ci sont toutes téléchargeable et c’est mis à jour très régulièrement!

 

Sources:

– http://arduino.cc/ (en)  (la version fr n’est pas mise à jour régulièrement)

– http://fr.wikipedia.org/wiki/Arduino (fr)

– C’est quoi Arduino? Document en français, écrit par un enseignant, présentant Arduino : http://www.louisreynier.com/fichiers/KesacoArduino.pdf (fr)

– Les excellents tutoriaux de LadyAda sur Adafruit (en)

[1 year in Sweden]: Final Road Trip![1 an en Suède]: Road Trip Final!

As you may know, on Monday, my Road Trip through Sweden with my family starts!
Pierre & Cathy went in Africa last year and got a GPS spot to know the way they take. They decided to use it for this Road Trip, so here is a map to know where we are in real time during our trip!

If there is nothing above, press F5 / refresh on your browser and it should work!



I’m not sure if the device and the map will work, but at least, i try 😉

Comme vous le savez peut-être, Lundi commence mon road trip à travers la Suède avec ma famille.
Comme Pierre et Cathy sont partit en Afrique l’année dernière, ils sont équipés d’un dispositif de suivit GPS et ils nous font profiter de l’outil! Voici donc une carte pour suivre en temps réel notre périple!

Si rien ne s’affiche si dessous: un petit F5/rafraichir la page et le tour est joué!



Bon, je ne garantis pas que le dispositif marchera à 100%, mais autant essayer 😉