< Back to IRCAM Forum

Modifier dynamiquement le pitch et la duré


Bonjour,

Je travaille avec OpenMusic 7.7 et j’essaie d’utiliser des Number Box pour modifier dynamiquement le pitch et la durée (dur) d’accords générés via un Lisp Function, mais cela ne fonctionne pas comme prévu. Voici la structure actuelle de mon patch :

【Structure à l’intérieur de mypatch】

  • Nœud Input (1 seul inlet)
  • Nœud Lisp Function (prend un argument n)
    Exemple de code actuel :
    (lambda (n)
    (list
    (make-instance 'chord :pitch (list n) :dur 1)))
  • Nœud Output (1 seul outlet)

【À l’extérieur du patch】

  • Number Box (valeurs 60, 64, etc.)
  • Number Box → connecté à l’inlet de mypatch
  • mypatch → connecté à CHORD-SEQ
  • Sortie de CHORD-SEQ → Score Viewer

【Comportement actuel】

  • Dans le Listener, un chord-seq est généré (ex : OM => #<chord-seq 8010001193>)
  • Sur la partition, toutes les notes affichées sont identiques (le pitch ne change pas)
  • Modifier la valeur du Number Box ne change pas les hauteurs affichées sur la partition

【Question】

  • Dans OM7, comment puis-je utiliser un Number Box pour passer dynamiquement pitch et dur dans un Lisp Function afin que CHORD-SEQ et le Score Viewer reflètent correctement ces valeurs ?
  • J’ai joint des images montrant le code à l’intérieur du Lisp Function ainsi que la structure complète de mypatch.
  • Je souhaite que non seulement le pitch, mais aussi la durée (dur) puisse être contrôlée par des Number Box.

Merci d’avance pour toute aide ou indication sur une méthode fonctionnelle ou une solution de contournement dans OM7.7.

Bonjour Sengoku,

D’apres ce que je vois, votre patch comporte des erreurs.
Pouvez-vous l’envoyer?

Merci
K

Patch.omp (9.7 KB)
Monsieur,
Merci beaucoup pour votre réponse rapidement.
Veuillez vérifier. Au fait, cela fait longtemps que je n’ai pas utilisé OM, et je viens d’installer la version 7.7 il y a deux jours.

Cordialement.

Qu’est-ce que vous-voulez faire au juste?
ce que vous faites ici, c’est cree un objet et le mettre dans un chord-seq.

Mon objectif final est plus large que l’exemple actuel.

Je pense créer une machine de génération infinie de séquences atonales de 12 tons en utilisant Lisp en utilisant la pensée contrain.

Pour y parvenir, il faut d’abord déterminer, utiliser et exploiter les éléments nécessaires.:
– génération de séquences harmoniques,
– contrôle du nombre de notes par accord,
– variations de durées,
– et interaction entre contrôle externe et structures musicales internes.

Dans ce cadre, la création de chord-seq avec des accords
ayant un nombre de notes variable
n’est qu’un sous-problème parmi d’autres.

Le problème est que je me retrouve bloqué dès cette étape très initiale :
je n’arrive pas à vérifier de manière fiable
que les paramètres (comme le nombre de notes ou les hauteurs),
passés depuis l’extérieur du patch,
sont effectivement pris en compte
dans les objets musicaux construits et affichés.

Avant d’aller plus loin dans la structure globale,
j’essaie donc de clarifier ce point fondamental,
mais quelque chose m’échappe dans le modèle d’évaluation ou de propagation des données d’OM7.7.