Hi. Is there a way of polling the Native TrackDSP names and to wrap the results to shortcuts? I just did this monkeywork
[details=“Click to view contents”]
renoise.tool():add_keybinding {
name = "Global:Track Devices:Load Bus Compressor",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Bus Compressor",2)
end }
renoise.tool():add_keybinding {
name = "Global:Track Devices:Load Cabinet Simulator",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Cabinet Simulator",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Chorus",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Chorus",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Comb Filter",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Comb Filter",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Compressor",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Compressor",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load DC Offset",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/DC Offset",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Delay",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Delay",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Distortion",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Distortion",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load EQ 10",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/EQ 10",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load EQ 5",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/EQ 5",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Filter",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Filter",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Flanger",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Flanger",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Gainer",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Gainer",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Gate",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Gate",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load LofiMat",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/LofiMat",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Maximizer",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Maximizer",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Mixer EQ",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Mixer EQ",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load mpReverb",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/mpReverb",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Phaser",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Phaser",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Reverb",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Reverb",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load RingMod",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/RingMod",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Scream Filter",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Scream Filter",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Stereo Expander",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/Stereo Expander",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load #Line Input",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ #Receive/#Line Input",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load #ReWire Input",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ #Receive/#ReWire Input",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load #Multiband Send",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ #Send/#Multiband Send",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load #Send",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ #Send/#Send",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/Hydra",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*Hydra",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/Instr. Automation",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*Instr. Automation",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/Instr. MIDI Control",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*Instr. MIDI Control",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/Key Tracker",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*Key Tracker",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/LFO",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*LFO",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/Signal Follower",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*Signal Follower",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/Velocity Tracker",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*Velocity Tracker",2)
end }
renoise.tool():add_keybinding {
name="Global:Track Devices:Load Meta/XY Pad",
invoke = function() renoise.song().selected_track:insert_device_at("Audio/Effects/ *Meta/*XY Pad",2)
end }
``` [/details]
And it most certainly works, however, if Renoise suddenly gets more Native TrackDSPs, I'll have to issue an update.
So
1) How do I "just read" the Native TrackDSP-devices and output the results to keybinds
2) How do I also invoke a second function so that it changes to displaying track_dsp view (I noticed that these shortcuts work even if TrackDSP is not displayed, but I think it'll be better for the user to just be able to press a shortcut and see trackdsp-view and see the track-dspdevice being added.
To answer 2), I did, of course, get this to work:
```lua
renoise.tool():add_keybinding {
name="Global:Track Devices:Load EQ 10",
invoke = function() renoise.app().window.lower_frame_is_visible=true
renoise.app().window.active_lower_frame=1
renoise.song().selected_track:insert_device_at("Audio/Effects/ Native/EQ 10",2)
end }
However, while it’s possible for me to do more monkeywork and just copypaste those 2 definitions to each and every keybind, it just makes me wonder if it is a bit redundant.