Pattern Matrix Rethink

Sure it would solve some things. And is better then nothing. But will it be flexible enough in the end?
I think only a real linear type clip arranger on top of, or directly merged into the current pattern system, can completely solve this once and for all?
That together with instrument-patterns can make you sequence any way you want.

Sorry for another long post :) with lots of repeated stuff, I’ll try to only mention the essential things:

EDIT: I hope the following text don’t deserve a “f*** you” in advanced from Conner_Bw :P But really, its very relevant in telling why the pattern matrix can hardly be “finetuned” to a better arranger without some clear changes/additions.
Let me know if you want me to delete this…
Taktik is way more on topic, coming up with ideas that is within the current limitations.
Another small suggestion could be an optional view of the pattern sequencer/pattern matrix. Toggle to show real length of patterns there. As now it is a fixed size for all patterns in the PM. It probably wont help you arrange any faster, but could be easier on the eye and understanding the structure even better, visually.

The rest:

[details=“Click to view contents”] What I find useful about clips in other sequencers is how to keep order of all the clips, easier to do retakes/variations etc. Be able to rename properly. And be able to add the clips where ever you want, sample accurate. Like mentioned before, I have a sound/clip, i want it to be “there and there”, while its not quantized to an entire pattern length, not have to go into pattern editor to move the sound, not have to destructively edit the sample, or add offset commands etc. Just grab the clip and place it where you think it fits. Or be surprised when you offset it a beat, or finetune it just a few ms to get the extra precise punch or whatever.

After countless discussion about this, I only see two really fully flexible systems.
1:
Can’t we just add a clip pool that works independent of the current pattern system.
Perhaps the only technical change to the current pattern system is that there will be a hidden reference to all the clips and position/range of the clip that is used in each pattern.
A pattern is still just all the data on all lines within the pattern boundaries, no matter how large each clip is. When copying/delete/changing a pattern that contains clips that cross the pattern boundaries, it does not matter. This will just crop the clips to within pattern boundaries. But then the user can optionally resize the clips back to original sizes. In other words, the default behavior of pattern sequence editing is to nondestructively chop of the ends/beginnins of clips that cross pattern boundaries.
Seen from the clip point of view, resizing the clip in the pattern editor is nondestructive. Seen from the pattern view, the same operation is destructive.
Clips have properties, like original size and content and is stored separate in a clip pool. And can also optionally be edited separate in a clip editor (but you don’t have to! Any content changed directly in pattern editor is destructive for the clip, but the resize of the clip in the pattern editor is not destructive for the original clip). Patterns ignore all this, what you see is what you get within the pattern boundaries.

Overlapping clips are not allowed. Unless you actively merge them to separate note/fx columns in same track (this is optional, and will not happen automagically).
To sequence more freely with overlapping clips or clips with different tempo etc, just use instrument-patterns instead.

If you use very small patterns, chances are that you work very “block oriented” anyway?
If you want to do things more freely/unquantized , chances are that you use some larger patterns to begin with?
To better navigate vertically in huge patterns, it could be useful to have markers you can insert anywhere in a pattern. Then a function to jump to next/previous marker, and to mark block of data within two markers etc, and a marker list implanted in the pattern sequencer as well. So in theory you could just as well skip the entire pattern system if you want to, and only use one huge pattern for the entire song, and then use markers list for easier navigation (jump between markers instead of jumping between patterns in the pattern sequencer.

2:
Another entirely different solution to all this is to let the current pattern system only be an optional sub-framework that you add to a classic DAW like linear system.
You can even have multible pattern sequences to exist side by side, totally independent.
So:
-If you wanna sequence traditionally DAW like, just never add the pattern framework. Just use clips in a linear way. Rely on markers for better navigation. The “pattern editor” looks like just one huge pattern. But it is not a pattern really, just linear endless tracks side by side. Each clip can be edited in a clip editor.

-To sequence old school tracker style, then only use one pattern framework, and forget about the rest.

-To sequence advanced, add several parallel pattern sequences (that can have different sized patterns, independent tempo etc).
You will see this sequences side by side in the main arranger window and the pattern sequencer window. Each pattern sequencer having its separate matrix system etc.
And you can also use clips outside the pattern framework at the same time.
A pattern sequence is just a section of one or several tracks, ordered and sequenced in traditional pattern style way.
In the main sequencer/arranger window, a pattern sequence framework/section will just look like any other clip, either collapsed to one clip, or extracted to individual tracks and clips that exist inside each pattern sequence.

This might seem messy, especially without any pictures to back up all the words, but I think it’s not. It’s just flexible. You make it just as easy or advanced that you would like it to be…
[/details]

I like the way to arrange a track in sunvox, This is simple and effective. <_<

I have been thinking past several months whether we really need to be able to reuse patterns. In my personal experience this only causes me trouble (accidentally forgot to uniquify the copied block and I destroy earlier part of the song). Maybe we should just have linked blocks in pattern matrix but no linked patterns what so ever.

Here’s a simple ASCII drawing of what I mean. I’m not sure Taktik’s post addresses this?

Before nudge:

  
C-4 Pattern 1  
---  
D-4  
---  
---  
  
--- Pattern 2  
---  
C-4  
---  
D-4  
---  
  

After nudge:

  
--- Pattern 1  
---  
---  
---  
C-4  
  
--- Pattern 2  
D-4  
C-4  
---  
D-4  
---  
  

Obviously, the above is a bad oversimplification of what two patterns look like.

In my “Onion Skin” idea, I was able to activate some sort of selection tool, select two notes, and drag and drop them “wherever I want”. Once I submit? this layer (like a web form?) I get booted back into the normal PM, and Renoise has done all the dirty work of merging. When I go back to the “Onion Skin” maybe ‘C-4, D-4’ is stored in a “clips” array and I can pull them out and drag more of them anywhere onto the pattern(s)?

Basically, an onion skin is a set of tools and data storage on top of the PM, as summarized by rhowaldt.

In my mind it’s a bunch of lasso tools, maybe even automatic pattern analysis, and a list of clips I can pick and chose from if I ever want to drag and drop more of the same thing onto the PM. It’s important to break the block way of thinking in this mode, but it’s understood by the user that this mode is a superset of what already exists.

I also thought about this a few weeks ago. Or, maybe I read one of your past posts in the past and it festered in my mind for several years? Whatever the case, I think this is a good idea.  
  
The way I describe it is that, in the future, all projects are one huge pattern.  
  
If I want "multiple patterns" I pull up some sort of "Advanced Edit" like dialogue and put a checkmark next to "Visualize blocks of 0x80". This is just a way to constrain the mega pattern so that it behaves like the old-school tracker. It's still just one huge pattern, but it reverts Renoise to it's current behaviour from a GUI perspective.   
  
More complicated "visualizations" would be welcome, maybe sub-visualizations (a pattern within a pattern), and these act as a sort of clip pool? I dunno, I think I'm repeating what you are saying, just trying to use different words.  

EDIT: I’m breaking my own rule talking about this… I want this thread to be focused on ideas that tweak the existing system, not an overhaul, for which we already have plenty of threads. Doing the hide thing, like you did. :)

Ok. Yes, then we are basically talking about the same things here. This is like my first option I wrote about.
The patterns and thus the matrix is dividing and representing the data that is there. No matter if it is a clip that has “generated”/inputed the data.
It doesn’t need to know there is a clip system at all.
We just need some rules for what should happen and how to visualize things that are reused/linked (either pattern or clip).
The clip pool is basically just a separate pool of clip data that is not necessarily stored in any pattern.
How these clips are created is another story and not so important in this discussion( but I wrote some thoughts about that in this ancient post.It’s about clips being automatically made, and using tagging and smart sorting filters to keep control of them.
A clip can also be a audio clip, and perhaps automation clip and fx clip or whatever we find useful divided into separate clips.

Anyway, a separate clip system or not, a better way to move data between patterns is much needed. No need to thing about clips to do that.
Like danoise has pointed out very well about the ‘Improved “continuous” mode’ in the Zoomable pattern thread.
Also the post I wrote about pattern data being automatically and temporary bundled for easier handling (as you also linked to) is just another example of several ‘arranging tools’ coexisting.
So yes, I agree with you. The patterns we have now should not limit us in any way. It should adapt to us, and not the other way around.

linked slots makes the most sense in my head but any thing which makes A/B comparison between pattern variations more efficient would make me happy.

it would be very nice to be able to open up a project and quickly try out, for example, a half tempo drum beat by creating the new drum pattern and then substituting the old drum pattern

might be that some sort of extra functionality of managing unused patterns would come in handy. maybe we should have views which separate the set of clips/patterns from the layout/arrangement of the tune. would make it easier to have multiple versions of arrangements as well.

edit: ok, seems like what i wrote above is basically what’s been called a clip/pattern pool by others. to take things one step further: shouldn’t we have an arrangement pool as well?

I’ve not played aroung with the Pattern Matrix much. But the Pattern Matrix as it is basically mutes / unmutes tracks within patterns doesn’t it? Could a future option be that rather than muting/un-muting parts, the Pattern Matrix ‘triggers’ parts within a pattern? Then you could mix and match parts from different patterns.

This would give Renoise the basic function of Ableton Live’s session view. But for people like me that use Renoise to compose and Live to play gigs, this alone probably wouldn’t be enough to move over to Renoise exclusively. To do this, I’d also need the Launchpad to work in Renoise exactly as it does in Live. And I’d need some way of recording and editing performances.

I don’t think it’s helpful for Renoise to try and play catch-up with other programmes. It needs to develop in its own way. Ironically, in my view, this is exactly what has gone wrong with Ableton Live - they’re trying to make it all things to all men rather than focussing on the things that make it unique.

I agree with you.

So on that note, my opinion is that Renoise is great for composing. That is, typing songs. That is it’s historical strength. Instead of musical notation and paper like it was done 200 years ago, it’s on a computer. Trackers are great at this.

What I realized is happening is that “composing” is being redefined to mean “noodling”.

In the first post I quote BOTB who used the word “compose” and brought up expectations around the Pattern Matrix. Therefore, for me atleast, somewhere in the existing interface there should be a way to meet that expectation because, well, that’s what people expect? E.g. ‘Put note, here, here, and here’

I’m looking for a compromise.

this also occurs to me from time to time

This is something I also wonder. Personally I always make every pattern unique as I know there is quite a high likelihood I will go back and either add variation or automation which I wont want repeated through each instance of the pattern.

The only ways I can see of advancing the arranger are to break the old pattern mould.

If each track was to effectively be its own pattern, never tied to any other, each track could be of any arbitrary length, rather than being the same as length of other tracks.

The arranger (matrix) would show track lengths graphically.

Each track could be lined with with single pattern line precision within the arranger, with quantise modes to have keeping to beats and bars easier.

The pattern editor would still look the same, except you would be forced to use the mode where you see previous/next pattern at the start/end of currently playing section, and tracks which going over more than one pattern have a clear dividing line in the pattern editor.

You would still have Blocks, to make editing sections easier. You would set a default length and start offset for the song. This would then replace the overall patten sequence and looping via that.

Looping of different length and positioned sections could be achieved by highlighting in the arranger and selecting loop selection, or showing only a single track for editing and looping that.

I know this is pretty much Clips but I’m just trying to describe a workflow change that may work in Renoise without using terms which people may already have connotations about.

Any of that make sense and seem like it may work?

That’s what I was thinking… And I don’t know if I’m stupid or something but I’m still not getting it. Why do we need clips? WHY? If it’s the “reusing” part then isn’t simply copying and pasting PM slots the same as “reusing” them?

a good thing with this is that it will be pretty transparent to anyone who doesn’t want to use it. what i think is good about it: it’s great for trying out variations. especially in the phase when you haven’t fully fleshed out the tune with those small variations like fills and such but where you are trying out different things and work with a lot of basic blocks to get a feel for where a track is going.

also, if the devs/scripters go down this path then i think that we will eventually see added functionalities like clips which loop until the block has reached it’s end and possibly asynchronous clip launching.

well, sure. that thing here is that i think a way of reusing data is just faster and neater. it will be easier to read your own and other’s xrns files.

people writing sheet music has been doing this since day one: “repeat this part x times”, “jump to coda”. defining a piece of music by reference is simply smarter (when it’s possible). it’s well known to all of us who work with programming and databases: keep only the data in one place and point to that place.

didn’t read complete thread, but I like the pattern matrix just fine the way it is now.

Whatever happened to that zooming animation.gif? (Made by Danoise, I think?) I’d like to see that turned into reality!

Ghost clips is a feature of any standard sequencer. It simply makes a lot of sense that Renoise should offer this too. As mentioned above, the first reason is that it’s much faster to try out sequence combinations with than copying/pasting data. The second reason is that the data is shared, so you modify all instances of the clip at the same time.

To me, this is something very important. When I first downloaded the new Renoise version with the pattern matrix, I was very surprised that Renoise couldn’t do this, since I thought it was obviously the whole purpose of the feature.

Long thread! I missed it! Haven’t read everything yet! But! Just wanna throw the basic idea out:

The main difference when arranging in Renoise compared to most other DAWs, is that where Renoise ‘divides’ the song in patterns, most other DAWs work with ‘lines’ that simply INDICATE the end of a bar. Renoise ‘forces’ you to think in patterns, as if sounds placed in a pattern are not allowed to cross the equivalent ‘lines’ of other DAWs. If Renoise’s pattern endings and beginnings were to be a mere indication, instead of an obligation, and a song in Renoise would actually be just one BIG ASS pattern, where the pattern-length would become block-size, I think Renoise would overcome the biggest obstacle.

i really like the patternblocks. helps me visualize the song. and when i want to have something overlap, i can do that easily as well, as the block-system does not limit the user in any way as it currently is. essentially, it is just one big-ass pattern, only the view divides it into blocks. but if you play it, it does not behave as blocks, it just plays on and on.

so, i’m not sure i completely agree with you…

Okay, assume I want to move every hi-hat in track x down 8 lines. Or what if I want my filter automation to overlap 16 patterns. These are very simple, basic things to do, yet require quit some repetitive work in Renoise. It would help if I could select/copy/paste/move/whatever columns over the entire song, instead of repeating a certain action in every pattern over the whole song, very much minding notes that need to MANUALLY be entered into the next pattern, instead of where in any other DAW, notes would remain in their relative place. It’s just the way Renoise works, I’m sure and hey, there’s no need to defend Renoise against me. But these ARE things that bother me, whereas most other DAWs would treat the melody in a track as a whole, Renoise simply cuts it in patterns, pattern matrix or not.

I agree, linked patterns would only makes it tedious.

how about having one ‘scatch’ PM and one ‘song’ PM, that way you could use the scatch matrix to try out ‘scenes’ and generally make a mess and have fun :D because you are working with cloned stuff it doest matter…

then when you have a scene that works you would copy it to the ‘song’ PM aka ‘arranger’… one thing that would be needed is to have automation and note clips being independent in this idea.