► Api Changes + Fixes In 2.6 Beta 4

Fixed issues are marked with [Fixed B4] in this forum. Beside of the fixes there is:

  • [changed B4] scripts can now no longer dead-lock Renoise. Endless loops like
-- silly example  
while (true) do  
 -- nothing  

or other things in tools that take ages (more than about 10 seconds) will result in a messagebox, giving the user the ability to terminate the script or continue waiting for the script to do its job.

  • [changed B4] new bunch of new default OSC actions (OSC messages that you can send to the OSC server that is created by Renoise by default and can be configured in the Renoise Preferences). Transport should be complete now, there are also a bunch of device (FX parameter), sequencer and track mappings available now. Please let us know what else you miss or share the mappings you maybe already have done by your own.

  • [added B4] ViewBuilder:xypad (XY Pad just like you know it from the XY Pad Device in Renoise) Also supports auto-snapping to a specified value, like a joystick. See the updated ExampleToolGUI.xrnx for examples: https://code.google.com/p/xrnx/source/browse/trunk/Tools/

  • [added B4] List notifiers will also pass a table with information about what happened to the list as first argument to the notifier:

function my_list_changed_notifier(notification)  
When a new element got added, "notification" is {  
 type = "insert",  
 index = index_where_element_got_added  
When a element got removed, "notification" is {  
 type = "remove",  
 index = index_where_element_got_removed_from  
When two entries swapped their position, "notification" is {  
 type = "swap",  
 index1 = index_swap_pos1,  
 index2 = index_swap_pos2  

This will work for any list observables, like renoise.song().tracks_observable or renoise.song().instruments_observable just like for your own created ObservableLists

  • [added B4] observable_list:swap(pos1, pos2)

  • [added B4] renoise.tool():has_menu_entry(menu_entry_name), renoise.tool():has_keybinding(keybinding_name)

  • [added B4] simple timers for tools (based on the idle notifications):
    renoise.tool():has_timer(function), renoise.tool():add_timer(function, timer_interval_in_ms), renoise.tool():remove_timer(timer_func)

  • [added B4] renoise.song().transport.playing_observable

  • [added B4] Dialog Keyhandlers: When returning the passed key from the key-handler function, the key will be passed back to Renoises key event chain, in order to allow processing global Renoise key-bindings from your dialog. This will not work for modal dialogs. This will also only apply global shortcuts in Renoise, because your dialog will steal the focus from all other Renoise views like e.g.: the pattern editor.


great updates!

Twitter that shit!

Now these are what i can call neat functions…
Too bad they will have to wait till the weekend :(

Nice update!

Thanks for the fix here on toggling opening the VSTfx,


The final bit that could make it completely consistant IMO though would it be to have the same behaviour when have a sample/xrni selected as when you have a VSTi selected in the instrument list.

The shortcut is the same: [default-- numpad zero] but the behaviour is different. It toggles for VSTi but not for xrni/sample. Could the shortcut toggle between the instrument editor and previous screen in the xrni/sample case?

There is also already the alternative Focus/Show Instrument Editor so functionality is not lost for people who do not wish to toggle.

Great stuff.

Will mess around with these once I get some free time.

ohhhh! Now to come up with something to use the XY device for…

Cool, X/Y is virtually here for Duplex then! You guys are the dons. I’m starting to feel very well-armed for my first stab at an album, and with scripting the possibilities will grow exponentially!