Automation - things to improve

With the latest update the automation improved a lot, but still I’m not 100% satisfied with it and I wonder what your impression is. Some points that could be improved imo. Or maybe I’m just to stupid to use it correctly

  1. The line tool and the pencil tool are not consistent: In the pencil tool you delete points by double clicking on them, which is not possible in the line tool mode. It’s even not possible to delete points in the line tool mode, is it?

Would it be possible to delete points by selecting one or more points with a box by the right mouse key + e.g. Ctrl and hitting Del afterwards? This is for instance the method REAPER is using.

In the line mode I can move points vertically and horizontally with holding the left mouse key. In the pencil mode it’s drawing new points instead.

  1. Sometimes it’s very hard to hit the points I want to delete and most of the time I have to zoom in first, because no point at all is deleted. Maybe some kind of snapping could help here?

  2. Make simple Ctrl+C and Ctrl+V possible in the automation view to copy / paste automation patterns.
    Ok, it’s possbile when marking a region with Ctrl+left mouse key.

  3. The red points to adjust curves can be moved vertically but not horizontally. I also like to have the possibility to adjust the sensitivity here. Or maybe implement some kind of acceleration?

  4. In line mode there’s a info text: Hold down shift key to erase other points … double click to remove
    Double click and shift key is not working for me? Am I’m doing something wrong?

  5. When being in line mode I often overwrite the automation when switching to another pattern. It only works when exactly hitting an other point in the other pattern

  6. Is it possible to make cross pattern editing in the drawing mode possible? This discussion came up some months ago.

These are the major points, I guess there are still some minor things that could be improved.

What do you think?

4 Likes

Shift key is working for me. But not double click in line mode. Could be reported as a (tiny) bug, or?

No suggestions?

1 Like

Seems I’m the only one.

No, you are not the only one. In fact there have been very energetic threads on this subject in the past. But most suggestions have been ignored. Even people giving up the community and these forums because of this. Fortunately we already have the curves.

From my point of view, a study should be made as to why it costs to control the automation editor, basically the creation and subsequent manipulation of the points and the transition between patterns. There are many shortcomings here.

Although Renoise has many things, there are 3 in particular that prevent it from evolving in some way:

  1. The sequence of patterns. The automation editor not gets along with this. That is to say, dealing with several partrons at the same time is not possible, such as selecting several points of several parts to manipulate them. In fact, it is possible to select them (even randomly), but the operations will only work with the current pattern (cut, copy paste, flip, mirror, presets, etc). Really the sequence of patterns does not seem to be the problem. It is simply not programmed to work like this. To understand each other, it’s like a beta version, unfinished. I think this is the main thing to solve.

  2. The indices of the instruments in the instrument box and their dealings with the patterns. When you change or create a new instrument slot, a new index is created. If that index number is smaller than others, Renoise will update these indexes, generating noticeable delays. This may be the reason why the instrument box is simple to manage. It is not possible to select several instruments to drag in groups, how is this possible? It is not possible to group them in folders (a very demanded solution). It does not allow you to drag a slot or several to reorder. Even editing the names is somewhat laborious (right click and rename). If you want to edit several instruments in a row it costs too much time. The details that influence the time of the edition make a difference when they are as short as possible. For example, there is no switch called Edit. By pressing it, you can edit all instrument names, one after the other, simply by pressing enter from the current instrument, jumping to the following.

  3. Phrase management. Why searching for a phrase within an instrument is so difficult if there are enough phrases? There is no list that shows the names of the phrases. The user identifies the phrase by name. He won’t remember it for an index in hexagesimal (that costs a lot of work). The user should not have his head thinking about these things, if not the composition itself. It should not be distracted by thinking about remembering indexes. This detail probably prevents phrases from being used massively by users. Actually most people only use a few phrases, probably because of that. It is difficult to manage them.

Why have I extended here? In short, most things to improve are “always details that shorten the editing time”. From the point of view of the programmer, it is only necessary to always consider the same prenguta: "ok, we have this here (in this case the automation editor). How do I improve this so that it takes less time to edit it, and at the same time it is clear to manipulate later and easy to identify for the user. "

Editing points massively costs too much time. And it is unfortunate that it happens in the automation editor, when it is something very powerful. From here you can manipulate the sound behavior in thousands of ways, with all those parameters of the effects. The scope of all this is incredible.

There are probably not many people participating in this thread, simply because they do not use the automation editor thoroughly, perhaps because it is tedious and cumbersome. That you have a thing that is continuous (several patterns) and that you can’t really select a specific part (among several patterns) to edit, is very frustrating. That you the mouse above a point (without clicking) and can not see its value is a great deficiency. They are quite a few details.

Probably addressing some easy-to-implement details would be greatly improved.

2 Likes

Si es que si te pones a pensar, pueden haber soluciones intermedias para casos extremos.

Seleccionar varios patrones para editar puntos a la vez, o recordarlos en un portapapeles puede ser demasiado. El caso extremo sería hasta 1000 patrones con 512 líneas cada uno (es decir, hasta 512 puntos, o 511 per pattern). Eso es mucha información. Probablemente el problema no sea programarlo (tal vez sean operaciones con algún pequeño retraso perceptible), sino más bien que el usuario sea capaz de manejarlo.

Yo sé que editar varios puntos de múltiples patrones es posible iterando (uno detrás de otro) en una función a través de una herramienta (usando la API). Ya he hecho cosas así. Pero es tanto a tratar, que lo razonable sería poner una limitación para que la operación no sea muy bestia. Por ejemplo, hasta “32 patrones” (o 64). Eso no son 1000 patrones. Es muy extraño que un usuario seleccionara hasta 32 patrones (incluso aleatoriamente en la secuencia) para editar puntos a la vez. Pero sí será común que pueda seleccionar 2, 3 o 5 consecutivos o incluso 2 o 3 aleatorios. Pues bien, permitamos estos escenarios, al menos. No estoy diciendo nada extraño. Es perfectamente factible programar así.

I can’t say I find the automation editor severely lacking except for working with pattern boundaries. Compared to S1, which is a highly regarded DAW, I find the automation in Renoise generally easy to work with. Maybe it’s due to personal workflow and muscle memory. I’m sure there is room for small improvements.

Only thing is, I can’t find the shortcut for fine horizontal movement. Maybe that’s me being a no0b.

Also, I’m not a fan of the zooming algorithm. If I hover above a point and zoom in, ideally I’d want that point to remain its position in the GUI. The current algorithm just seem to split the scrolling range into two halves and zoom into any of those, which is a bit stupid.

2 Likes

You’re definitely not the only one.

I made a thread about adding more automation points so we can create custom curves and that idea was panned.

Automation so far is a good start, but can really be improved.

1 Like

Thanks for the comments so far. Good that I 'm not alone with it.

Is it possible to record the automation in the automation editor instead of the pattern editor? I just saw a video by @Cie and he recorded automations with the launchpad into the automation editor.

Another question: when recording automation into the pattern editor is it possible to completeley overwrite the previously recorded hex numbers. It only ovewrites when a parameter is changed . If lnot the old values will be left.

1 Like

Yes, change this (look at the icon symbol):
image

Yes, it is possible to overwrite this values. You can use the MIDI input or the right clicking of mouse to write.

Thanks! Writing to automation works but as long I don’t turn the knob the old values won’t be replaced.

Found it: The automation was set to points instead of lines or curves :slight_smile:
And this makes the whole automation much better by far!!!

Next Question: :rofl:
Is it possbile to set the automations to “Line” or “Curve” instead of “Point” for all patterns at once?

Since Renoise no. But it is possible to build an LUA tool for that. In general, from the point of view of the programmer, if you can change one point, you can change them all or a range (one after the other), in one action only.

1 Like

Have to get into Lua as soom there’s more time.

Most user requests can be resolved using LUA tools. What happens is that there are many people who ask for things that they don’t even know that it is possible to solve them with a little LUA code.

Mastering Renoise is not just composing music. It also involves expanding it with tools for certain things. But many people forget this.

1 Like

I feel like I remember to have read about such a lua tool already - that will set all automation to lines. Cannot clearly remember or find it right now, though…

I also would like such a tool. I just had frustrating 10 minutes sessions of clicking through recorded automation setting it to lines, would be very nice to be able to do this with a single click!

1 Like

Selecting many points and moving them is also missing. Or scaling e.g. the sine curves. It is possible to get used to it as it is now, but there’s still room for improvements.

You want to change the “playmode” of the automation of all patterns-track. The playmode property does not depend on the points. Therefore, it doesn’t matter if they exist or not. You just have to iterate between all the patterns and all the tracks and all the devices, checking what kind of interpolation you want.

Read the documentation and learn

This is the API documentation (Renoise.Song.API.lua, search and see):

-- Access to a single device by index. Use properties 'devices' to iterate over all devices and to query the device count.
renoise.song().tracks:device(index) --> [renoise.AudioDevice object]

-- Access to a single parameter by index. Use properties 'parameters' to iterate over all parameters and to query the parameter count.
renoise.song().tracks[].devices[]:parameter(index) --> [renoise.DeviceParameter object]

-- Returns the automation for the given device parameter or nil when there is none.
renoise.song().patterns[].tracks[]:find_automation(parameter) --> [renoise.PatternTrackAutomation or nil]

-- play-mode (interpolation mode).
renoise.song().patterns[].tracks[].automation[].playmode, _observable --> [enum = PLAYMODE]

-- Constants
renoise.PatternTrackAutomation.PLAYMODE_POINTS
renoise.PatternTrackAutomation.PLAYMODE_LINES
renoise.PatternTrackAutomation.PLAYMODE_CURVES

These constants are numbers: 1,2,3.

Build the code and have fun!!!

One function that should work is this that I have built:

--define table of constants to modes
local TAB_MODES={
    renoise.PatternTrackAutomation.PLAYMODE_POINTS,
    renoise.PatternTrackAutomation.PLAYMODE_LINES,
    renoise.PatternTrackAutomation.PLAYMODE_CURVES
}
--define the function
local function change_automation_playmode(mode)
  local song=renoise.song()
  for t=1,#song.tracks do
    local trk=song:track(t)
    for d=1,#trk.devices do
      local dev=trk:device(d)
      for par=1,#dev.parameters do
        --print(par)
        local prm=dev:parameter(par)
        for p=1,#song.patterns do  
          local fau=song:pattern(p):track(t):find_automation(prm)
          if (fau~=nil) then
            fau.playmode=mode
          end
        end
      end
    end
  end
end

--bang for points!
--change_automation_playmode(TAB_MODES[1])

--bang for lines!
--change_automation_playmode(TAB_MODES[2])

--bang for curves!
change_automation_playmode(TAB_MODES[3])

This could be inside your main.lua. Further, you can enter the code inside the TestPad.lua file and run there.

I recognize that building this particular function is not easy, because it is hard to understand how to access the index of the parameter that can be changed your playmode (checked with find_automation()).

But this function is a good example of how far beast things can be done in a single action. If you look closely at the function, there are up to 4 iterations, one inside the other. Remember that the # is to check the number of items in each table.

This function has this iteration string: Track --> Device --> Parameter --> Pattern
That is, it affects all tracks, all devices, all parameters and all patterns.

Keep in mind that there are parameters that do not allow you to change your playmode (such as Active / Bypassed).

Well here you have it. Just wrap it in an XRNX tool file and ready to install.

1 Like