The Api Wishlist Thread

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.

Makes sense. But wouldn’t batch undo have a similar problem in case the tool forgot to call “finish”?

It would finish automatically. At least, that’s how it works internally in Renoise; A batch maneuver is there terminated either after a timeout or when a new or non-batch other some other batch operation interrupts the current batch process.

This is currently only used in Renoise for live note recording.

Hi,

I’m still a novice regarding the tools building, so sorry if this was already addressed, but I don’t think that currently it’s possible to access the Sample Recorder parameters, except for the start and stop recording. It would be really nice if all other recorder parameters would be exposed, and some (sample rate, bit rate etc).

Also one technical question regarding sample recording in Renoise: I can see for a brief second that the status bar shows a lots of messages once the recording was done (recording stopped). My assumption is that the sample is recorded to disk, and then loaded to either a sample or a new sample slot. Which is just fine way to wrap up the recording, since HD space is still much bigger than the memory space.

But, I believe it would be really great if Renoise could have an option to record samples directly to memory. I assume that’s not that simple to implement currently, but it would be great to have as an alternative.

Also, one FR regarding recording is that when recording is engaged and option to record to new instrument should create a new instrument before the recording is done.

What I currently want to accomplish while recording a new take is to automatically set the Autoseek and insert a C4 for a currently selected (newly recorded) instrument in the selected track, basically simulating the tape recorder once recording was done. I might hack it around since I understand that the next instrument will be occupied with the recording of a track, but would like to have a cleaner path to what I want to accomplish.

Thanks

I would really appreciate being able to write to macromappings.

-- Macro mappings, target parameters.
renoise.song().instruments[].macros[].mappings[], _observable
  -> [read-only, array of renoise.InstrumentMacroMapping objects]

this seems to be read-only, unfortunately.

The ability to assign pitchbend to the virtual keyboard’s pitchbend is a hassle because it requires manual setting with the mouse every time, despite the fact that it seems to be a very standard use case.
I originally requested this from @esaruoho to solve this issue.

1 Like

a method for outputting “currently selected folder” from disk browser to API.

this would help in f.ex. running “os.execute Terminal.app (Disk Browser Path)”, as that would be pretty hot.
i.e. a need for a way to communicate the selected sample path.+ filename (or “folder you are in” path) to external apps.

next

i really need “copy samples from note-on layer to note-off layer” API functions back.

next

SampleModulationDevice Target snooping - i.e. "which Modulation is selected (Volume, Panning, Pitch, Cutoff, Resonance, Drive). "
I need to be able to tell my shortcuts that load modulation devices, where to load them to. I can’t currently do it, and don’t feel like writing 8*6 shortcuts - i’d be happier with just having 8 shortcuts that are context/selection aware.

next

ditto, i would also like to modify the Slicing Sensitivity aka Transition Detection.


next

i need a method for opening these OS dialogs in a specific user-defined folder from API.

i.e. file-extensions, open_in_path, dialog_title
thanks!

-- Opens a modal dialog to query an existing directory from the user.
renoise.app():prompt_for_path(dialog_title)
  -> [valid path or empty string]

-- Opens a modal dialog to query a filename and path to read from a file.
-- The given extension(s) should be something  like {"wav", "aiff"
-- or "*" (any file) }
renoise.app():prompt_for_filename_to_read({file_extensions}, dialog_title)
  -> [filename or empty string]

-- Same as 'prompt_for_filename_to_read' but allows the user to select
-- more than one file.
renoise.app():prompt_for_multiple_filenames_to_read({file_extensions}, dialog_title)
  -> [list of filenames or empty list]
1 Like