Pattern Matrix Rethink

Although may not go all the way to a full arranger how about something like this.

Terrible name but all I can think of right now is Sub-Songs.

Each Sub-Song would look exactly like Renoise does at the moment, including the Sequencer and Matrix.

Each Sub-Song would share the main Instrument pool.

Each would have its own Tracks and Sends, although Master would be visible on all for adding master commands.

Timeline would be shared, so every Sub-Song would start playing at the same point and progress through the Sequencer at the same speed.

There would be an extra Arranger overview, which operates much like the current Matrix, but allows you to see the Matrix from multiple Sub-Songs.

This would allow Track Grouping by having Sub-Songs for different parts (although may make it hard to view your Bass alongside your Lead without further tweaking, for example.)

More importantly it would allow patterns/tracks of any arbitrary length to be played alongside each other, allowing polyrhytms, 4/4 drums, 3/4 bass and 7/8 hihats together without using strange length of patterns.

OK maybe not that refined just typing as I think, but something similar could work. Especially if you could also view tracks from other subs together.

yes, you are right about that. i just think (and i may have misunderstood you) that your suggestion of a ‘sorta big continuous pattern’ is not such a great one. i think that what you want to be able to do (and i want to be able to do as well, as your examples created vivid recollections of tedious repetitive Renoise actions in my mind), is best accomplished through the system of clips, as discussed before. that way, you would have both: patternblocks and continuous/parallel data.
but, as i said, maybe i misunderstood you and that is just what you meant.

this is a great idea. i love it. it’s simple and it works, without the need for an intricate clip-system. however, thinking about this, it may not work as well for people wanting to do irregular patterns and such… that’s where we are back at the clips-system, or the onion-skinning or something like that.

How about using track groups to organize matrix view?

  1. individual tracks are grouped/divided into track groups (each new song starts with one group holding all tracks)
  2. each track group has it’s own patterns (clips)
  3. matrix (actually arranger in this case) shows only track group patterns (clips), no individual tracks (but they have thumbnails of contents just like now)
  4. pattern editor shows track group currently being edited, and optionally patterns at the sides from other track groups (for timing purposes)

In addition:

  • individual tracks still have individual sends (maybe track groups should also have groups sends, processed after individual sends?)
  • pattern editor has user-definable grid instead of fixed lines and notes can also be between grid lines (visually, not as with current delay column)
  • this makes pattern editor zoomable for detail work and allows almost indefinitely accurate automation (drawable envelopes or continuous midi controller data tracks alongside note track - all nicely organized under track groups)

Nice point about this is that if user uses only one track group it works exactly as traditional tracker, except that patterns can be freely positioned on vertical arranger (looks like current matrix). It’s also backwards compatible as current matrix songs can be opened exactly like this.

But it’s also very flexible as user can freely decide what track groups are made of (typically one track group per instrument, but traditional tracker could use them to keep multiple versions of one song, soloing track groups to compare between versions or anything they like).

I think this idea is already present in this or earlier threads.

But what I think would be great is if we could rethink the track/pattern symbiosis :)
So instead of “locking” tracks to a pattern, a pattern is instead a representation of arranged tracks.
Maybe a better word for track in this idea is “sub-pattern”.
So the “pattern editor” is realy a “floating” view/representation of arranged sub-patterns/tracks.

In addition to the linked blocks concept above, this would complete the picture, in an easy-to-manage, learning-curve-flattening, “one-step-at-a-time” way.

Give blocks ‘offset’

If blocks’ starting time could be detached from the pattern it’s supposed to be “inside of”… then they could act more like they are “anchored to”/“parented to” the pattern, like in MS Word how images move up and down with paragraphs. It could be done with drag-n-drop in the Pattern Matrix, or a -/+ numeric spinner in the Pattern Editor inside each track header, or even a special ‘grippy’ in the Pattern Editor. (The offset could be defined in “beats” not “milliseconds” if changes in LPB/tempo are difficult to program around.)

Give blocks ‘LPB’ / ‘tempo’ multipliers
Perhaps, we could allow a tempo/LPB multiplier for these offset blocks. Then let’s say you 2x the LPB. In the Pattern Editor, that block would compress to 50% vertically. (How this N% height is rendered is up to the UX expert.) When you tab into this block in the Pattern Editor, it expanded to 100% vertically and everything else expands by the same percentage, hopefully with some brief animation between the “zoom levels”.

Give blocks a few more things, and you get “clips”
With these two additions in place, “clips” in their entirety become a series of evolutionary steps:
.

  • Blocks that span across a few tracks. We could call it block grouping. Select some blocks, hit Ctrl+G, they’re grouped. They link as one entity, drag-drop as one entity… play from an instrument slot as one entity (see further down). Further, grouping blocks downwards could merge columns of blocks into single, long blocks.
    . - Blocks which are proper clones. Just add a context menu item, “Paste to all linked blocks”. From that point you have clone behaviour until you unlink later. It doesn’t really matter if this is implemented as many pointers to one actual block, or just the original ‘linked blocks’ functionality of mirroring edits until you unlink. The effect is identical.
    . - Instruments whose ‘samples’ are blocks (or block groups). This is the biggest step of all: this is the first time there is pattern information which might not be attached to any pattern at all. Perhaps these “samples” list-items could have a special appearance in that part of the UI - rounded-corners outlines, perhaps.

A possible UI could be friggin’ cute: your block/block-group pattern data is rotated 90° CCW and stretched/spaced-out to fit the sample editor. Multiple tracks in a group look like stereo (or more) channels.

Allow basic edits: select, delete, insert, silence… etc. like for a sample. Double-click your “sample” to edit it in the pattern editor. Things like the play-button and pattern navigation are hijacked for this purpose until you “escape out” to a normal pattern using the Pattern Matrix/Arranger (or hit Esc twice quickly like a double-click?).

It should also be noted: DSP’s come along for the ride once you make an instrument from a block. The original, pattern-attached block can be erased or left-behind, but not converted into a single note C-4 because the DSP’s would effectively be applied twice, which is Not A Good Thing™.

Oh my god, it’s full of stars.

Before I go on, +1 for individual lengths for each track or FB00 for each track, or "But things could get pretty wild if blocks were allowed lengths independent of their containing patterns… :yeah: "

Also +1 for a global data storage UI to observe, measure, and combine potential clips, maybe even a statistic read out.

  • in relation to linking *
    dblue’s Fractional Notes, in my limited imaginative grasp and knowledge, vaguely solves having individual tempos per track.

The two current problems I’m encountering are

  1. Access of all the possible resolutions after choosing polyrhythms or polytempo for the base beat/BMP/tempo.

For example, I have a simple 3 beat 16 LPB loop at 70 BPM. I use the Fractional tool to get the following polyrhythm for each sequential beat [1:7, 1:5, 1:3]. I have access to 64th notes on base beat “1” but I have limited access to “7”, “5”, and “3”. I’m always asking myself before laying any ground work, what is the highest resolution I want to work with for a particular tempo AND its attached polyrhythms. I’d like to speed up the exploration process, combine what I find to be musical with other “clips”, and then later save the basic spine of it for later explorations and use. Currently I have a dedicated track for Fractional Notes as my editable generative “clip” track.

  1. The actual tempo of above examples “7”, “5”, “3”.

Although I could use the Tap Tempo tool, I prefer the tempo be calculated and accurate if using Renoise’s fractional tempo or maybe link Tap Tempo to the pattern editor, but if that isn’t possible, there are existing tools to make it musically possible now.

  • suggestion for linking *
    Currently there is rotation for automation and Taktik’s Pattern Rotate tool. It would be great if both these tools were optionally linkable. Although its quite possible now, rotating all or selected automations one by one track by track is the tedious part.


The topic is called “Pattern Matrix Rethink” right?

Well, I haven’t read all the thread but here is an old mock-up that I made a while ago, which hopefully is suitable for this topic (or else it would be considered as spamming :confused: )

+1 for ableton’ish behavior!

When the matrix was first introduced I thought it worked this way :)

NO.

I really like the current Pattern Matrix. Thought it might be interesting to share how I use it:

  • I’ll start out (like everyone does) with a few sketch patterns playing in a loop.
  • Once I’m ready to start arranging the thing into a ‘song’, I add a single new blank pattern underneath the sketches, make it the right length, then clone it.
  • Then clone the resulting 2 empty patterns, and again with 4, 8, 16, 32, 64 etc until there are a shitload of unique, empty patterns.
  • At this point you’ve basically got the same expanse of empty timeline as you have in any other DAW, and you can CTRL+drag parts of your sketch patterns out onto the silence and play around with arrangements.

I’m sure many other people use this approach too, so I’m inclined to say there’s no need for ‘patterns’ anymore, I just want an infinite blank space where track blocks can be moved around. If that’s what Renoise becomes, then we’d also need the following:

  • Alias track blocks
  • Variable length track blocks
  • Separate blocks for track automation and note data

That’s something I’ve suggested too. My idea is basically to expand the matrix downwards with an infinite number of virtual patterns (a “canvas” for your music)
Here’s some ASCII to illustrate it - each symbol has the following meaning:

  
[.] = A real, empty pattern-track  
[x] = A real pattern-track with content  
[] = A virtual pattern-track (always empty)  
[0-9] = Pattern number  

So, here we have a new song with one pattern and 6 tracks.
The virtual patterns expand to fill the available (screen)space:

 
[0][.][.][.][.][.][.] [-][][][][][][]  
[-][][][][][][]  
[-][][][][][][] [-][][][][][][]  
[-][][][][][][]  
[-][][][][][][]  
...etc...  

After having written some good stuff, we drag that stuff to a later point in the song.
This will automatically create the (empty) patterns inbetween - so there’s no need to duplicate patterns in order to expand the song length.

 
[0][x][x][x][x][x][x] [1][.][.][.][.][.][.]  
[2][.][.][.][.][.][.]  
[3][.][.][.][.][.][.] [4][.][.][.][.][.][.] due to drag-drop operation  
[5][.][x][x][.][.][.]  
[-][][][][][][]  
[-][][][][][][] [-][][][][][][]  
...etc...  

So, virtual patterns are mostly a GUI construct which are especially useful when you’re starting out a new song (and hopefully, easier to understand for people who are new to Renoise)

Things we could discuss further:

  • Automatically generated “filler” patterns (between source and drop target) should be unique?
  • A virtual pattern take on the length of the source pattern, or the default length?
  • Vertical scrollbar cannot reflect the virtual space (as it’s unlimited), but if needed, we still need to be able to drag content at boundaries to access more of the virtual space.

Exactly! It was the same thing I thought when I saw it for the first time, then I tried to use it (PM) for live stuff and it was not that effective.

For now, the pattern matrix is a great tool for arranging ideas quickly, however I think that if they added an ableton’ish mode to it (like in the video), it would mean that Renoise could be the first tracker usable for live performance!

:yeah:

So, you’re saying that you don’t know any other trackers that are usable for live performance, or that Renoise isn’t usable for live performance? Either way, I’m not criticizing your opinion (having such an “independent triggering” feature in the matrix would be totally sweet!), rather I’m pointing out that you seem rather settled in your perception that Renoise isn’t for live performance - at least not, the “Ableton way”.

There’s a gazillion different ways to play this beast. It’s built like a tank. Live features are constantly improving. But don’t use Renoise on stage if you don’t think it’s a good idea.
Personally, I’m playing my next gig on the 9th

This is a difficult one to approach in terms of screen real estate and visual simplicity.
Personally I think we should really try to keep the PM uncluttered and beautiful. I have some suggestions here.

  1. As it already exists we can think of the PM as superimposing a snapping grid, the length of a pattern to the whole song.So maybe we need to be able to set a snap size, in lines, beats, fractions whatever. Patterns that are naturally offset to the current “snapsize” could be highlighted simply in alternating shades; like lists are on macs.
    If, eventually, one is able to define different BPM and LPB and patternlength for individual tracks there should be a simple way to set the “snapping” in any or all tracks in the PM to the timebase (pattern length) of any particular pattern.

  2. If we are considering linking tracks, a simple way to warn the user would be to have that red highlight that appears around the pattern editor when editing to flash or dance or something when the cursor is in a linked track - I often work with everything hidden except the pattern editor. Obviously also highlight the relevant tracks in the PM if it happens to be open.

Woops, I’m sorry, I didn’t express myself clearly on my idea.

Anyway, what I meant is: Renoise could be a tracker with dedicated live performance tools inside the pattern matrix (in an ableton’ish way)!

What attracts me in Renoise is its stability, I’m totally aware that there are artists that use it for live (Vaccine, Proxxy, Platimatic, Venetian Snares …).

I agree with you, playing Renoise in a live situation now is pretty doable, but tricky.

@KRIX: Yeah, and maybe I was a bit defensive - Renoise IS tricky, but it’s also very tweakable. If you want to experiment with a dedicated performance tool, and a different way of working, try the Recorder (part of the beta Duplex project). Use it with the (virtual) launchpad offered by the Duplex browser, and It basically IS a different, more Ableton-like representation of the Matrix :-). And speaking of dedicated tools, I think Conner_Bw is onto something with the Gridtard idea. Good times

Edit: Ok, so I read the whole topic just to discover that I basically am repeating myself. However, the Recorder WAS inspired by Gridtard, and the new version is a massive improvement on the original, although still limited to samples :slight_smile:

Oh, and here’s the virtual patterns idea…just an ever-expanding array of slots beneath your song, nothing special about it.

Thanks Danoise :)

Here’s a link to that idea in case people need a reference, instead of thinking WTF is a Gridtard?

Recorder is a way better idea IMHO.

Cheers.

Renoise is great for sequencing and detailed editing, and writing linearly from start to finish. For programming music its the best there is I think. But we also want to get some of the advantages of Ableton live, such as playing back a song and trigger any sound or clip anywhere.

It seems to me like a lot of the ideas, including the current pattern matrix, revolve around taking the linear renoise song and breaking it up in different ways and making it possible to rearrange the pieces.

What if we approached the problem from another angle: How can we improvise stuff, and rearrange different pieces, and then get the result into the linear structure that is a Renoise song in the best way. Ableton live consists of two main windows, the matrix and the linear timeline. One would not be very useful without the other.

Instead of how can we break up the renoise song: how can we combine stuff into the renoise song.

This is of course not an concrete idea, more like a thought that maybe gives someone else an idea.

Without reading the whole thread (sorry time !) some thoughts from my side:

  • the most atomar thing is a Clip or Item
  • a Clip can either be a NoteClip (contains notes/midi data), a WaveClip (contains audio waveforms), an AutomationClip (contains automation data) or even a MetaClip (contains other Clips, good for grouping)
  • a PatternTrack consists of 1…n serial and/or parallel (!) clips. The longest serial combination defines the PatternTrack length.
  • a clip can be reused/linked in 1…n PatternTracks
  • the matrix view doesn’t just display patterns, but patterns containing clips which can easily be moved/copied/muted and so on.
  • this makes things like crossfading between clips possible and so on.
  • clips are no must. If one doesn’t like it one can omit it.
  • clips could be recorded and arranged in a non-linear fashion, too.

This would combine the pattern approach with the Cubase/Reaper/Ableton arrangement approach.
Otherwise I think there is no absolute truth.

Also to end up up in a vertical Reaper/Cubase-like arranger wouldn’t be the badest thing.
Patterns are easy, but also a bit clumsy IMO. Especially if someday wave elements / tracks whatever are hopefully supported.

It ain’t broke, so don’t fix it.

Frankly I would suggest giving the pattern matrix a few releases to settle in to everyone’s workflows before “rethinking” it.

For me it (pattern matrix) adds one more level of functionality, it can be used to do a multitude of things not to mention give visual cues and generally speed up workflow by providing a visual overview of a song.

Please do not change the current functionality of patterns in renoise. I read a suggestion above implied about eliminating reusable patterns. Please don’t do that. For those who like to compose songs with some semblance of structure the system as is works nicely. If you need something unique, just clone the pattern(s)! If you’re an audio anarchist who thinks structured patterns are for the weak than simply use one long pattern, or create a template that contains nothing but blank unique patterns and start from there!

most of all - get over it if joe shmoe thinks live > renoise for composing. I know the developers need to develop in context of selling a product to a market who’s drunk on live’s approach (which I don’t even think ableton has a grasp on) etc… but I believe setting out to design and develop Renoise to be all things for all people would be it’s undoing.

I purchased Live (the light version) a while back and played with it for about 10 minutes. I think it’s a gimmicky toy, but that’s clearly only my subjective opinion.