Skip to content

Logique de transformation personnalisée

Sujet avancé : créer du traitement MIDI sur mesure au-delà des nœuds intégrés

Vue d'ensemble

Neurode MIDI utilise Neuroscript v3 (Rust) comme encodage canonique pour le routage et les transformations. La création visuelle compile vers Neuroscript, et les scripts sont compilés hors des threads temps réel en programmes déterministes.

Même si Neurode MIDI fournit des primitives de routage/transformation, vous pourriez avoir besoin de logique personnalisée pour :

  • Composition algorithmique — motifs génératifs, arpèges, progressions
  • Traitement adaptatif — transformations sensibles au contexte
  • Intégration matérielle — mappings spécifiques à votre équipement
  • Effets expérimentaux — algorithmes personnalisés

Neuroscript (recommandé)

Neuroscript est un DSL orienté musique pour les opérations MIDI courantes.

Quand l'utiliser

  • Transformations standard (vélocité, filtrage, remapping)
  • Scripts lisibles et faciles à maintenir
  • Prototypage rapide

Exemple : courbe de vélocité

neuroscript
# Compresser les notes fortes, booster les faibles
when vel > 100: event(vel = clamp(vel, 90, 110))
when vel < 40: event(vel = clamp(vel + 20, 1, 127))

Exemple : couches conditionnelles

neuroscript
# Notes douces vers le pad, notes fortes vers le lead
when vel < 60: event(ch = 3)
when vel >= 60: event(ch = 2)

Limitations

  • Pas de mémoire dynamique ni de boucles non bornées
  • Exécution déterministe par événement
  • Contrôle temporel limité à send/emit avec durées

Référence complète : Langage Neuroscript


Bonnes pratiques

1. Commencer par les nœuds intégrés

Avant d'écrire du script, vérifiez si les nœuds intégrés suffisent :

Préférez les transformations intégrées (filtrage, remap de canal, vélocité) lorsqu'elles existent.

2. Garder des scripts courts et ciblés

Bien (script ciblé) :

neuroscript
# Responsabilité unique : booster les notes faibles
when vel < 50: event(vel = clamp(vel + 10, 1, 127))

Si un script dépasse ~10–15 lignes, envisagez de le diviser en routes/préréglages ou de le refactoriser.

3. Tester en isolation

Utilisez le Simulateur avant d'intégrer le script :

  1. Écrire le script
  2. Tester avec des événements MIDI
  3. Vérifier la sortie
  4. Appliquer au preset/route

4. Profilage des performances

Ajoutez des nœuds Monitor avant/après :

[Entrée] → [Monitor A] → [Script] → [Monitor B] → [Sortie]

Si la latence dépasse 1 ms :

  • Simplifiez la logique
  • Utilisez les nœuds intégrés

5. Gérer les cas limites

neuroscript
when type == note: event(note = clamp(note + 12, 0, 127))

6. Commenter la logique

neuroscript
# Humaniser légèrement la vélocité (notes uniquement)
when type == note: event(vel = clamp(vel + 4, 1, 127))

Créé avec ❤️ pour les musiciens