monadgroup / axiom

A powerful realtime node-based audio synthesizer.
Other
677 stars 31 forks source link

Maxim code upgrade infrastructure #166

Open cpdt opened 5 years ago

cpdt commented 5 years ago

Since it is useful to be able to modify Maxim function names and signatures, it should actually be possible to setup some sort of upgrade system for code that automatically applies changes to get the code working as expected.

E.g. in the recent case of the adsr function's return type being changed from num to (num, num), we could automatically modify code that uses it:

out:num = adsr(trig:num, a:num, d:num, s:num, r:num)
# becomes
(out:num, _) = adsr(trig:num, a:num, d:num, s:num, r:num)

And similar modifications could be made to function parameters (modifying them to pass in some default value).

Of course, this is would be a rather complicated undertaking, and since we're still in version 0.x I'm not too worried about it yet.