Welcome to %s forums

BrainModular Users Forum

Login Register

possible? --> Array Roll for Piano Roll Events

I need help on a Patch
Post Reply
lytz1
Member
Posts: 123
Contact:

Unread post by lytz1 » 29 Dec 2018, 20:11

Hey guys,

I'm not sure if this is even possible because when the array roll (or any other array module)
is used just like it is in between two piano rolls
the note events obviously disappear completely from the (second receiver)
piano roll because there are different type of events per array index.

However, maybe someone has an idea if this can be achieved in another way.

I would like to "roll" the note start (and end?) positions
inside the piano roll. (Like a note-modulo basically)
So that I don't need to move every single note around all the time.

Is that even somehow possible at all? What do you think?


Best,
tL.


(I also use the range fader for start pos /end pos but that doesn't really nail it.)

User avatar
x.iso
Member
Posts: 565
Location: RU, Saint-Petersburg
Contact:

Unread post by x.iso » 29 Dec 2018, 20:45

Lol, I just thought about making something similar, but rather a step sequencer where steps could move out of grid lock and be modulated by various inputs, like LFO's or particle movements, to make a mutating swing effect or complex drunk beat. And maybe I need to use piano roll module for that.

So, I think what you need to do for note movement is not applying array roll, but instead modulate array's values, like each X index. I haven't looked up yet how piano roll array is generated, but I'm guessing that it's kinda serialized.
join Hollyhock Usine Discord server: https://discord.gg/EdJarnE

User avatar
oli_lab
Member
Posts: 1263
Location: Brittany, France
Contact:

Unread post by oli_lab » 30 Dec 2018, 12:37

I think you should give a try to some of my modules :

in "data_Lab"

first piano roll goes in "deserialize array"

then you can roll some of the arrays to your taste, then reserialize arrays with the "serialize array" module
http://oli-lab.org

Win11 Ryzen9/32GB RAM - RME MADIFACE - SSL alpha link 4-16 - OSC capable interfaces

follow OLI_LAB adventures on Mastodon
@olivar_premier@mastodon.social

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 30 Dec 2018, 12:41

def possible but need to demultiplex event array, split to note start, note ends, ect sub arrays, use fmod as a "roller" on both start and end datas, then recombine the data as event array. possible but quicly tricky by patch, better use scripting for this.

but might become complex when say a note start will be slightly before end of the loop and its corresponding end has been 'rolled' back near sart of the loop, not sure piano roll will 'like' things like that... its probably easier to duplicate x times the sequence, and manipulate loop brakets via shifts to 'fake' the roll

edit: crosspot hadn't seen oli post. you could try serialize/deserialize. but then you need to use fmod and add your roll, not use roll array .on start and end arrays.

ie move note at beat 3 back to beat1 if loop is 4 lengh ( array + 2.0) fmod 4.0; // (value+roll) fmod(loop_len) both on start/end datas

or imo just make a shifted version of it that will sit after (data+loop_len), combined with previous, and then shift your bracket start/end

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 30 Dec 2018, 13:08

think there is an easier solution, by rolling the playback head instead.
ie make your main piano roll, and a 'slave 'one on wich playloop mode is set to 'ppqslave', then roll the driving ppq via offset+fmod of loop length.

Image

lytz1
Member
Posts: 123
Contact:

Unread post by lytz1 » 30 Dec 2018, 16:32

A *lot* of very useful info here guys, thanks a lot.

Also thanks Oli for pointing me to the array deserialize module,
that will come handy in a lot of situations.

Best,
tL.

Post Reply

Who is online

Users browsing this forum: No registered users and 17 guests