Add buzz styled sequencing to Renoise

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)

No prob! Noticed there is still some bugging out with the attached tool, I’ll try to fix and clean things soon. But all in all, this should be doable.

I like to name each pattern for each track separately, which I can’t do in Renoise. Almost all other DAWs allow this. I will try to use the section function to help split my songs up, but it’s all really a workaround.

KMAki, just had a test of your tool and it works perfectly, saves me a LOAD of work, thank you so much again.

Glad it works! But please note that because I’m a sloppy dunce, even the v1.1 is seriously broken! Udate to v1.11 here!

This thread is far tl;dr but I have to admit I agree completely with the sentiments I’ve read from xg regarding voting on features and questioning some of the priorities that instead do tend to get addressed. Beta release time tends to get a little touchy in these forums and it’s a shame as we all are here because we care about making the product better…

This exact topic did indeed come up in january/february 2011? or whenever 2.8 beta first dropped. I recall clearly suggesting something similar that you’ve suggested XG - vote on features, then devs maintain and share a prioritized spreadsheet to-do list. AFAIR the idea got people in a tizzy and I just gave up but cheers to you for carrying the torch of democratic feature implementation. It does certainly seem that some of the great ideas that come up here in the ideas and suggestions thread fall through the cracks…

:)

Speaking for myself - the current solution with aliases is admittedly somewhat confusing. It of course WORKS if you know how it works, but it’s not a super-obvious way of working. I use aliases frequently and they make repeating stuff easier for me. Now that some probabilistic stuff is also possible, avoiding overly repeating pieces is also easier than ever.

The main problem as I can see it is the ‘triple layering’ of sequence position/pattern/pattern track (=matrix block).

I faintly recall a forum remark at a 2.x release (whichever introduced the aliases) in which someone who had ‘inside info’ noted that it was discussed whether the “patterns” as such are needed at all. If such discussion has taken place, I can see where it’s coming from. I see the aliases as a step towards the downfall of the “pattern” as the MAIN organizing block of song structure. (Pattern = a specific combination of pattern tracks)

IMO the problems in eliminating the “pattern” from the “sequence position”/“pattern”/“pattern track” - triad are’nt tiny though. For now the “pattern” holds the line length of sequence position. As I see it, eliminating this piece logically would lead into “pattern tracks” (or “matrix blocks” or “clips”) with individual lengths. And that would lead into the requirement of line-level sequencing, as is the case with buzz.

One positive side of this is that I believe this kind of song structure would at least be fully compatible in the case of loading “old style songs” into “new style songs”.

Big stuffs of change here. I’m not expecting this level of changes anytime soon. Not that I wouldn’t be OK with it, but I recognize the amount of redesign needed in this kind of paradigm shift.

I have no interest in changing the pattern matrix, it is fine for what it is, what I want is a separate clip/pattern arranger in its own tab, separate from the pattern matrix (between edit and mix). Not replacing the pattern matrix, but extending the capabilities of Renoise. This would allow those who benefit from the features of the pattern matrix to continue to enjoy it, while those who do not have much use for it but are crying out for a better arranger/sequencer to have a workflow that suits them. I prefer the model in Reason to Buzz, but Renoise really needs a better arranger, and something like the one in Buzz would be a step up.

I don’t see why people are getting so emotional - it does not have to be a zero sum game…

This is a better place for the post I made in the audio tracks thread:https://forum.renoise.com/t/brainstorming-audio-tracks/24794

Hazardous, I think you’re completely right. In my post I suggest replacing/upgrading the pattern matrix, but I think it makes a lot more sense to keep the pattern matrix and continue its development with a focus on its strengths (live performance, simplicity). Meanwhile, introduce a new “composer” or “arranger” view that can focus on separate motives, namely allowing for more complex song structuring, more efficient pattern usage, and more comfortable high level editing.