I have run into a possible internal Renoise bug using one of my tools.
- Create a new song.
- Just go to Sampler → Effects.
- Create multiple FX Chains, 2 or 3.
- Route any of them with the last available track.
- Go to the pattern editor and delete multiple tracks.
You will see that the drop-down list for the “Routing” parameter of the FX Chain that you changed earlier does not update. Therefore, the user can select nonexistent tracks. This leads to a crash. Renoise exits without any warning and all unsaved project is lost!
What should happen is that this list should be updated according to the available number of tracks (I provide an explanatory image):
Above all, check the lower drop-down list (red frame). You will see that this list is not automatically updated based on the number of available tracks. The top list does seem to work fine, but it would be appropriate to review it as well.
I’ve tried replicating this here, but didn’t manage to break this here.
When deleting a track which is referenced in the Sample FX, the routing will switch to “Current Track” and when adding/deleting tracks the old track is still being referenced.
Is there anything else that you’ve done, probably via the Lua API in order to replicate this?
It’s internal to Renoise. It happens without tools installed.
Look at the image. What you have described happens correctly in popup 1. But the popup 2 does not update correctly when deleting a track or multiple tracks. So the user can select a non-existent track in popup 2. This can trigger a Renoise crash due to routing in some specific case (it costs to replicate it), I guess.
To test it out just delete multiple tracks and try to route to a non-existent track from popup 2. I at least test it with two or more FX chains.
I think that the solution is to just make sure list 2 updates correctly when deleting tracks (and also when adding new tracks).
Note: I suspect that the crash probably happens if the routing uses an track index higher than the maximum number of tracks (including the master track and the send tracks).
See if this helps more. I have managed to replicate the error in several ways by following these steps:
- Create a new song (my new template has 16 note tracks). No LUA tools.
- Without doing anything else, go to FX Effects and create 2 empty FX chains. You don’t need to add samples.
- Go to the pattern editor and delete multiple tracks, 3 or 5.
- Go back to FX Effects and randomly manipulate the popups 1 and 2 in the image above alternately, making sure to select non-existent tracks.
In the popup you will see that it says “None” if the track does not exist. Usually the error occurs when “None” appears in popup 1. But I have managed to replicate the error after handling popup 2 or also popup 1. It is difficult to replicate the error…
I see. I’ve missed that. Will be fixed in the next update…