Exploding MIDI tracks - and reducing redundancy?

Have an urge to learn, or a calling to teach? Want to share some useful Youtube videos? Do it here!
Post Reply
User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

Hey people.

I would like to know if there's any way to automatically minimize the amount of note lanes used when "exploding" a MIDI track.

The goal is to have as few MONOPHONIC lanes as possible.

Here's an extreme example:

Imagine you're playing triads on each beat with the high note being a fifth, going chromatically up the keyboard.
When you explode that track (F8, last setting at the very bottom) you'll get twenty lanes, one for each note, while the total number of note lanes necessary to represent all MIDI data in a monophonic way is only three.

Why bother you might ask?
I'm thinking of multitracking a monophonic synth but I'd like to compose beforehand with chords. I don't like to manually create multiple monophonic lanes and recording as many lanes as "lowest to highest note in halfsteps" is almost never necessary.

Any advice? Third party tools?
I'm no expert but all this would require from a mathematical point of view is a sorting algorithm.
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
pushedbutton
Posts: 1538
Joined: 16 Jan 2015
Location: Lancashire, UK
Contact:

23 Oct 2019

I know exactly what you mean.
@pushedbutton on twitter, add me, send me a message, but don't try to sell me stuff cos I'm skint.
Using Reason since version 3 and still never finished a song.

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

pushedbutton wrote:
23 Oct 2019
I know exactly what you mean.
I guess that means you don't know a solution to the problem either? :(

Mono synths have been around for a loooong time now. With all the recent releases by Behringer, Korg et al., I'm surprised a sequencer feature such as this isn't a thing by now or at least widely requested.
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

23 Oct 2019

How do you imagine the intellect that will recognize notes and their positions in the chord?
In my opinion, it’s easier to use something like this:

https://www.reasonstudios.com/shop/rack ... /chordset/

(if necessary, individual streams of chord notes can be to bounce in midi via CVPT)

User avatar
Noiserunner
Posts: 79
Joined: 26 Sep 2018
Location: Munich, Germany

23 Oct 2019

I have no experience with it, but s this not a job for Delta MIDI Computer player?
(MacBook Pro 13", some soft- and hardware)

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

ljekio wrote:
23 Oct 2019
How do you imagine the intellect that will recognize notes and their positions in the chord?
I'll write up a pseudo algorithm later. There's no need for anything sophisticated :) It's offline processing and it's about note on/off, gaps and wether gaps are big enough to fit in a note.

ljekio wrote:
23 Oct 2019
In my opinion, it’s easier to use something like this:

https://www.reasonstudios.com/shop/rack ... /chordset/

(if necessary, individual streams of chord notes can be to bounce in midi via CVPT)
Can you show an example please? I'm not sure I follow. How do you end up with several 1-voice midi lanes stemming from a chord track?
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

23 Oct 2019

diminished wrote:
23 Oct 2019
Can you show an example please? I'm not sure I follow. How do you end up with several 1-voice midi lanes stemming from a chord track?
My bad. I thought it device work some other.

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

23 Oct 2019

I'm guessing what is needed is another "Explode" mode or two based on chords: one that is based on the highest note and one based on the lowest note in the chord. That would allow it work with chords consisting of any number of notes, putting them in their own lanes from top to bottom or bottom to top. The number of generated lanes would be calculated from the number of notes in the "biggest" chord found on the track. This is not a common request, but if the sequencer had scripting it would be easy enough to build it yourself!

Tracks such as your example (consisting only of three note chords) should be a breeze.
Selig Audio, LLC

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

selig wrote:
23 Oct 2019
I'm guessing what is needed is another "Explode" mode or two based on chords: one that is based on the highest note and one based on the lowest note in the chord. That would allow it work with chords consisting of any number of notes, putting them in their own lanes from top to bottom or bottom to top. The number of generated lanes would be calculated from the number of notes in the "biggest" chord found on the track. This is not a common request, but if the sequencer had scripting it would be easy enough to build it yourself!

Tracks such as your example (consisting only of three note chords) should be a breeze.
Exactly. Of course implementation could be as sophisticated as the developer deemed necessary, but a basic functionality wouldn't be too hard to implement, especially since "explode" already exists.
I made a visualization with some primitive pseudo algorithm that would already make me very happy. It goes from top to bottom, but a reversed order (or even a mixed order for maximum "space efficiency") would be possible:

01-initial.png
01-initial.png (9.94 KiB) Viewed 2270 times
02-exploded.png
02-exploded.png (22.93 KiB) Viewed 2270 times
03-trimmed.png
03-trimmed.png (23.24 KiB) Viewed 2270 times
Last edited by diminished on 23 Oct 2019, edited 2 times in total.
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

04-reducedlanes.png
04-reducedlanes.png (55.29 KiB) Viewed 2270 times
05-result.png
05-result.png (7.36 KiB) Viewed 2270 times
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

23 Oct 2019

Little trying.

(for direct record all of voices you must have some free control surfaces what locked with every voice).
Attachments
chord to rec.zip
(74.48 KiB) Downloaded 57 times

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

ljekio wrote:
23 Oct 2019
Little trying.

(for direct record all of voices you must have some free control surfaces what locked with every voice).
CVPT to the rescue!! Thank you! :) It's a bit annoying to set up - compared to a dedicated sequencer function - but I'll see myself sending MIDI to EMI's this way.
CVPT sorts from low to high I guess..?

(Edit: it seems like it doesn't sort. Hmm. Lectric Panda rcbuse, if you're reading this, what's the underlying algo for CVPT to decide which note goes to which output if all notes arrive at exactly the same time?)
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

Another thought.. a different "explode" mode could also sort the notes by length. That would make it easier to get some nice results. For example, usually you wouldn't want to send long notes to plucks, and you wouldn't want to send short notes to pad sounds with long attack times...
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

23 Oct 2019

Not sorting it, first of voice is first socket there and etc.

User avatar
selig
RE Developer
Posts: 11685
Joined: 15 Jan 2015
Location: The NorthWoods, CT, USA

23 Oct 2019

OK, found one solution that works in real time but doesn't use the sequencer.
You'll need one RE: Distributor ($9)
https://www.reasonstudios.com/shop/rack ... stributor/

First, play your chords, then quantize the chords.
Next create a Distributor and copy the chords to it's track in the sequencer.
Then connect your three synths via CV to the first three channels of Distributor and it will send each note of the chord to it's own synth, lowest note to output 1, and on from there.
On the Distributor you'll need to set voices to "3", and in the Pattern section set Reset "ON".

Only limitation would be that all chords must include 3 notes, or you'll have to automate the Voices parameter accordingly.

I haven't tested this setup very much, but it appears to work well for this approach. If you wanted notes to track you could add a player such as Love One's MIDI-CV Convertor.
Selig Audio, LLC

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

23 Oct 2019

selig wrote:
23 Oct 2019
OK, found one solution that works in real time but doesn't use the sequencer.
You'll need one RE: Distributor ($9)
https://www.reasonstudios.com/shop/rack ... stributor/

First, play your chords, then quantize the chords.
Next create a Distributor and copy the chords to it's track in the sequencer.
Then connect your three synths via CV to the first three channels of Distributor and it will send each note of the chord to it's own synth, lowest note to output 1, and on from there.
On the Distributor you'll need to set voices to "3", and in the Pattern section set Reset "ON".

Only limitation would be that all chords must include 3 notes, or you'll have to automate the Voices parameter accordingly.

I haven't tested this setup very much, but it appears to work well for this approach. If you wanted notes to track you could add a player such as Love One's MIDI-CV Convertor.
Thanks, selig, for the suggestion!
However, it's just one hardware mono synth, so I don't need real time because I have to record each track individually anyways. And I need to send out MIDI data, which would require CVPT again. So I'm going with ljekio's (free) suggestion :)
The beauty is that CVPT only puts out notes on an additional output if it has to! Which means minimal MIDI lanes are guaranteed (although the output order can be a bit weird sometimes if multiple notes are playing at the exact same moment) AND it works with unquantized MIDI.

So I'll be able to compose polyphonically and generate as many monophonic MIDI lanes as needed. The following picture essentially shows what ljekio hooked up in his project file. It allows for up to three voices which then can be send to the synth one after another and recorded as audio.

monolanemaker.jpg
monolanemaker.jpg (192.92 KiB) Viewed 2206 times
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
ljekio
Posts: 962
Joined: 21 Jan 2015

23 Oct 2019

It allows for up to three voices
It allows for up to 16 voices (by number of CVPT's channel).

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

24 Oct 2019

ljekio wrote:
23 Oct 2019
It allows for up to three voices
It allows for up to 16 voices (by number of CVPT's channel).
I meant the setup you were offering for download and the setup I screenshotted - but yes, up to 16 in theory :) Thanks again!
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

User avatar
xboix
Posts: 281
Joined: 22 Oct 2019

25 Oct 2019

That explode function is mostly meant for drums I think but I do see what you are aiming to do.

Something to bear in mind is that, depending upon the synth and the patch, you may get sonically different results from splitting and combining tracks in different ways because the notes may tail off or cut off or even slide to the next note. So the end result may not be exactly the same as same as you would get if the synth was truly polyphonic.

(Not sure I've explained that very well but I know what I mean!)

User avatar
diminished
Competition Winner
Posts: 1880
Joined: 15 Dec 2018

25 Oct 2019

xboix wrote:
25 Oct 2019
That explode function is mostly meant for drums I think but I do see what you are aiming to do.

Something to bear in mind is that, depending upon the synth and the patch, you may get sonically different results from splitting and combining tracks in different ways because the notes may tail off or cut off or even slide to the next note. So the end result may not be exactly the same as same as you would get if the synth was truly polyphonic.

(Not sure I've explained that very well but I know what I mean!)
I know exactly what you mean too, and I think that's somewhat cool - different "exploding algorithms" will yield in different sounding voices and voicings, pitch glide and env retrig are perfect examples. Now if you turn some knobs while recording a voice too, you can get very exciting poly sounds with a cheap hardware synth and also have a lot of fun while doing so :) :)
I'm thinking of the Behringer Crave by the way, 150€ is just a bit more than a reward store RE with the difference that you can resell it.
:reason: Most recent track: resentment (synthwave) || Others: on my YouTube channel •ᴗ•

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 11 guests