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