Jump to content


Photo

[Help] Automation Editor: selection problems!


  • Please log in to reply
2 replies to this topic

#1 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1581 posts
  • Gender:Male
  • Location:Spain

Posted 28 July 2018 - 10:46

Documentation:

-- Selection range as visible in the automation editor. always valid. 
-- returns the automation range no selection is present in the UI.
renoise.song().patterns[].tracks[].automation[].selection_start, _observable
  -> [number >= 1 <= automation.length+1]
renoise.song().patterns[].tracks[].automation[].selection_end, _observable
  -> [number >= 1 <= automation.length+1]
-- Get or set selection range. when setting an empty table, the existing 
-- selection, if any, will be cleared.
renoise.song().patterns[].tracks[].automation[].selection_range[], _observable
  -> [array of two numbers, 1-automation.length+1]

The selection range of the automation editor seems somewhat useless. It seems that it only serves to select an area within a pattern. It is not possible to do any operation by selecting several patterns at the same time. This seems a bit confusing to me to handle. The user may end up with several patterns with small selected areas, which becomes a bit unmanageable. However, it is not possible to select several patterns at the same time to operate at the same time with several patterns at the same time, for example, to rectify ramps that occupy several patterns, which is widely used in automation.

 

So, I've noticed that the automation editor API does not allow you to select an area, for example, an entire pattern, if it does not exist "...create_automation(parameter)" and therefore, the definition of the parameter.

-- Creates a new automation for the given device parameter.
-- Fires an error when an automation for the given parameter already exists.
-- Returns the newly created automation. Passed parameter must be automatable,
-- which can be tested with 'parameter.is_automatable'.
renoise.song().patterns[].tracks[]:create_automation(parameter)
  -> [renoise.PatternTrackAutomation object]
So, through the LUA code, it is not possible to deselect several patterns and leave it clean? When selected, the code creates something, which would then touch destroy if it is not selected. Imagine a valuebox from 1 to 32 that allows you to select 32 or 64 or all the patterns in the sequence within the automation editor. How to handle that?
 
I've been seeing that the Danoise AutoMate tool uses the Matrix Editor instead of the Automation editor to select multiple patterns. Visually it is a mess to jump from one editor to another to control it. If you are editing within an editing panel, why should you visually jump to another panel, if you need visual precision?
 
Is there no way to take advantage of the automation editor's selection for multiple patterns at once? Why does this selection need "something before" to be able to visually mark that there is an area selected in the automation editor?
 
Here is a function that I have created to manipulate it.
function select_automation( value )
  local song = renoise.song()
  local sp = song.selected_parameter
  if ( sp ) then
    local ssi = song.selected_sequence_index
    local sti = song.selected_track_index
    for seq = ssi, ssi + value -1 do
      if ( seq <= #song.sequencer.pattern_sequence ) then
        local patt = song:pattern( seq )
        local spa = patt:track( sti ):find_automation( sp )
        if ( not spa ) and ( patt ~= nil ) then
          spa = patt:track( sti ):create_automation( sp )
          spa.selection_range = { 1, patt.number_of_lines + 1 }
        end
      end
    end
  end
end

--"value" = the value of a valuebox, range 0 to 32 (or to 64 or to #song.sequencer.pattern_sequence)

But I do not like the result at all, specifically, be obliged to execute this line: spa = patt:track( sti ):create_automation( sp ). When creating it, after the deselection it would play to destroy it. Any way to do it right or avoid it?

 

The selection is fine to be able to tell the user what to modify, before modifying it. Would it be possible to write a code for the automation editor that would select or deselect several empty patterns at the same time, without modifying their original state?

 

For example, I want to select the patterns 1,2,3,4,5,6,7,8, simply, and then be able to deselect the patterns 7 and 8, and the latter should be the same as before selecting them...

 

Thanks for the help!


Edited by Raul (ulneiz), 28 July 2018 - 18:48.

:excl: Development of my tools: Piano Roll EditorKangarooX120SamRenderPhraseTouch

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler

#2 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6985 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 28 July 2018 - 12:50

I've been seeing that the Danoise AutoMate tool uses the Matrix Editor instead of the Automation editor to select multiple patterns.

 

That's true - I'm using the selection in the pattern sequence for multiple patterns, and the selection in the pattern for line ranges. 

It's not optimal, but as long as we can't probe the selected range in the automation editor, you will have to implement some sort of workaround. 

Note: it's very much a WIP tool. I haven't published it officially yet, and the currently difficulty in establishing a selection is among the reasons why.

 

Given enough effort, I could even imagine such a workaround to be quite elegant, because technically, nothing prevents doing pattern-spanning automation. 

The tricky part is how the user should define those ranges. This is basically up to you to define, because the API doesn't really provide a solution. 

 

PS: I'm pretty sure the ability to query the selected automation range(s) is on the API wishlist. If not, it should be. 


Tracking with Stuff. API wishlist | Soundcloud


#3 Raul (ulneiz)

Raul (ulneiz)

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1581 posts
  • Gender:Male
  • Location:Spain

Posted 29 July 2018 - 17:41

That's true - I'm using the selection in the pattern sequence for multiple patterns, and the selection in the pattern for line ranges. 

It's not optimal, but as long as we can't probe the selected range in the automation editor, you will have to implement some sort of workaround. 

Note: it's very much a WIP tool. I haven't published it officially yet, and the currently difficulty in establishing a selection is among the reasons why.

 

Given enough effort, I could even imagine such a workaround to be quite elegant, because technically, nothing prevents doing pattern-spanning automation. 

The tricky part is how the user should define those ranges. This is basically up to you to define, because the API doesn't really provide a solution. 

 

PS: I'm pretty sure the ability to query the selected automation range(s) is on the API wishlist. If not, it should be. 

 

I hope and wish that Taktik has in his plans to improve the automation editor. It is possible to control many things with this specific editor. Personally, I am continually colliding with the limitation of editing the pattern curves by pattern with the selection. In addition, it is frustrating that the user has a curve that occupies several patterns, that wants to modify the value of all the points that form it and is not possible. You must destroy the existing curve and make a new one.

 
A week ago I was building a small automation panel to edit points from multiple patterns. Use the point of the first line and the point of the last line to give continuity to the ramp. Thus it is possible to make straight slopes or even curves according to an exponent, and later, to be able to modify the value of the whole curve, of all the points. It's a shame that Renoise does not have this ability.
 
kangaroox120-automation.gif
I guess the operation is intuitive. The selection is defined by the index of the selected pattern and this index plus a valuebox to define the range, always to the right. One of its main characteristics is to be able to rectify the value (Y axis) of all the points in a group.
 
I think that controlling a tool for the automation editor is a somewhat uncomfortable task. It is not the same as for other publishers. The problem lies in being able to manipulate existing curves or slopes. That is, groups of points. Not just the fact of creating them. Then several patterns come into play at once. There should be a method to be able to rectify a curve without having to destroy it and create a new one in order to displace it in time completely. For example, I do not stop observing the matrix editor. In it it is possible to manipulate a multitude of data of several patterns at once, with multiple selection capacity. However, the automation editor is very limited in this regard. I do not know what programming problems you will have had when developing the automation editor, but it gives the feeling that you stopped your development halfway. As you point out, it seems that technically there is no limitation to be able to manipulate several patterns at the same time within the automation editor.
 
...
 
Apart from that, I have reached the capacity limit of my 64MB user tray. Would it be possible to expand it to double? Would it be asking too much? I am saddened to have to delete old content that I have contributed, in order to continue adding new things, especially images, animated gifs as a demonstration etc. There could be a kind of incentive to motivate users. Those that exceed 1500 posts will have twice the capacity tray. Or something like that. It's only an idea. Would it be possible to do it?

Edited by Raul (ulneiz), 12 August 2018 - 21:35.

:excl: Development of my tools: Piano Roll EditorKangarooX120SamRenderPhraseTouch

 

:excl: My API wishlist R3.1 (updated 24 July 2017):

Spoiler

 

:excl: My Renoise 3.1 wishlist (updated 26 September 2017):

Spoiler