< Back to IRCAM Forum

Un-unioning chord in a chord-seq

Hello, a beginner question. (Two questions, actually, but related)

I would like to know how to un-group or un-union chords in a chord-seq. Let’s say I have a sequence of chords, and I would like to arrange them into a polyphony before exploding them by channels into a multi-seq.

The only workarounds I’ve found are: run the chords through “flat”, which will give you arpeggios, or manually apply different channels to every note, transfer to a multi-seq. The multiseq is a less convenient environment for sketching, though. It’s possible, of course, to write the notes in manually and delete them from the chord.

Still, my intuition says that if there is a group/union function in the editor, there should be an ungroup/ununion function?

The related question: When I expand chord-seqs into multiseqs, even if I am carefull about ordering channels from top to bottom, the resultant multiseq is all out of order: i.e. bass line at the top, melody somewhere in the middle, etc. I am trying to write an orchestral piece, and this is very frustrating.

Very grateful for any advice.

If anyone is curious, I made my first internal patch to deal with this issue. It seems a bit unnecessarily complicated, but it does the trick. :slight_smile:

Hello,

Sounds like you solved it. I can imagine ways to do it, the question is how the notes would be separated between voices if the chords have different number of voices. Should it select random notes within range contraints and give rests if there are none?

You don’t have this problem going from chord to multi-seq. I created a function called ‘r-chord-to-multiseq’ in the OM-ruben library, and it is doing this: https://sourceforge.net/projects/omruben/
Notes in a chord are not always in pitch order. The function ‘r-profile-chord’ sorts the notes after a curve. It could be simply ascending or other shapes. For basic lists you have the sort. function.

It would be possible to also create a ‘chordseq-to-multiseq’ function, but it would need more rules; how many parts are there, how will they be separated between parts, and should some of them be chords (doublestops etc.).

Ruben

Chord-to-multiseq.tiff (462 KB)

For the chord-to notes problem, I’m realizing now that I made a bit of a rube goldberg device. It would probable enough to take a flat list of midics and a flat list of onsets + offsets. What I did, though, is took a seq-notes from omtristan, put 6 list-poses on it, flattened them, and made six outputs at the bottom. A bit overcomplicated but it does work.

Assuming I haven’t gotten to the point where I’m separating channels, that at least lets me deal with every note separately in the chordseq editor. Then I manually apply channels as I want, and - here I made another simple patch , it’s just two midi-eventseqs with a separate channels between them. It works nearly the same as r-channels hocket except that it will break chord onto separate channels, which channels hocket doesn’t.

Beyond that, I’ve learned to use the maquette, which save a lot of trouble - particularly if used in conjunction with the separate channels patch.

I’ve been using your library a lot, by the way, it’s really amazing work! I’ve learned a lot from playing around with your example patches.

The big issue that made me want to break chord objects was: I would get a neat chord progression from some function or another, but there was no way to manually arrange the onsets of the different notes in the chord (for some reason, I can’t change the offsets of notes within chords with the arrow key).