Add buzz styled sequencing to Renoise

@XG2003, you really are having trouble letting this go aren’t you?

It’s been made clear that a revised pattern matrix isn’t going to happen in this beta phase

So what exactly are you trying to achieve here?

I agree, the pattern matrix is not great, but it does get the job done albeit in a cumbersome way at times. I think everyone gets your point that the BSE has some great features that you really like. You have also pointed out there are many examples of how sequencing is done better in other DAW’s.

Lots of people want improvements in how sequencing works in Renoise and I am sure when the dev’s get around to exploring how to improve song sequencing they will look at other DAW’s including Buzz for ideas. It’s just not going to happen now.

Unfortunately for you if you want to get the most out of Renoise 3 now then you are going to have to live with it’s Pattern Matrix for a while.

If you don’t realise that then I suggest you go seek some help, ranting and insulting people here is not going to do you any favours or help you with your anger issues.

So now that you have made your point (many times over) the only thing I am left wondering is what exactly are you trying to achieve here?

You don’t have to delete the original pattern. If you don’t want it to sound off in that position any more just mouse-wheel click it. Of course deleting the original is going to delete the aliases…

edit: anyways to be clear I’ve always thought it’d be cool to have like, an area where you can make patterns separate from the pattern matrix, and either copy paste them in or “call” them from the matrix somehow, and I’m not at all opposed to improving the current design.

The only thing I flatly disagree with is the sentiment that the current pattern matrix is bad and terrible.

Those images you come up with looks horrible, they’re not even comparable because they go in the wrong direction, horizontal crap.
I’m a very unorganized guy, but even i can make a track in Renoise and i have no problem keeping track of where things are.
Right now i’m working on a 4/7 + 4/9 beats track, it’s super easy in Renoise so i wonder how you do that in the excellent Buzz Sequence Editor?

lol

4/7 4/9
Sure about that ?
Cause you might have something new invented
http://en.wikipedia.org/wiki/List_of_musical_works_in_unusual_time_signatures#4.2F3.2F2_or_4.2F3.2F4

Or do you mean 7/4 9/4 ?

Haha, you’r right, i doubt i have invented something new here. :lol:

You can and it has been explained to you a few times before by different people: You can still unalias any particular block and change its contents without affecting the rest and without having to copy or duplicate anything.
You act as if you know very well how Renoise works but you demonstrate you clearly don’t know yet everything about Renoise and well, i suspect you are currently getting so much information thrown at you it is probably hard for you to keep up and read everything but i would advise you to do so because you miss out on some great tips here.

Currently with the phrases and the MaYbe command, i don’t see much reason to duplicate multiple percussion snippets in the PM where it was in fact the quickest way to alias or duplicate blocks.
Specially on breaks, you write one in a phrase or for all that matter just in the pattern editor (Yxx works there just as fine), use the Yxx in a partciular fashion that it gives satisfactory results on every play but still performs different every play. Automatic variation on demand with less work ;)

If you only stick around here wasting your time to cast your emotional grudge, you for sure won’t find any good workflow in Renoise. Just give it an honest chance, lock yourself up for a couple of days and really try the different things out. Come back with questions about stuff that does not behave obvious, there might be a solution to it. I’m sure there will be a couple of things you will start to appreciate and there likely may remain a couple of things you still don’t like, then so be it. If you dislike this plan at all, well you proposed a lot of alternative solutions that do precisely what you desire, it might be your better worthwhile to invest time in those alternatives.

dude is clueless.

To be fair, you can’t unalias the ‘master’ block in the 1st pattern that the others are aliases of. There is not really any reason to use such a master/slave paradigm for alias clips, usually in other sequencers they are called ghost clips and are all equal so you can unalias the original one.

Anyway, for 3.0 the developers have made some incredible additions in other areas - the new sampler totally blows me away - so I agree, it’s not the right time to be focusing on what they chose to leave alone for now.

In this interview dblue does mention this area as his first “Ideas for the future”:

I’m sure when they turn their attention to it, they will come up with something great.

Hilarious. There is nothing that the pattern matrix could not do? Then why is there no video showing me this? It’s all ‘so obvious’, but not one of you can make a video showing how to do it?

Don’t use aliases? The whole point of me wanting the BSE to be implemented in Renoise is precisely to avoid having to use cut and paste. That’s what clips (and aliases) are for. What a laughable response.

When I first read your post, I thought to myself “What an idiot I am, I should have tried that unaliasing thing on the first block”, and thought “How am I going to hide the fact that I never tried it”.
So I went and tried it. You can’t do it. Then I remembered - I’d ALREADY tried it, when somebody else told me about unaliasing. You can’t do it.

So… “You act as if you know very well how Renoise works but you demonstrate you clearly don’t know yet everything about Renoise”…

Hilarious…

Does this video not explain it clearly enough?

ALL the other DAWs (unless I’ve missed one) use clips… clips that aren’t attached to a particular position in the timeline. Only Renoise gives a pattern an arbitrary number that it HAS to stick with, and all aliases are tied to that original sequence position.

Jesus, what do you think I’ve done in this thread already, numerous times? There ISN’T a solution. Nobody can even produce a video showing how they use the Pattern Matrix.

Thanks for your overwhelming concern… in other words, you don’t want people to be able to DISCUSS the blatant problems with the Pattern Matrix…

Nothing to see here… move along…

Find another thread then. Are any of you FORCED to come and read this thread? Why does it bother you so much? Seriously, ask yourself that. There are plenty of other threads in the Ideas and Suggestions forum, are you losing sleep over them for daring to come up with new IDEAS? Scary, aren’t they…
It’s not up to you to decide what other people can and can’t talk about, why do you think it is?

Oh my god… did my eyes deceive me, or was that interview dated March 2011?
I’m not remotely sure “they will come up with something great”, seeing as they’ve already come up with the Pattern Matrix, and what a disaster that is…

My sentiments ENTIRELY. Thank god this guy is working on the team, but why on earth have they ignored the most important part of the program, and concentrated on the sampler? Well, I can only pray that dblue gets to implement all of the above, this has really cheered me up.

One thing intrigues me though, from that interview, he says “Forget about reusing patterns in the pattern sequencer, just always add new patterns into the sequence so that each pattern is unique, it saves a lot of headaches later on.”

Presumably this was pre-Pattern Matrix? I can’t remember when it came out.

That was actually said by Erik Jälevik (sharevari), not me. It’s simply a tip that he applies to his own personal workflow, nothing more.

I’m personally quite a fan of the Pattern Matrix these days, and especially a fan of aliases. You can see clear evidence of this in my demo song “Syntechtic Sugar”, which is comprised almost entirely of aliased pattern track blocks.

Is the Pattern Matrix perfect? No.
Is there room for improvement? Of course.
Do the imperfections prevent me from making music? Hell, no.

Anyway, I think it’s important to keep in mind that the CDM interview was done in a very loose and casual way. I was asked what possible things I might like to see in a tracker like Renoise, and so I gave a few of my personal thoughts. This definitely wasn’t intended as some kind of official road map for Renoise, so I apologise if anyone found that misleading.

No, apparently you are, Djeroek, because you can’t unalias the first pattern which has been aliased…

Sorry, I misread the interview.

What sort of improvements do you see happening in the future, dblue?

Do you still want to see the improvements you mentioned in the interview? Are the rest of the team interested in those improvements? Is there hope?

Dude I am of the few who tried to actually help you , not only in this thread but also in the other one …besides your constant nagging you don’t even have the dignity to treat those who tried to help with some respect .
Why is there no video showing how we work with the pattern matrix , because we don’t use it , we use the renoise TEXTEDITOR for special respected Renoise members only .
adios

mhm must be a spiritual thing :lol:

err …are you the gatekeeper? :eek:

EDIT Making a dedicated thread for this.

Hi, here’s a function to use if you want to un-alias the first block.

Click to view contents

SEE BELOW FOR AN EXAMPLE OF SLOPPY CODING BY KMaki. I can’t believe this thing worked. I actually messed up the for loops with pairs iterating so bad - switched key and value variables with each other. :rolleyes: So don’t use this.

  
  
  
  
  
  
function unalias_better()  
 local pattern = renoise.song().selected_pattern  
 local track_index = renoise.song().selected_track_index  
 local pattern_track = pattern:track(track_index)  
  
 local was_alias_to_index = pattern_track.alias_pattern_index  
 if was_alias_to_index == 0 then  
 --It's not aliased  
 --[[  
 Extra behavior: Check if there are aliases for this pattern track in song  
 if aliases are found, remap them to the first aliased pattern track in song,   
 "unhook" this one  
 --]]  
 local found_aliases = table.create()  
 local sequenced_patterns = table.create()  
 local this_pattern_index = renoise.song().selected_pattern_index  
 --Check sequenced patterns  
 for pattern_index, sequence_index in pairs (renoise.song().sequencer.pattern_sequence) do  
 local pattern = renoise.song():pattern(pattern_index)  
 --don't remap track_index when iterating  
 local pattern_track = pattern:track(track_index)  
 --check if listed in sequenced_patterns  
 local is_in_sequenced_list = false  
 for p_i, index in pairs(sequenced_patterns) do  
 if p_i == pattern_index then  
 is_in_sequenced_list = true  
 break  
 end  
 end  
 if not is_in_sequenced_list then  
 --not listed yet, add there  
 table.insert(sequenced_patterns, pattern_index)  
 end  
 --check if aliased  
 if pattern_track.alias_pattern_index == this_pattern_index then   
 --an alias to current pattern track found  
 --check if it's already in found_aliases table  
 local is_added = false  
 for p_i, index in pairs (found_aliases) do  
 if p_i == pattern_index then  
 --already added  
 is_added = true  
 break  
 end  
 end  
 if not is_added then  
 table.insert(found_aliases, pattern_index)  
 end  
 end  
 end  
 --Check UNSEQUENCED patterns (go to the end of "found aliases" list)  
 for index = 1, #renoise.song().patterns do  
 --check if this is seq:d  
 local is_sequenced = false  
 for seq_i, dummy in pairs(sequenced_patterns) do  
 if index == seq_i then  
 is_sequenced = true  
 break  
 end  
 end  
 if is_sequenced == false then  
 local pattern = renoise.song():pattern(index)  
 local pattern_track = pattern_:track(track_index)  
 if pattern_track.alias_pattern_index == this_pattern_index then   
 --an alias to current pattern track found  
 --check if it's already in found_aliases table  
 local is_added = false  
 for p_i, index in pairs (found_aliases) do  
 if p_i == pattern_index then  
 --already added  
 is_added = true  
 break  
 end  
 end  
 if not is_added then  
 table.insert(found_aliases, pattern_index)  
 end  
 end  
 end  
 end  
 if #found_aliases > 0 then  
 --Aliases for this mother found in song - Time to magic  
 local first_alias = renoise.song():pattern(found_aliases[1]):track(track_index)  
 --unalias the first alias  
 first_alias.alias_pattern_index = 0  
  
 --copy from this (the mother)  
 local mother_pattern = pattern  
 local mother_pattern_track = mother_pattern:track(track_index)  
 first_alias:copy_from(mother_pattern_track)  
  
 --If there was only 1 alias, the job is done  
  
 if #found_aliases > 1 then  
 --map rest of the aliases to the first alias (now mother)  
 for i = 2, #found_aliases do   
 renoise.song():pattern(found_aliases[i]):track(track_index).alias_pattern_index = found_aliases[1]  
 end  
 end  
 else  
 --No aliases for this mother found in song  
 end  
 else  
 --It is aliased  
 --un-alias  
 pattern_track.alias_pattern_index = 0  
  
 --copy from original  
 local mother_pattern = renoise.song():pattern(was_alias_to_index)  
 local mother_pattern_track = mother_pattern:track(track_index)  
 pattern_track:copy_from(mother_pattern_track)  
  
 end  
  
end[/s]  
  

Tried this just now with my shortcut wizard tool, but this should work as a generic function too. In short, this is a replacement for the vanilla un-alias shortcut. It just checks also if this patterntrack is a “mother” patterntrack for aliases. If it is, it remaps the first (in sequence) found “child” alias to be the mother for every other “child” alias. (Obviously the numbers change too…)

Oh what the hex. Heres an xrns. This will create a context menu entry for the pattern matrix, and a keyboard shortcut under “Pattern Matrix:Edit”. Hope this solves at least one problem for you, XG2003.
com.kmaki.BetterUnalias_V1.1.xrnx
(DISCLAIMER: NOT EXTENSIVELY TESTED. FIXED A PROBLEM JUST NOW, THOUGH.)

Sorry about the mess - made a dedicated thread for the FIXED tool. it was more broken than Hindenburg.

THANK YOU KMaki!!! I will try it out today and let you know how I get on. I’m sure lots of users will benefit from this too.

Can’t you just use the section function to name stuff? 8 patterns = one section (or something)
Then you can also navigate between sections using the go to next/previous sections function… except in the pattern matrix for some reason. (+1 adding this to the pattern matrix)