Reason style step sequencer – any ideas?
I’m making a Reaktor controller surface at the moment and need to create an analogue style step sequencer like the Matrix from Propellerhead Reason.Eg top half for notes, bottom half for velocity.Been playing around with matrixctrl and multislider to find a good way of note/velocity selection but am running into problems; when i change the velocity i hear a note come through, which is annoying when playing around with a running sequence.this also puts the seq ahead of itself by one step.A timing problem also arose but i am using buddy to try to pair up note and velocity info.
Anyway, what im basically after is one the same as the Reason Matrix; mono, notes and velocities, step number change, octave change.The focus is on simplicity and ease of use.
I realise there are similar topics around, so forgive me if I overlap, but I havent seen anything to answer this in particular…
If you have any ideas/suggestions/patches then I would be very grateful.
EDIT: i thought i was on another forum. are you sure you’re playing with reaktor?
i’m not into reaktor, but isn’t there an object you can store events in, without sending them out? then use the trigger from the sequncer to send them.
hack some ensemble from the library, i’m sure it’s been done to death.
in max prepend set –> message
then metro –>counter –> sel –> bang–> message
a thousand ways to do it really…
thanks for the reply,
it could be used to control any synth – its just im using reaktor at the moment…all the seq has to do is output midi information.
I’ll have a go with trigger – thanks for that – that might give me a way of storing the data thus avoiding hearing anthing when i drag the velocitys values.
Quote: email@example.com wrote on Sun, 02 April 2006 16:08
> thanks for the reply,
> it could be used to control any synth – its just im using reaktor at the moment…all the seq has to do is output midi information.
> I’ll have a go with trigger – thanks for that – that might give me a way of storing the data thus avoiding hearing anthing when i drag the velocitys values.
hi, sorry, was a bit confused, spending time on a general computer music forum and your post was a bit ambiguous.
post an example patch and i’ll check it out.
i like working with several sliders better than multislider, for a more analogue feel.
i think (prepend) set –> message box is just what you want.
Sorry yeah – bit confusing.I’m using Max to create the sequencer.I’ll then use midiyoke to plum it into another synth…but it will only be midi data coming out of the Max Seq.
I havent got the patch on this computer, and to be quite honest its not that great anyway – i’m thinking of starting again on it – you know how it is – sometimes it takes a few patches to get your head around certain concepts before you blast it all off on a clean patcher.
But any ideas would be most welcome.Are you familiar with the Matrix sequencer in Reason?
Check out my user page at:
On the "user pages" page, it just shows the MIDI handler. But on the user
page, at the bottom, is the "QuickStart" set of abstractions. These include
a step sequencer that you can rip apart and use for the function you
Very similar to the Matrix sequencer, except it doesn’t do the octive
switching. You can add two of them to make the thing you want.
On Apr 2, 2006, at 3:30 PM, Joe Canti wrote:
> But any ideas would be most welcome.Are you familiar with the
> Matrix sequencer in Reason?
One graphic object I’ve always felt has been lacking is a combination
rangebar/multislider – similar to multislider in its display of an
array of data, but with two values, like range. This would allow for
the quick display/editing of "piano-roll" type data.
Yes, I realize that the detonate object offers piano-roll type
editing, but it certainly isn’t as elegant as the multislider (one of
my favorite interface objects in Max).
Any chance of expanding the range object to hold an array?
> One graphic object I’ve always felt has been lacking is a combination
> rangebar/multislider – similar to multislider in its display of an array
> of data, but with two values, like range. This would allow for the quick
> display/editing of "piano-roll" type data.
I’m not sure if I understand you correctly… but have you tried
experimenting with matrixctrl? Here’s a little screen capture from my
UI dustbin (piano roll concept not nearly flexible enough):
As you might guess from the three-pic menu near the top, the main
matrixctrl uses the clickvalue message and optionally the one/column
message. (The piano roll is also a matrixctrl so that the whole view
can be scrolled.)
Has anyone made a drop-in jsui replacement for matrixctrl sporting
dynamic resize (in the sense of multislider)?
one of the problems I see with emulating the reason step sequencer is
the idea of note-link which is not possible with just note on/off and
velocity. in other words changing the velocity of a note midi note.
it seems as though reasons CV/note in scheme works as shown below.
this means your instrument actually generates two sets of data from
your CV stream. noteon/off and a modifier value
UPON : every CV message going from zero to nonzero
DO: note on message with velocity x
UPON every CV change with no note on change
DO: change a specific parameter
UPON every CV message going from nonzero to zero
DO: end note
AS FOR NOTE/STEP DISPLAYING:
There’s no EASY answer yet in max yet. if your going to try it with
matrixctrl, you’ll have to write a couple of simple sub programs.
I’ve outlined them here. It looks long, its not. I just made sure
you could follow the instructions..
ABSTRACT: you need a way to interface between the absolute data in
storage and the relative data in your display.
noteDisplaySpan = currently displayed notes (ex: from f2 through g3
stepDisplaySpan = currently displayed steps (ex:16 through 32)
Matrix.x = x value relative to matrixctrl (relative to stepDisplaySpan)
Matrix.y = y value relative to matrixctrl (relative to noteDisplaySpan)
pitch = pitch number (absolute)
step = step number (absolute)
storage = where ever you choose to store (I suggest a coll)
1: translate matrixctrl to STORAGE
***INPUT: matrix.X, matrix.y, noteDisplaySpan, stepDisplaySpan
***MUNGE: translate matrix.X to step given stepDisplaySpan
***MUNGE: translate matrix.Y to pitch given noteDisplaySpan
***MUNGE: format above munged values into commands to send to storage
***OUTPUT: step/pitch as commands to STORAGE
***INPUT: 2,4, [notes 50 through 59] [steps 9 through 16]
***MUNGE: 50+2 = 52
***MUNGE: 4+9= 13
***OUTPUT: message for coll: nsub 13 1 52 ( stores value 52 in
1st list element of step 13 in coll )
2 translate STORAGE to matrixctrl
***INPUT: step, pitch noteDisplaySpan, stepDisplaySpan
***MUNGE: translate pitch to Matrix.Y given noteDisplaySpan
***MUNGE: translate step to Matrix.X given stepDisplaySpan
***MUNGE:format above munged values to send to matrixctrl
***OUPUT: matrix.X, matrixY as commands to matrixctrl
***INPUT: 13,52 [notes 50 through 59] [steps 9 through 16]
***MUNGE: 52-50 = 2
***OUTPUT: message for matrixctrl: 2 4 1 (turns cell 2,4 on)
as always let us know how it turns out. and if you have any reusable
code, please take the time to post it. good luck
maybe you should take a look at Lobjects… there is a gui stepsequencer included.
thanks for the replys…
I’ve uploaded the sequencer(.zip).i uploaded it because of the pict file, so you need to extract it all before you try it out.Thanks Darwin – i had a look at your seq and used the count bit in mine to get the matrixctrl to count and reset itself.
I’ve also used a +0 system in the sub patch so that when you drag the velocities nothing is heard until that particular step is banged through.This is a lot more solid than the last seq as the last one used gates and they all needed to be reset…
have a look, and if anyone can give me clues on implementing an octive changer rather than just a pitch shifter (if you shift up an octive, then back down again, i want it to remember the notes – kind of like having a 4/5 octive multislider, but only being able to see 1 octive and scrolling up and down to reveal the others??)
Thanks for your help,
ps not sure if the upload worked…i browsed then clicked upload file but i cant see it anywhere??
Joe I have posted a thread myself on an area related to my matrix style step sequencer. I use gizmo~ to change the pitch of my waves. Feel free to take a look at the patch I posted in the "ASDR for step sequencer" (its in sub patch waveforms1)
Afaik, the forum doesn’t support attachments (yet?). You’ll have to paste it as text and upload the pict somewhere else.
For those of us reading this via mail, I notice that the forum doesn’t re-post updated posts either, so it’s probably best to answer your own post, rather than updating it – I was about to ask ‘uploaded where ?!’ until I thought to look on the forum itself ;-)
> Afaik, the forum doesn’t support attachments (yet?).
No, it doesn’t (yet). Attachments are also frowned upon for the time
being, for reasons outlined in this thread:
> For those of us
> reading this via mail, I notice that the forum doesn’t re-post
> updated posts either, so it’s probably best to answer your own post,
> rather than updating it
Note that you only have a 15 minute time frame to update your post in
the forum, which wouldn’t allow you to go back and revisit a post in the
manner you’re suggesting. Originally, we weren’t going to even allow
post editing, but felt like the 15-minute time limit was an acceptable
compromise, given that, as you point out, edits are not re-posted.
didnt realise uploads were frowned upon…i guess the upload file bit at the bottom of where you reply shouldnt be used then?
I might put it up somewhere else if i have the time – its not really essential…