Lua API version 3 to 4 changes - Renoise 3

Here’s an overview of the changes that have been done for the Renoise Lua API 4.
Basically, well, everything that has to do with sample instruments has been changed.


Renoise.Song API


New

  
-------------------------------------------------------------------------------  
renoise.Song:  
-------------------------------------------------------------------------------  
  
renoise.song().selected_phrase, _observable  
 -> [read-only, renoise.InstrumentPhrase object or nil]  
  
renoise.song().selected_sample_modulation_set, _observable   
 -> [read-only, renoise.SampleModulationSet object or nil]  
renoise.song().selected_sample_modulation_set_index  
 -> [number, index or 0 when no set is selected]  
  
renoise.song().selected_sample_device_chain, _observable   
 -> [read-only, renoise.SampleDeviceChain object or nil]  
renoise.song().selected_sample_device_chain_index  
 -> [number, index or 0 when no set is selected]  
  
renoise.song().selected_sample_device, _observable  
 -> [read-only, renoise.AudioDevice object or nil]  
renoise.song().selected_sample_device_index  
 -> [number, index or 0 (when no device is selected)]  
  
renoise.song().selected_track_device, _observable  
 -> [read-only, renoise.AudioDevice object or nil]  
renoise.song().selected_track_device_index  
 -> [number, index or 0 (when no device is selected)]  
  
renoise.song().selected_track_parameter, _observable  
 -> [read-only, renoise.DeviceParameter object or nil]  
renoise.song().selected_track_parameter_index  
 -> [read-only, number or 0 (when no parameter is selected)]  
  
  
--------------------------------------------------------------------------------  
-- renoise.PatternSequencer  
--------------------------------------------------------------------------------  
  
renoise.song().sequencer.keep_sequence_sorted, _observable   
 -> [boolean]  
  
  
--------------------------------------------------------------------------------  
-- renoise.Instrument  
--------------------------------------------------------------------------------  
  
renoise.Instrument.LAYER_NOTE_DISABLED  
renoise.Instrument.NUMBER_OF_MACROS  
  
renoise.song().instruments[]:macro(index)   
 -> [returns renoise.InstrumentMacro]  
  
renoise.song().instruments[]:can_insert_phrase_at(index)   
 -> [boolean]  
renoise.song().instruments[]:insert_phrase_at(index)   
 -> [returns newly created renoise.InstrumentPhrase]  
renoise.song().instruments[]:delete_phrase_at(index)  
  
renoise.song().instruments[]:phrase(index)  
 -> [renoise.InstrumentPhrase object]  
renoise.song().instruments[]:phrase_mapping(index)  
 -> [renoise.InstrumentPhraseMapping object]  
  
renoise.song().instruments[]:insert_sample_modulation_set_at(index)   
 -> [new renoise.SampleModulationSet object]  
renoise.song().instruments[]:delete_sample_modulation_set_at(index)  
renoise.song().instruments[]:swap_sample_modulation_sets_at(index1, index2)  
  
renoise.song().instruments[]:sample_modulation_set(index)   
 -> [renoise.SampleModulationSet object]  
  
renoise.song().instruments[]:insert_sample_device_chain_at(index)   
 -> [returns newly created renoise.SampleDeviceChain]  
renoise.song().instruments[]:delete_sample_device_chain_at(index)  
renoise.song().instruments[]:swap_sample_device_chains_at(index1, index2)  
  
renoise.song().instruments[]:sample_device_chain(index)   
 -> [renoise.SampleDeviceChain object]  
  
renoise.song().instruments[].comments[], _observable  
 -> [array of strings]  
renoise.song().comments_assignment_observable  
 -> [renoise.Observable object]  
  
renoise.song().instruments[].tags[], _observable  
 -> [array of strings]  
renoise.song().tags_assignment_observable  
 -> [renoise.Observable object]  
  
renoise.song().instruments[].macros_visible, _observable  
 -> [boolean]  
  
renoise.song().instruments[].macros[]  
 -> [read-only, array of NUMBER_OF_MACROS renoise.InstrumentMacro objects]  
  
renoise.song().instruments[].volume, _observable  
 -> [number, 0-math.db2lin(6)]  
  
renoise.song().instruments[].transpose, _observable  
 -> [number, -120-120]  
  
renoise.song().instruments[].trigger_options  
 -> [renoise.InstrumentTriggerOptions object]  
  
renoise.song().instruments[].phrase_editor_visible, _observable  
 -> [boolean]  
  
renoise.song().instruments[].phrase_playback_enabled, _observable  
 -> [boolean]  
  
renoise.song().instruments[].phrases[], _observable   
 -> [read-only, array of renoise.InstrumentPhrase objects]  
renoise.song().instruments[].phrase_mappings[], _observable   
 -> [read-only, array of renoise.InstrumentPhraseMapping objects]  
  
renoise.song().instruments[].sample_modulation_sets, _observable  
 -> [read-only, table of renoise.SampleModulationSet objects]  
  
renoise.song().instruments[].sample_device_chains  
 -> [read-only, table of renoise.SampleDeviceChain objects]  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentTriggerOptions  
--------------------------------------------------------------------------------  
  
renoise.InstrumentTriggerOptions.QUANTIZE_NONE   
renoise.InstrumentTriggerOptions.QUANTIZE_LINE  
renoise.InstrumentTriggerOptions.QUANTIZE_BEAT  
renoise.InstrumentTriggerOptions.QUANTIZE_BAR  
  
renoise.song().instruments[].trigger_options.available_scale_modes  
 -> [read-only, table of strings]  
  
renoise.song().instruments[].trigger_options.scale_mode, _observable  
 -> [string, one of 'available_scales']  
renoise.song().instruments[].trigger_options.scale_key, _observable  
 -> [number]  
  
renoise.song().instruments[].trigger_options.quantize, _observable  
 -> [enum = QUANTIZE]  
  
renoise.song().instruments[].trigger_options.monophonic, _observable  
 -> [boolean]  
renoise.song().instruments[].trigger_options.hold, _observable  
 -> [boolean]  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentMacro  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].macros[]:mapping(index)   
 -> [renoise.InstrumentMacroMapping object]  
  
renoise.song().instruments[].macros[].name, _observable   
 -> [string]  
renoise.song().instruments[].macros[].value, _observable   
 -> [number, 0-1]  
renoise.song().instruments[].macros[].value_string, _observable   
 -> [string]  
  
renoise.song().instruments[].macros[].mappings[], _observable  
 -> [read-only, array of renoise.InstrumentMacroMapping objects]  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentMacroMapping  
--------------------------------------------------------------------------------  
  
renoise.InstrumentMacro.SCALING_LOG_FAST  
renoise.InstrumentMacro.SCALING_LOG_SLOW  
renoise.InstrumentMacro.SCALING_LINEAR  
renoise.InstrumentMacro.SCALING_EXP_SLOW  
renoise.InstrumentMacro.SCALING_EXP_FAST  
  
renoise.song().instruments[].macros[].mappings[].parameter  
 -> [read-only, renoise.DeviceParameter]  
  
renoise.song().instruments[].macros[].mappings[].parameter_min, _observable  
 -> [number, 0-1]  
renoise.song().instruments[].macros[].mappings[].parameter_max, _observable  
 -> [number, 0-1]  
  
renoise.song().instruments[].macros[].mappings[].parameter_scaling, _observable  
 -> [enum = SCALING]  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentPhrase  
--------------------------------------------------------------------------------  
  
renoise.InstrumentPhrase.MAX_NUMBER_OF_LINES  
  
renoise.InstrumentPhrase.MIN_NUMBER_OF_NOTE_COLUMNS  
renoise.InstrumentPhrase.MAX_NUMBER_OF_NOTE_COLUMNS  
  
renoise.InstrumentPhrase.MIN_NUMBER_OF_EFFECT_COLUMNS  
renoise.InstrumentPhrase.MAX_NUMBER_OF_EFFECT_COLUMNS  
  
  
renoise.song().instruments[].phrases[]:clear()  
  
renoise.song().instruments[].phrases[]:copy_from(  
 other renoise.InstrumentPhrase object)  
  
renoise.song().instruments[].phrases[]:line(index)  
 -> [renoise.PatternLine object]  
renoise.song().instruments[].phrases[]:lines_in_range(index_from, index_to)  
 -> [array of renoise.PatternLine objects]  
  
renoise.song().instruments[].phrases[]:has_line_notifier(func[, obj])  
 -> [boolean]  
renoise.song().instruments[].phrases[]:add_line_notifier(func[, obj])  
renoise.song().instruments[].phrases[]:remove_line_notifier(func[, obj])  
  
renoise.song().instruments[].phrases[].name, _observable  
 -> [string]  
  
renoise.song().instruments[].phrases[].mapping  
 -> [renoise.InstrumentPhraseMapping object]  
  
song().instruments[].phrases[].lpb, _observable  
 -> [number, 1-256]  
  
renoise.song().instruments[].phrases[].is_empty, _observable  
 -> [read-only, boolean]  
  
renoise.song().instruments[].phrases[].number_of_lines, _observable  
 -> [number, 1-MAX_NUMBER_OF_LINES]  
  
renoise.song().instruments[].phrases[].lines[]  
 -> [read-only, array of renoise.PatternLine objects]  
  
renoise.song().instruments[].phrases[].visible_note_columns, _observable   
 -> [number, MIN_NUMBER_OF_NOTE_COLUMNS-MAX_NUMBER_OF_NOTE_COLUMNS]  
renoise.song().instruments[].phrases[].visible_effect_columns, _observable  
 -> [number, MIN_NUMBER_OF_EFFECT_COLUMNS-MAX_NUMBER_OF_EFFECT_COLUMNS]  
  
renoise.song().instruments[].phrases[].volume_column_visible, _observable   
 -> [boolean]  
renoise.song().instruments[].phrases[].panning_column_visible, _observable   
 -> [boolean]  
renoise.song().instruments[].phrases[].delay_column_visible, _observable   
 -> [boolean]  
  
==(InstrumentPhrase object, InstrumentPhrase object)   
 -> [boolean]  
~=(InstrumentPhrase object, InstrumentPhrase object)   
 -> [boolean]  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentPhraseMapping  
--------------------------------------------------------------------------------  
  
renoise.InstrumentPhraseMapping.KEY_TRACKING_NONE  
renoise.InstrumentPhraseMapping.KEY_TRACKING_TRANSPOSE  
renoise.InstrumentPhraseMapping.KEY_TRACKING_OFFSET  
  
renoise.song().instruments[].phrases[].mapping.phrase  
 -> [renoise.InstrumentPhrase object]  
  
renoise.song().instruments[].phrases[].mapping.key_tracking, _observable   
 -> [enum = KEY_TRACKING]  
  
renoise.song().instruments[].phrases[].mapping.base_note, _observable   
 -> [number, 0-119, c-4=48]  
  
renoise.song().instruments[].phrases[].mapping.note_range, _observable   
 -> [table with two numbers (0-119, c-4=48)]  
  
renoise.song().instruments[].phrases[].mapping.looping, _observable   
 -> [boolean]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleModulationDevice  
--------------------------------------------------------------------------------  
  
renoise.SampleModulationDevice.TARGET_VOLUME  
renoise.SampleModulationDevice.TARGET_PANNING  
renoise.SampleModulationDevice.TARGET_PITCH  
renoise.SampleModulationDevice.TARGET_CUTOFF  
renoise.SampleModulationDevice.TARGET_RESONANCE  
  
renoise.SampleModulationDevice.OPERATOR_ADD  
renoise.SampleModulationDevice.OPERATOR_SUB  
renoise.SampleModulationDevice.OPERATOR_MUL  
renoise.SampleModulationDevice.OPERATOR_DIV  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:init()  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:copy_from(  
 other renoise.SampleModulationDevice object)  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:parameter(index)  
 -> [renoise.DeviceParameter object]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].name, _observable  
 -> [read-only, string]  
renoise.song().instruments[].sample_modulation_sets[].devices[].display_name, observable   
 -> [string]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].enabled, _observable  
 -> [bool]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].target   
 -> [read-only, enum = TARGET]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].operator, _observable  
 -> [enum = OPERATOR]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].bipolar, observable  
 -> [boolean]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].tempo_sync_switching_allowed  
 -> [read-only, boolean]  
renoise.song().instruments[].sample_modulation_sets[].devices[].tempo_synced, observable  
 -> [boolean]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].parameters[]  
 -> [read-only, array of renoise.DeviceParameter objects]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleOperandModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].value   
 -> [renoise.DeviceParameter object, -1-1]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleFaderModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.SampleFaderModulationDevice.SCALING_LOG_FAST  
renoise.SampleFaderModulationDevice.SCALING_LOG_SLOW  
renoise.SampleFaderModulationDevice.SCALING_LINEAR  
renoise.SampleFaderModulationDevice.SCALING_EXP_SLOW  
renoise.SampleFaderModulationDevice.SCALING_EXP_FAST  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].mode, _observable   
 -> [enum = OPERATOR]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].from  
 -> [renoise.DeviceParameter object, 0-1]  
renoise.song().instruments[].sample_modulation_sets[].devices[].to  
 -> [renoise.DeviceParameter object, 0-1]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].duration  
 -> [renoise.DeviceParameter object, 0-1]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].delay  
 -> [renoise.DeviceParameter object, 0-1]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleAhdrsModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].attack  
 -> [renoise.DeviceParameter object, 0-1]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].hold  
 -> [renoise.DeviceParameter object, 0-1]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].duration  
 -> [renoise.DeviceParameter object, 0-1]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].sustain  
 -> [renoise.DeviceParameter object, 0-1]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].release  
 -> [renoise.DeviceParameter object, 0-1]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleKeyTrackingModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].min  
 -> [renoise.DeviceParameter object, 0-119]  
renoise.song().instruments[].sample_modulation_sets[].devices[].max  
 -> [renoise.DeviceParameter object, 0-119]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleVelocityTrackingModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.SampleVelocityTrackingModulationDevice.MODE_CLAMP  
renoise.SampleVelocityTrackingModulationDevice.MODE_SCALE  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].mode, _observable   
 -> [enum = MODE]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].min  
 -> [renoise.DeviceParameter object, 0-127]  
renoise.song().instruments[].sample_modulation_sets[].devices[].max  
 -> [renoise.DeviceParameter object, 0-127]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleEnvelopeModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.SampleEnvelopeModulationDevice.PLAYMODE_POINTS  
renoise.SampleEnvelopeModulationDevice.PLAYMODE_LINEAR  
renoise.SampleEnvelopeModulationDevice.PLAYMODE_CUBIC  
  
renoise.SampleEnvelopeModulationDevice.LOOP_MODE_OFF  
renoise.SampleEnvelopeModulationDevice.LOOP_MODE_FORWARD  
renoise.SampleEnvelopeModulationDevice.LOOP_MODE_REVERSE  
renoise.SampleEnvelopeModulationDevice.LOOP_MODE_PING_PONG  
  
renoise.SampleEnvelopeModulationDevice.MIN_NUMBER_OF_POINTS  
renoise.SampleEnvelopeModulationDevice.MAX_NUMBER_OF_POINTS  
  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:init()  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:copy_from(  
 other renoise.SampleEnvelopeModulationDevice object)  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:clear_points()  
renoise.song().instruments[].sample_modulation_sets[].devices[]:copy_points_from(  
 other SampleEnvelopeModulationDevice object)  
  
renoise.song().instruments[].sample_modulation_sets[].devices[]:has_point_at(time)  
 -> [boolean]  
renoise.song().instruments[].sample_modulation_sets[].devices[]:add_point_at(time, value)  
renoise.song().instruments[].sample_modulation_sets[].devices[]:remove_point_at(time)  
  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].play_mode, _observable  
 -> [enum = PLAYMODE]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].length, _observable  
 -> [number, 6-1000]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].loop_mode, _observable  
 -> [enum = LOOP_MODE]  
renoise.song().instruments[].sample_modulation_sets[].devices[].loop_start, _observable  
 -> [number, 1-envelope.length]  
renoise.song().instruments[].sample_modulation_sets[].devices[].loop_end, _observable  
 -> [number, 1-envelope.length]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].sustain_enabled, _observable  
 -> [boolean]  
renoise.song().instruments[].sample_modulation_sets[].devices[].sustain_position, _observable  
 -> [number, 1-envelope.length]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].fade_amount, _observable  
 -> [number, 0-4095]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].points[], _observable  
 -> [array of {time, value} tables]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].points[].time  
 -> [number, 1-envelope.length]  
renoise.song().instruments[].sample_modulation_sets[].devices[].points[].value  
 -> [number, 0.0-1.0]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleLfoModulationDevice (inherits from renoise.SampleModulationDevice)  
--------------------------------------------------------------------------------  
  
renoise.SampleLfoModulationDevice.MODE_SIN  
renoise.SampleLfoModulationDevice.MODE_SAW  
renoise.SampleLfoModulationDevice.MODE_PULSE  
renoise.SampleLfoModulationDevice.MODE_RANDOM  
  
renoise.song().instruments[].sample_modulation_sets[].devices[].mode  
 -> [enum = MODE]  
renoise.song().instruments[].sample_modulation_sets[].devices[].phase  
 -> [renoise.DeviceParameter object, 0-360]  
renoise.song().instruments[].sample_modulation_sets[].devices[].frequency  
 -> [renoise.DeviceParameter object, 0-1]  
renoise.song().instruments[].sample_modulation_sets[].devices[].amount  
 -> [renoise.DeviceParameter object, 0-1]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleModulationSet  
--------------------------------------------------------------------------------  
  
renoise.SampleModulationSet.FILTER_NONE  
  
renoise.SampleModulationSet.FILTER_2X2_POLE_LP  
renoise.SampleModulationSet.FILTER_2_POLE_LP  
renoise.SampleModulationSet.FILTER_BIQUAD_LP  
renoise.SampleModulationSet.FILTER_MOOG_LP  
renoise.SampleModulationSet.FILTER_1_POLE_LP  
  
renoise.SampleModulationSet.FILTER_2X2_POLE_HP  
renoise.SampleModulationSet.FILTER_2_POLE_HP  
renoise.SampleModulationSet.FILTER_MOOG_HP  
  
renoise.SampleModulationSet.FILTER_BAND_REJECT  
renoise.SampleModulationSet.FILTER_BAND_PASS  
  
renoise.SampleModulationSet.FILTER_EQ_MINUS_15_DB  
renoise.SampleModulationSet.FILTER_EQ_MINUS_6_DB  
renoise.SampleModulationSet.FILTER_EQ_PLUS_6_DB  
renoise.SampleModulationSet.FILTER_EQ_PLUS_15_DB  
renoise.SampleModulationSet.FILTER_EQ_PEAKING  
  
renoise.SampleModulationSet.FILTER_COMP_DIST_LOW  
renoise.SampleModulationSet.FILTER_COMP_DIST_MID  
renoise.SampleModulationSet.FILTER_COMP_DIST_HIGH  
renoise.SampleModulationSet.FILTER_COMP_DIST  
  
renoise.SampleModulationSet.FILTER_RING_MOD  
  
renoise.song().instruments[].sample_modulation_sets[]:init()  
  
renoise.song().instruments[].sample_modulation_sets[]:copy_from(  
 other renoise.SampleModulationSet object)  
  
renoise.song().instruments[].sample_modulation_sets[]:insert_device_at(device_path, index)   
 -> [returns new renoise.SampleModulationDevice object]  
renoise.song().instruments[].sample_modulation_sets[]:delete_device_at(index)  
renoise.song().instruments[].sample_modulation_sets[]:device(index)   
 -> [renoise.SampleModulationDevice object]  
  
renoise.song().instruments[].sample_modulation_sets[].available_devices[]   
 -> [read-only, array of strings]  
  
renoise.song().instruments[].sample_modulation_sets[].devices[], observable   
 -> [read-only, array of renoise.SampleModulationDevice objects]  
  
renoise.song().instruments[].sample_modulation.filter_type, _observable  
 -> [enum = FILTER]  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleDeviceChain  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample_device_chains[]:insert_device_at(  
 device_path, index) -> [returns new device]  
renoise.song().instruments[].sample_device_chains[]:delete_device_at(index)  
renoise.song().instruments[].sample_device_chains[]:swap_devices_at(index, index)  
  
renoise.song().instruments[].sample_device_chains[]:device(index)   
 -> [renoise.AudioDevice object]  
  
renoise.song().instruments[].sample_device_chains[].name, _observable   
 -> [string]  
  
renoise.song().instruments[].sample_device_chains[].available_devices[]  
 -> [read-only, array of strings]  
renoise.song().instruments[].sample_device_chains[].available_device_infos[]   
 -> [read-only, array of device info tables]  
  
renoise.song().instruments[].sample_device_chains[].devices[], observable   
 -> [read-only, array of renoise.AudioDevice objects]  
  
renoise.song().tracks[].available_output_routings[]  
 -> [read-only, array of strings]  
renoise.song().tracks[].output_routing, _observable  
 -> [string, one of 'available_output_routings']  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleMapping  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample_mappings[].layer, _observable  
 -> [enum = renoise.Instrument.LAYER]  
  
  
--------------------------------------------------------------------------------  
-- renoise.Sample  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample[].modulation_set_index, _observable   
 -> [number]  
renoise.song().instruments[].sample[].device_chain_index, _observable   
 -> [number]  
  
renoise.song().instruments[].samples[].sample_mapping  
 -> [read-only, renoise.SampleMapping object]  
  

Removed

  
--------------------------------------------------------------------------------  
-- renoise.Song  
--------------------------------------------------------------------------------  
  
renoise.song().selected_sample_index_observable  
renoise.song().selected_device_index_observable  
renoise.song().selected_parameter_index_observable  
  
  
--------------------------------------------------------------------------------  
-- renoise.Transport  
--------------------------------------------------------------------------------  
  
renoise.song().transport.chord_mode_enabled, _observable  
 -> [boolean]  
  
  
--------------------------------------------------------------------------------  
-- renoise.Instrument  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[]:insert_sample_mapping(  
 layer, sample_index [, base_note] [, note_range] [, vel_range])  
 -> [new renoise.SampleMapping object]   
renoise.song().instruments[]:delete_sample_mapping_at(layer, index)  
  
renoise.song().instruments[].sample_envelopes   
 -> [read-only, renoise.InstrumentSampleEnvelopes object]  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentEnvelope  
--------------------------------------------------------------------------------  
  
* whole class gone *  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentLfo  
--------------------------------------------------------------------------------  
  
* whole class gone *  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentEnvelopeFollower (aka AutoAmp)  
--------------------------------------------------------------------------------  
  
* whole class gone *  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentSampleEnvelopes  
--------------------------------------------------------------------------------  
  
* whole class gone *  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentMixerEnvelope (inherits from renoise.InstrumentEnvelope)  
--------------------------------------------------------------------------------  
  
* whole class gone *  
  
  
--------------------------------------------------------------------------------  
-- renoise.InstrumentFilterEnvelope (inherits from renoise.InstrumentEnvelope)  
--------------------------------------------------------------------------------  
  
* whole class gone *  
  
  
--------------------------------------------------------------------------------  
-- renoise.SampleMapping  
--------------------------------------------------------------------------------  
  
renoise.song().instruments[].sample_mappings[].sample_index, _observable   
 -> [number]  
  
renoise.song().instruments[].sample_mappings[].use_envelopes, _observable   
 -> [booelan]  
renoise.song().instruments[].sample_mappings[].map_velocity_to_volume, _observable   
 -> [boolean]  
  

Changed

  
renoise.TrackDevice - DEPRECATED - alias for renoise.AudioDevice  
renoise.InstrumentDevice - DEPRECATED - alias for renoise.InstrumentPluginDevice  
renoise.PatternTrackLine - DEPRECATED - alias for renoise.PatternLine  
  

renoise.Application API


New

  
renoise.app().window.disk_browser_is_visible, _observable  
 -> [boolean]  
  
renoise.app().window.instrument_box_is_visible, _observable  
 -> [boolean]  
  

Removed

  
renoise.app().window.disk_browser_is_expanded, _observable  
 -> [boolean]  
  

Changed

  
renoise.app().window.active_upper_frame, _observable  
 -> [enum = UPPER_FRAME]  
renoise.app().window.active_middle_frame, _observable  
 -> [enum = MIDDLE_FRAME]  
renoise.app().window.active_lower_frame, _observable  
 -> [enum = LOWER_FRAME]  
  

Please have a look at the bundled API docs in latest beta build for comments.

When the auto-upgrade of a tool failed, the Renoise long file will also note why a tool has disabled (because of which keyword).

If you have any questions about the changes or think there is something missing in the API to do XYZ with instruments, or simply would be nice to have, let us know please…

Not sure if this is the place to “report” this but… for the people upgrading their tools to api v4 AND using Bantai’s “create tool tool” export to xrnx feature. Current version of the create tool tool export dialog’s drop down menu only has api versions up to 3. :(

The obvious fix for this (for now) -> edit the create tool tool’s main.lua, by adding another item in the list of api versions.

  
  
131: API_VERSIONS[1] = "1"  
132: API_VERSIONS[2] = "2"  
133: API_VERSIONS[3] = "3"  
  
--add this below  
API_VERSIONS[4] = "4"  
  
  

Update ya tools, fools!

1 Like

Could this be pinned please?

thankyou :)

The terminal no longer has a separate icon in the taskbar (win 7)

Is this intentional? as it`s pretty annoying to have to keep going up to the menu to bring it to the front of the screen now, after minimizing.

1 Like