Pattern Matrix Rethink

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.

well, if you ask me a damn good toy with very good workflow and ergonomical design. Renoise copied some of it’s principles already (think of the fx chains), guess because they simply make sense. IMO Renoise is still lacking some important features (like wave tracks/ wave clips) which Ableton provides. I’d love to see more Ableton-esque features in Renoise.

Something like this perhaps? :)

Is krix idea already possible to do in realtime with renoise 2.7.2 yet?
If not how can one tweak it to do so? And if tweaking is not possible, would it be possible to create this behaviour by writing a lua tool?
I bet renoise would be used by some djs then.

Taktik, reading the above has made me happier and more hopeful for Renoise than I’ve ever been. What you describe here IS what needs to happen. I’m so glad you admit the Pattern Matrix as implemented needs improvement.

Go forth.

Thank you,
-Harold