< Back to IRCAM Forum

Ties a note sequence

Hi
I have a list of notes

OM => ((0) (0) (0) (0) (0) (6300) (0) (0) (0) (6500) (0) (6400) (0))
or
OM => (-1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1) ( only for the rhythms)

I will have a melody ( in voice or in chord-seq) with ties between the pitches ( ties = (0) in first list, or -1 in second list)
Can you help me ? Thanks !
Sorry for my English i prefer write in French…
Salvo

Bonjour à tous, je souhaite reconstituer une mélodie sur voice ou chord-seq en partant de la liste des pitch en respectant le rythme , les (0) représentent une continuation de la note précédente.
Dans la liste des -1 et 1 le 1 veut dire nouvelle note, le -1 veut dire “prolonger note précédente…”
Quelq’un sais m’aider ?
Bye salvo
Merci !!

Bonsoir,

Je vois deja un probleme dans la formulation de votre probleme :

Si on considere -1 comme des notes tenues, comment avoir une note tenue a partir d’un silence…
Votre liste d’ailleurs commence ainsi : (-1 -1 -1 -1 -1 1 -1 -1 -1 1 -1 1 -1)

Tout cela pour dire que dans OM la structure des arbres rythmiques prevoit ctrois categories :
note exprimee : 1
note liee : 1.0
silence : -1

Je vous suggere donc de revoir votre strategie a partir de ces conventions. Le probleme sera aise;ent resolu.
Sinon, pas besoin pour mettre des (0) pour les silences et notes tenues. Voice calcul automatiquement les occucerences des rythmes et notes liees.

Aussi, notez que dans chord-seq il n’y a pas de notion silence ni notes liees.

Best
K

Bonsoir à tous,
merci bcp Karim pour ta réponse,

c’est bien vrai que cette convention n’est pas adaptée mais la conséquence d’un OM Loop que je n’ai réussi à gérer comme je voulais … (ci-joint).

A la lumière de tes conseils à chaque itération idéalement je devrais tester les données d’entrée de la liste un par un et

  • Si pitch est retenu va dans le cumul,
  • Si l’élément de la liste n’est pas retenu, j’aimerais bien répéter dans le cumul la dernière valeur déjà cumulée de l’itération précédente (N-1) , mieux avec un .0 (déjà prête pour voice)

A la fin, à la place de la note non retenue, de ce fait ceci aura pour effet ( si j’y arrive) de prolonger le son précédemment cumulé.

Quels seraient les fonctions plus adaptées pour ce type dep pb ?

merci encore, A bien tôt j’espère !
Salvo

test.tiff (32.8 KB)

Bonsoir Salvo,

Mais desole je n’ai pas bien compris. Peut-etre en reformulant ce que tu veux faire (tu peux deja oublier le omloop pour l’instant), sur le plan musical on pourrait faire simple et efficace. A mon avis, il ne faut jamais confondre probleme musical avec celui de la programation car on fini par tout melanger.

Amities
K

Hello,

I have a problem programming a function with following behavior.

(1 2 3 4 5) should return ((1 2) (2 3) (3 4) (4 5)).

I tried like this:

(defun my-grouping (x)
(cond ((equal 1 (length x)) nil)
(t (cons (list (first x) (second x)) x) (my-grouping (rest x)))))

but it doesn’t work at al. I think I need a variable but I don’t know how.

Can anybody help ?

thanks

Frank

Try this

(defun my-grouping (x)
(let ((y (cdr x)))
(mapcar 'list x y)))

Best
K