The Api Wishlist Thread

As far as i can see, it seems its not possible to get the value of current song ticks per line:
image

I currently implement this as extra option to my tool. Would be nice, when we just can get this value.

renoise.song().ticks_per_line, _observable
-> [number, 1-16]

Edit: renoise.song().transport.tpl is the one, i was searching. So everything is fine.

delete didn’t read thread lol

1 Like
renoise.song().transport.tpl
and
renoise.song().transport.tpl_observable

Seems to set tpl here with:

renoise.song().transport.tpl = 6

?

1 Like

Thanks, i missed this.

Focus state of renoise.Dialog would be useful. Especially for non modal dialogs

dialog.focus, _observable
  -> [read-only, boolean]

Edit: Found out, that’s possible to set focus back to a tool window by simply calling the show method of the windowObj. Should help to fix focus state issues in some scenarios.

the cursor position in the phrase editor is what I need.
With a bool letting me know if the phrase editor is in focus and the cursor position in the phrase editor, I could get, update, and set individual fields in the phrase editor.

More info here: GitHub - a5af/cc.asaf.Nudger.xrnx: Key bindings for nudging tracker values
Notice tool gets/sets field under the cursor in the pattern editor.
I’d like to extend it such that the phrase editor fields under cursor can similarly be get/set.
Currently API supports get/set by index into phrase editor but there is no access to the cursor’s placement in the phrase editor.

1 Like

Access to Clamp/ Scale in Velocity Tracking Devices

clamp scale

In the parameters list there is only Min and Max, bipolar is available as a separate property, but not clamp/scale

oprint for device
class: SampleVelocityTrackingModulationDevice
 properties:
    bipolar
    bipolar_observable
    display_name
    display_name_observable
    enabled
    enabled_observable
    is_active
    is_active_observable
    is_active_parameter
    is_maximized
    is_maximized_observable
    max
    min
    name
    operator
    operator_observable
    parameters
    short_name
    target
    tempo_sync_switching_allowed
    tempo_synced
    tempo_synced_observable
 methods:
    __STRICT
    copy_from
    init
    parameter

Yes! having the same info about the selected columns and such like in the pattern editor would make it possible to create tools that work the same in both contexts.

Additionally, being able to set the selected_sub_column index (as opposed to it being read-only) would also be nice, although not crucial.

Some other wishes:

  • Getting the Drum Kit settings like if “Use white keys only” is enabled or the start note of the drum kit. Alternatively, getting what keys certain slices or samples are mapped to would be even better.

  • Being able to write messages into the bottom status bar

  • Controlling the sample browser menu via code

--Shows a message in Renoise's status bar to the user.
renoise.app():show_status(message)

See:

Renoise.Application.API.lua

2 Likes

i can’t seem to figure out how to close FX plugins that are opened from renoise.ApplicationWindow.MIDDLE_FRAME_INSTRUMENT_SAMPLE_EFFECTS, - is it really true that there are no API calls for toggling the .visible state of these effects?

this has been ignored for so long i sometimes wonder if a decision has been made to just not give us what we want in this area. or if it’s just “give us x amount of money and we’ll make it” type situation?

1 Like

Access to Sample Grabber so we can programmatically create new instruments from VST

3 Likes

Can you expand on that? I havnt found any documentation about sample grabber. Do you know of any?

I’m after an iterator for the note columns in a pattern or phrase selection.

Would have saved me a lot of work today. Do people have there own work arounds?

It’d be nice to have an observable for renoise.song().tracks[].devices[].parameters[].name since the Formula, Instr. Automation, Instr. Macros and Instr. MIDI Control devices can have some or all of their parameter names changed.

Edit: This can also happen to the likes of the Digital Filter, Multitap Delay, Flanger, Chorus when choosing different types of filter. Also the EQs when the frequency is changed.

1 Like

I’d like for a ColumnPos class to exist.

It could have a single property,

  • ColumnPos.index → [number]

Then, inside NoteColumn, there could be a few additional properties:

  • renoise.song().patterns[].tracks[].lines[].note_columns[].note_is_selected → readonly, boolean
  • renoise.song().patterns[].tracks[].lines[].note_columns[].volume_is_selected-> readonly, boolean
  • renoise.song().patterns[].tracks[].lines[].note_columns[].panning_is_selected-> readonly, boolean
  • renoise.song().patterns[].tracks[].lines[].note_columns[].delay_is_selected-> readonly, boolean

I would also like for the ability to jump to a column like this:

  • transport.selected_track.column_pos = [ColumnPos object]

I’m aware that NoteColumn and EffectColumn have the is_selected property. It works great for the effects column, but the selected note column encompasses note data, vol, pan, and delay, which is a bit too broad. I’m also aware that I can select and edit those properties through .note_value, .note_string, etc, but I would like for a way to check if the user’s selection is currently over the given property.

The column transport feature is for jumping to column lines within the track itself. It would allow for the creation of shortcuts like, jump 2 column lines right/left, jump to vol, jump to pan, jump to effects column 3, etc. I think it would be a versatile feature that would streamline workflow.

1 Like

I’d like to be able to iterate over the selected samples/slices in an instrument.

Am I right in thinking I can only see the currently seleced sample through the API?

Also I’d like to be able to set the slcing sensitivity in the sampler programaticaly. Is there definitely no means of accessing that?

1 Like

I wish we could listen to Track changes and compare two Tracks reliably.

  • song.tracks_observable to get notified when tracks are added, removed or their order is changed
  • song.tracks[].index, _observable to know what position a track is at

Allow for ignoring and batching undo

bypass undo recording

  • tool changes some things regularly to simulate some live behaviour
  • the undo stack is flooded with meaningless operations
  • would be nice if a tool could say “don’t remember this” and do things that can’t be undo-ed afterwards

batch together undos

  • tool does a lot of stuff like batch converting samples, generating data etc. it does so in steps to avoid timing out and freezing the interface
  • the undo stack is flooded with steps that are hard to undo if needed
  • would be good to be able to say “start batch operation”, do all the things and “finish” to have the undo batch everything together in one step

I can see where you would use this, but in general it’s a dangerous thing to do. If you suppress things like “insert track”, subsequent undo/redo operations on that track may crash because the undo timeline is no longer complete. As we try (not always possible, but we try) to avoid that Lua scripts can crash Renoise, this shouldn’t be possible.

However, “batch undos” would be possible and indeed helpful for many “process sliced” tools.