What Is the Current Instrument in Sputter?
Initially I had intended to implement a feature suggested by several users, which I also sometimes feel the need for when using Sputter: Highlighting the currently “active” instrument, something like this:
My first thought was that this would not make 100% sense since after making a change to the “current” instrument, like adjusting ADSR, you are not strictly speaking on that specific instrument any longer since it has been altered. The solution proposed from a user was to mark it as “edited”, something like this:
That seems fine, and I thought it could be implemented in a day or two. But then, as I began planning it out, I ended up with this pile of considerations:
I realize that most of you do not know Norwegian and that none of you would be able to decypher my hand writing anyway. The reason for showing this is to illustrate the sheer amount of logical caveats associated with a change like this. I will walk you through some of them.
When are instruments the same?
If this was to be implemented, it would require all instruments to have a unique ID, probably a UUID. So when you work with a song, each track will have an ID of the instrument used on that track. That way, when the song is loaded later, the corresponding instrument on each track can be highlighted to show which one was selected. Makes sense so far, right?
Have in mind that there is a lot about an instrument which can be changed in Sputter, to the point where the instrument is not recognizable anymore. Using a system of IDs, the last instrument you pressed will be the “active” one, regardless of wether or not it sounds like the instrument it is assigned to.
Imagine that you received a song from a friend, and that friend had used the instrument “Contra” on one of the tracks, but had imported a new wave file and tweaked lots of parameters so it sounded more like a piano than the actual “Contra” instrument. Then, when you imported the song, the “Contra” instrument would still be highlighted:
But the “Contra” instrument is not really active on that track, is it? It seems like this could lead to a lot of confusion.
Why not invalidate the ID when a waveform is imported?
So why not just invalidate or give a new ID to an instrument when a waveform is imported? Remember that there are easily ways to tweak instruments so they sound nothing like what you started out with even without importing a new wave. For example, if you go heavy on filters and LFOs in addition to delay and flanger, the original wave will be buried in all those effects. The instrument used on that track will sound totally different to what you selected from the list, even if you did not import a new waveform.
Additionally, you might have imported a similar sounding or lightly altered waveform to the instrument, so assuming that a new wave means different sounding instrument does not quite hold up.
Conclusion
It seems like an indication of what is the “active” instrument on a track requires an assessment of wether or not what is actually playing really is what you (or the composer of a song) have selected from the instrument list. The moment you tweak a parameter it is strictly speaking no longer the instrument you selected, and after tweaking further it would not be the same instrument in practice either. This would in several cases lead to a confusing user experience.
Feedback wanted!
Even if I have made up my mind not to work any more on this for now, I realize that there can be other ways to solve this which I have not thought of. If you have any ideas or thoughts about this it would be most useful to hear from you. Feel free and welcome to contact me on support@casualcomputing.info or, as they say on YouTube, comment down below!