# 3.7. Synthèse contrôlée par midi (nouveau style ; Arts >= 0.3.0)

L'idée est que vous avez des structures qui fournissent une interface Interface_MIDI_NOTE. Il y aura une fréquence, une vélocité (volume) et un paramètre qui vous sera passé, si la touche est toujours pressée. Votre structure devrait maintenant synthétiser exactement telle note avec tel volume et réagir au paramètre "pressed" (enfoncé), où pressed=1 signifie que l'utilisateur appuie toujours sur la touche et pressed=0 signifie que la touche est relâchée.

Pour créer et utiliser une telle structure, faites comme suit :

- Pour traiter le paramètre "pressed", il est commode d'utiliser un module Synth_ENVELOPE_ADSR, ou, pour les sons de percussion, jouez-le simplement et ignorez le paramètre "pressed".

- La structure devrait se détruire elle même dès lors qu'elle n'est plus nécessaire, et à la fois les échantillons et les enveloppes génèrent le paramètre "done" lorsque le son est fini. Facile !

- Vous devrez publier votre structure sous un nom.

- Vous pouvez dire à un objet Synth_MIDI_ROUTER qu'il doit créer une telle structure pour chaque événement midi qui arrive sur le canal 1 par exemple.

- Oh, et bien sûr votre structure doit probablement jouer les données audio qu'elle génère vers un bus, ce qui est commode pour un post-traitement avec des effets, et finalement les diriger vers les haut-parleurs.