Pattern command: "Jump" (6 types, probable)

Thanks for running Renoise.

I have sketched out the jump command to be as simple and highly applicable as possible.
In particular, if combined with the Yx command, it will be possible to control with probability whether or not the line itself is executed, which I believe will enable a variety of new performances with simple expressions.
Please consider this.

Sorry if I am saying something strange.

1. Relative jump from current line to xx lines up

  • Command example: “JUxx
  • xx=specify jump to xx lines up from current line

If the whole line is 00-31 (0x1F), then When current line is 15 (0x0F):

xx | line number to jump to and comment
---+-----------------------------------
00 | 15(0x0F) Loop the playback of 0x0F, `Y0`=Play 0x0F only once without looping, `YF`=Loop the playback of 0x0F
01 | 14(0x0E) Jump before playback
0F | 00(0x00) Jump before playback
10 | 31(0x1F) Jump before playback
  • Yx command allows specifying the jump probability

2. Relative jump from current line to xx lines down

  • Command example: “JDxx
  • xx=specify jump to xx lines down from current line

When the whole line is 00-31 (0x1F)
When the current line is 15 (0x0F):

xx | line number to jump to and comment
---+-----------------------------------
00 | 15(0x0F) Loop the playback of 0x0F, `Y0`=Play 0x0F only once without looping, `YF`=Loop the playback of 0x0F
01 | 16(0x10) Jump before playback
0F | 31(0x1F) Jump before playback
10 | 00(0x00) Jump before playback
  • Yx command allows specifying the jump probability

3. Absolute jump from current line to line xx

  • Command example: “JHxx
  • xx=Line number to jump to, specified in hexadecimal

When the whole line is 00-31 (0x1F)
If the current line is 15 (0x0F):

xx | line number to jump to and comment
---+-----------------------------------
00 | 00(0x00) Jump before playback
01 | 01(0x01) Jump before playback
0F | 15(0x0F) Jump before playback
10 | 16(0x10) Jump before playback
  • Yx command allows specifying the jump probability

4. Relative jump from current pattern to xx pattern previous

  • Command example: “JPxx
  • xx=specify jump to xx pattern previous from current pattern

When the overall pattern is 00-31 (0x1F)
When current pattern is 15 (0x0F):

xx | pattern number to jump to and comment
---+--------------------------------------
00 | 15(0x0F) Play 0x0F again and loop
01 | 14(0x0E) Jump before playback
0F | 00(0x00) Jump before playback
10 | 31(0x1F) Jump before playback
  • Yx command allows specifying the jump probability
  • This command can also be used for phrases. In that case, it jumps to xx=relative phrase number instead of the pattern, or to the current phrase number if xx=00
  • Consider the option to display the pattern number in hexadecimal
  • Consider the option to display phrase numbers in hexadecimal

5. Relative jump from current pattern to xx pattern next

  • Command example: “JNxx
  • xx=specify jump to xx pattern next from current pattern

When the overall pattern is 00-31 (0x1F)
When the current pattern is 15 (0x0F):

xx | pattern number to jump to and comment
---+--------------------------------------
00 | 15(0x0F) Play 0x0F again and loop
01 | 16(0x10) Jump before playback
0F | 31(0x1F) Jump before playback
10 | 00(0x00) Jump before playback
  • Yx command allows specifying the jump probability
  • This command can also be used for phrases. In that case, it jumps to xx=relative phrase number instead of the pattern, or to the current phrase number if xx=00
  • Consider the option to display the pattern number in hexadecimal
  • Consider the option to display phrase numbers in hexadecimal

6. Absolute jump from current pattern to pattern xx

  • command example: “JXxx
  • xx=pattern number to jump to, specified in hexadecimal

When the overall pattern is 00-31 (0x1F)
When the current pattern is 15 (0x0F):

xx | pattern number to jump to and comment
---+--------------------------------------
00 | 00(0x00) Jump before playback
01 | 01(0x01) Jump before playback
0F | 15(0x0F) Jump before playback
10 | 16(0x10) Jump before playback
  • Yx command allows specifying the jump probability
  • This command can also be used for phrases, in which case it jumps to xx=absolute phrase number instead of the pattern, or to the maximum phrase number if xx=00
  • Consider the option to display the pattern number in hexadecimal
  • Consider the option to display phrase numbers in hexadecimal
7 Likes

oooooooh, this would be fucking amazing… especially if functional in phrases. would open up a whole host of new, interesting generative behavior.

Excellent idea!!:fire:

2 Likes

I have incorporated your ideas into the post, as the commands 4-6 could be used in the phrase as is. Thanks :+1:

I think some of it could really be helped by a script running in the background.
use “renoise.song().patterns[].tracks[].lines[].effect_columns[1]” to parse the command and jump to the given position in the song. If the API allows it, I haven’t explored it in depth. It would certainly enrich the experimental scene, but I’m not sure of the use for “non-experimental” users. But I’m not against anything.

1 Like

Has anyone made a tool for live coding yet?
If there are no publicly available APIs or other tools to control sequences, maybe someone should sketch out some specifications of what they should be and propose them in a separate topic.
I am not sure yet, but I suspect that a great deal of consideration needs to be given to the design of those language spaces, etc.
Many live coding environments are unstable, such as SuperCollider, FoxDot, etc. If Renoise becomes a robust live coding environment, it will be even more outstanding among the many DAWs.
The prospect of Jump Command makes me dream and get excited.

But perhaps it is still too early to think about them. I think we need to slow down, calm down, and think about what this jump command should be and brush it up.
I have tried to make this as easy and simple to develop and implement as possible, but I am still lacking in sophistication.
In particular, the relationship to the Yx command is ambiguous and reeks of bugs.
There would be a risk of rework to start implementing it yet.
I feel that I need to clarify areas that I am not fully aware of.
I would be happy to hear what you have found out for those.
Thanks for the stimulating input. Sorry if I am saying something strange.

Come to think of it, there is a difference between a live coding environment and a tracker program, like an interpreter and a spreadsheet.
Maybe some sort of sophisticated interpreter to control the spreadsheet would be helpful.
Sorry for being so vague.

Edit:
I got overexcited.
I’ll calm down.

that’s all is fine
It is completely normal that a person has his own ideas and a different perspective on a problem.
Then the diversity arises :slight_smile: I’m also always thinking about some other ways to create my sound synthesis. I have X ideas in my head until it slowly leads to ADHD when I can’t finish anything, because something else comes to my mind at that moment.

1 Like

Thank you for your kind words, I appreciate them. I, too, have had many experiences of having too many different ideas and associated tasks that had to be done, and then being overwhelmed by them, despairing, and ultimately getting nothing done.
Like those, I think this jump command is a strong stimulus for various design dreams. And I fear that if we expand the concept too far, as you might guess, nothing certain will be done, and it is more likely that we will not even get it implemented.
I have thought through the sketch of this command quite carefully to make sure that we get a big result at a small cost, relative to the cognitive load on user operations, development costs, future scalability, etc.
I honestly want to ensure that the proposal and appeal are made in a concrete and clear way that feels immediately doable for Renoise’s key people without diffusing the focus too much.

This is certainly an interesting concept,
but it would really like more support directly in renoise.
Just checking that you don’t get the song into the loop, adding a jump counter, etc.
Not to mention the final export of the song or part of it.
All this needs internal support i think.

I see. Since the size of the export file will be infinite after looping, it would be nice to have the following in the Preferences -> Files.

  • Maximum export time (hours, minutes, seconds)
  • Maximum export line (dec or hex, Depends on the value of Preferences -> GUI -> Line number format) //This might be a lighter process

It would be possible to export a complex generative piece of music in an instant that would take days to play it all.

I noticed the following problems

  1. command Jx was assigned for Panning Columun
  2. effects commands do not have lower case letters

As for 1, it is a little confusing as a UI, but considering that it is shown below, I don’t think it will be a problem in the system operation.

  • The command example I am considering is not Jx, but JXxx, so it is not the same expression.
  • There is already a precedent where Zxx and ZXxx commands are defined as different meanings.

As for the 2, it probably cannot be used because it is assumed to be uppercase to improve readability and Shift will enter it in the right column.
I will rethink the command example in a few days.

Since I do not speak English and have little sense of English vocabulary, I used the following as a reference.

For now, I would change each command example to the following

  1. JUxx (up)
  2. JDxx (down)
  3. JHxx (hex)
  4. JPxx (previous)
  5. JNxx (next)
  6. JXxx (hex, exit, execute)

This is the kind of image that could be used.

image

1 Like

Since the existing Yx and -Yxx commands control the probability of notes, how about using only the Yxor -Yxx specified in the most recent FX of a track with no notes, to avoid complications?
Since the jump is made before the line is played, I think we can sort out the ambiguity by saying that the priority of the enabled jump probability is higher on the left side. As follows.

  • Probability Y33 of JU00 is valid
    image

  • Probability YF of JD00 is valid
    image

  • Probability Y5 of JH00 is valid
    image

1 Like

What about using the jump command in MasterFX to make a jump after the line is played?
With that form, I think it would be possible to manage the pattern as a “Nice round number” such as 0F or FF, even when used to jump somewhere after the last line is played.

In the following case, the image shows a jump to line 00 with a probability of Y33 after playing line 03.
image

1 Like