Reason style step sequencer - any ideas?


    Apr 02 2006 | 9:58 pm
    Hi all, 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.
    Thanks,
    joe

    • Apr 02 2006 | 10:03 pm
      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...
    • Apr 02 2006 | 10:08 pm
      hi, 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.
      cheers,
      joe
    • Apr 02 2006 | 10:15 pm
      Quote: joecanti@yahoo.co.uk wrote on Sun, 02 April 2006 16:08 ---------------------------------------------------- > hi, > 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. > > cheers, > > joe ----------------------------------------------------
      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.
    • Apr 02 2006 | 10:30 pm
      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?
      Thanks,
      Joe
    • Apr 02 2006 | 10:54 pm
      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 describe.
      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.
      [ddg] Darwin Grosse
    • Apr 03 2006 | 1:11 am
      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?
    • Apr 03 2006 | 3:22 am
      > 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)?
    • Apr 03 2006 | 9:00 am
      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.
      DEFINITIONS: noteDisplaySpan = currently displayed notes (ex: from f2 through g3 or something) 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 PSEUDO CODE: ***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
      EXAMPLE: ***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 PSEUDO CODE: ***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
      EXAMPLE: ***INPUT: 13,52 [notes 50 through 59] [steps 9 through 16] ***MUNGE: 52-50 = 2 ***MUNGE:13-9=4 ***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 -matt
    • Apr 03 2006 | 11:18 am
      maybe you should take a look at Lobjects... there is a gui stepsequencer included.
    • Apr 03 2006 | 12:32 pm
      Hi,
      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, joe
      ps not sure if the upload worked...i browsed then clicked upload file but i cant see it anywhere??
    • Apr 03 2006 | 1:25 pm
      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)
      Will
    • Apr 03 2006 | 3:51 pm
      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 ;-) cheers Roger
    • Apr 03 2006 | 4:28 pm
      roger.carruthers wrote:
      > 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.
      cheers
      w
    • Apr 03 2006 | 4:56 pm
      hi, 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...
      cheers,
      joe