The Api Wishlist Thread

Hi,

I would like to request PDC getters:

renoise.song().instruments[].plugin_properties.plugin_device.pdc

renoise.song().tracks[].devices[].pdc

renoise.song.overall_pdc (if possible observable, or a general has_changed_somewhere() )

Request for boolean property which would help when the instrument editor is detached.

renoise.app().window. instrument_editor_visible

We currently have renoise.app().window.instrument_editor_is_detached , but when you close the detached editor via top corner [x] in renoise there is no way to flag it in the API.

renoise.app().window.requestanimationframe observable which accurately calls lua at the next frame, just like javascript’s pendant linklink

renoise.app().window.requestanimationframe observable which accurately calls lua at the next frame, just like javascript’s pendant linklink

Just out of interest: this will enable smoother animations? or more efficient? than calling the timer.

Just out of interest: this will enable smoother animations? or more efficient? than the calling timer.

Yes, in javascript it ensures a smooth 60Hz like animation (if the browser doesn’t slows down the framerate). I think, there also was a more recent API approach in HTML5, but I forgot. The timer thing will be not accurate at all. If you use a recent jquery lib, it will do all that decisions for you automatically.

Nice,

I`m all for it then!

Please add selected_line_index for the Phrase Editor, otherwise I’m not able to see where the Edit Cursor is. This is important for the tools I use in my workflow.

Thank you

Access to granular selection could be implemented like this. Thanks for considering!

renoise.song().selection_in_pattern

[end_column] => 1
[end_line] => 14
[end_track] => 2

[end_sub_column_type] => [number]
[start_column] => 1
[start_line] => 4
[start_track] => 2

[start_sub_column_type] => [number]

this.

Please add the ability to access the current disk browser path, this would be a useful addition to the file/folder selector popup commands. The disk browser would sometimes be a more convenient way to specify folder paths for tools.

removed, posted on https://forum.renoise.com/t/the-api-wishlist-thread/29285

removed, posted onhttps://forum.renoise.com/t/the-api-wishlist-thread/29285

I thought one may accomplish these kind of things by addressing the renoise.song().transport.sequence.playback_pos.line:

local p_pos = renoise.song().transport.sequence.playback_pos
p_pos.line = 9
renoise.song().transport.sequence.playback_pos = p_pos

Then initiate a start and follow it directly by a stop.

Am currently not @ home to test this.

besides, i’m not a favor of allowing scripts to initiate “short-cut” functions that don’t have an API equivalent, i rather have a direct API command that simply performs this.

Thing is, wouldn’t stop also be a panic in such a way that any effect tails would vanish? cos the effect tails are important when dealing with vst/au.

what do you think?

The background in this example shows a case where this becomes an obvious performance bottleneck: https://dl.dropboxusercontent.com/u/6812754/gui1.gif

image is missing, joule

The NoteColumn class is structurally the same whether it’s in the pattern editor or the phrase editor, so you should be able to see all of the same properties and methods.

attachicon.gifrenoise-phrase-delay-lua.png

thing with this is that there’s currently no way of reading phrase line index

renoise.app().window:select_preset_observable:add_notifier(foo)

and a way to tell which preset it moved to from the defined foo notifier function

if this is possible already i’d love to know how.

so wait… if this existed, i could make certain tool functions trigger when changing Renoise View Presets? I would literally die.

Is this possible in the year 2018 or should I add it to my requestlist?

You’d still need to be able to write to the Disk Op’s current location. Or is that already possible? For a private script you might be able to do it writing and recalling on of the view presets as a workaround if it’s not?.. (Guessing here, not actually looking at the LUA pages.)

Hi, apparently nowadays it is possible for one to decide where the Disk Op is pointed to, by defining a user-set path. i.e. “change folder to x”. I’m yet to map it to shortcuts though, not quite sure how to tackle it so it makes a lot of sense. esp since disk browser tabs are still hard-wired it feels like - so no way to set the tab with lua function apis like “set to instruments/samples/songs/”

disable a device => autominimize (have to ‘observe’ whole mixer)

This seems ultra-nice! will have to see if there’s some way of doing it. i already have certain plugins in “autominimized” mode when opening them with a shortcut via paketti

For Renoise 3.2:

HTML-ified Renoise LUA API docs

I don’t know how you guys find proper information in your plain text api docs… It’s well written, no doubt here. But for somebody who doesn’tmemorize the complete api, it’s really hard to check if there is a required functionality!

Basically the docs lacks of:

  • A proper method index, sorted by topic, clickable with fancy link to the section. Uber would be a permanent index on the left or right.

  • Cross-links! There is a reference to another function ? Fine, then also link to that section within text.

  • More references

C’mon guys. Not everybody writes novels with Latex in his/her spare time… Can you please use an automatic html-ifer tool for your docs? There are many many for php stuff and c++, maybe it can but used for lua stuff, too?

I’ve done

cat *.lua >~/renoise.txt

and then i just grep from the renoise.txt. for that, i’ve got an alias called sol.

alias sol="cat ~/renoise.txt | grep -i --color="auto" $1"

so i go

$ sol browser

or sol anything and i get whatever is in the documentation. i’ve never read it, i don’t understand documentation. i do understand function api calls though, and if they’re bool or what.

then i just try and try and try. and eventually get something useful.

thing with this is that there’s currently no way of reading phrase line index

Thing with this is that you were originally talking about delay values within a note column, not line indexes :slight_smile:

But yes, I know what you’re referring to, and we are indeed missing a proper phrase-based equivalent of renoise.song().transport.edit_pos, which understandably hinders what tool devs can currently achieve. Adding such a property should of course be feasible… at some point in time. (Shout at danoise and taktik, not me, haha.)

so wait… if this existed, i could make certain tool functions trigger when changing Renoise View Presets?

Would that really be so useful, though? I’d guess that you and I probably have fairly different view presets saved locally, based on our own common tasks and personal workflow needs.

If I switch from preset 1 to 2, but your tool doesn’t know what my preset actually is, then what? I guess you could manually read each view property one by one — renoise.app().window.disk_browser_is_visible, renoise.app().window.active_middle_frame, renoise.app().window.pattern_matrix_is_visible, etc. — and then make some kind of educated guess about what I’m seeing, but that doesn’t seem very ideal imho.

But for your own private use and finely tuned personal setup, sure… such a thing would still be useful, and doesn’t really hurt anyone if it can be added. :slight_smile:

Thing with this is that you were originally talking about delay values within a note column, not line indexes :slight_smile:

But yes, I know what you’re referring to, and we are indeed missing a proper phrase-based equivalent of renoise.song().transport.edit_pos, which understandably hinders what tool devs can currently achieve. Adding such a property should of course be feasible… at some point in time. (Shout at danoise and taktik, not me, haha.)

Yeah, I did get Phrase Delay-writing (much like Pattern Delay-writing in PakettiR3) working, but then realized that there was no phrase_line_index :slight_smile: I won’t shout at you, I’ll shout at taktik+danoise, but I’m sure they’re busy with life, work, other things.

Would that really be so useful, though? I’d guess that you and I probably have fairly different view presets saved locally, based on our own common tasks and personal workflow needs.
If I switch from preset 1 to 2, but your tool doesn’t know what my preset actually is, then what? I guess you could manually read each view property one by one — renoise.app().window.disk_browser_is_visible, renoise.app().window.active_middle_frame, renoise.app().window.pattern_matrix_is_visible, etc. — and then make some kind of educated guess about what I’m seeing, but that doesn’t seem very ideal imho.
But for your own private use and finely tuned personal setup, sure… such a thing would still be useful, and doesn’t really hurt anyone if it can be added. :slight_smile:

I uhh… Must admit that it’s pretty much just a hope that_maybe_ it’d be useful. Like having a specific View Preset that starts pattern-length sampling when triggered, and then returns to the pattern editor when sampling stops… This kind of stuff. I just had a feeling that maybe it would actually be useful. Most of these ideas are fledglings until you flesh them out and make them into workflows. Before they’re worked out, approved, logical and robust workflows, they need to kinda be bashed around until you get the goods out.

Yeah, the whole “launch function when view preset” only makes sense, if the scrip is allowed to destructively mangle view presets. or, if LUA scripts themselves have their own View Presets that are outside of the “Renoise basic 1-8 View Presets”.

Actually, that’d be nice - you could leave the 8 View Presets well alone and instead “save Tool-Specific View Presets” and allow the user to open them, if they like.

Hi,

the parameterlist-hide-state of a dsp device seems to be not available thru the API. Onlyrenoise.song().tracks[].devices[].is_maximized is there, but I cannot find an “is_expanded” boolean…