hm i'm still thinking about this feature.
Formats like mod, xm, sunvox etc are great because you're 99% sure it will sound exactly like intended during playback.
Scriptable nodes therefore would be bad news, because they could 'break' a song / cause cpu-hogs (like some vsts) because of human error.
So where do we REALLY need scripting?
for creating synths?
we can already do that risk-free using metamodules.
custom interface?
again metamodules..
for creating effects?
again..metamodules..
for creating logic / controlled randomization?
see the probability pattern effects, phase and metamodule as arpeggio
controlling sunvox?
midi in mtc +controllers and keyboard shortcuts
MY CONCLUSION: i agree with the author of this post. I can't find any good reasons for scriptable RUNTIME features. Only EDITING features (like xrns plugins for renoise) to manage modules, notes and sampledata etc.
IDEA: I can imagine that sunvox editor:
A. will detect whether pixilang library is installed (=crossplatform)
B. if yes: scan for .pixi files when loading sunvox files (foo.pixi when loading foo.sunvox)
That way you could basically 'extend' metamodules by showing a pixi-container in a popup when pressing 'edit'.
The pixi file would simply hook into the sunvox-api & current slot
Code: Select all
fn on_load(){
// $name =sv_module_get_param_name(0,0)
}
fn on_edit(popup){ // when user clicks edit of metamodule
//popup.hidemoduleview = 1 // dont show modules+back button
// draw stuff here
ret(popup)
}
fn on_event(....){
}
fn on_process(in, out, nsamples) { // metamodule audio output
}
this could already open the door to new loaders, interfaces, visualisations, interactive samplers, new ways of editing etc (basically the power of pixi)...all without affecting the sunvox fileformat, editor, or violating the applestore / android guidelines.
I think for windows you can even create a vst(i) loader pixi-file using pixi's dllfeatures, forward notes to it, output the vst audio in on_process, sample notes etc.
Feedback on this simplifed idea please?
ps. I have abandoned the idea of scriptingnodes inside a sunvoxfile.