Should be fixed now.
Almost. synth offers :sound_in and :sound_in_stereo as suggestions - theyâll need to be hidden insteadâŚ
They need to be fixed - web audio supports stereo input ![]()
I hope there will be tau support for eval and eval_file (or functional equivalents). I rely heavily on them in my library, which Iâd like to port to tau once it stabilizes.
What would this mean for the web?
Youâre the expert here, @samaaron, but it seems to me thereâs no difference between code typed in a buffer and code stored in a variable and code stored in a file. Wonât they all play in the same sandbox?
It just opens up some flexibility to allow user configuration through params without alot of nested conditions. So, say, if there were four params, with three options each, the number of permutations would be 3^4, but when processing linearly it would be 12. Itâs easier to cook the code linearly, in a string var, then run it when itâs properly cooked.
Or at least thatâs how my brain is wired. ![]()
Sure but the web doesnât have easy access to your file system (without jumping through some hoops and explicitly adding directories that are allowed to store code)âŚ
Also, this new language is fully compiled - there is no equivalent of eval - you have to compile first to byte code, and then run that byte code in the vm-tree. The vm-tree doesnât have access to the compiler, so it would have to somehow round trip the code back out of the vm-tree, back to the browser, run the compiler, then inject the newly compiled code to the vm-tree. Also, the vm-tree is very limited in how much memory it has for a variable (this is an essential part of the new design) so itâs also likely that large programs wonât fit into a variable.
All that said, Sonic Pi isnât going away any time soonâŚ
Bummer.
Will there be support for creating object-oriented code, to encapsulate complexity?
Not planned at all. Sonic Pi doesnât support this either thoughâŚ
What kind of complexity do you need to manage?
Oh, things like dynamically turning on and off effects, arguments to commands, etc.
Iâm sure there will be a way to do things to manage it. Iâm just going to have to refactor everything, which is a huge job.
Still, looking forward to the benefits of tau.
Can you give me code examples of what youâd like to see here?
The most ambitious method is arrange. That should give you an idea of what Iâm up to. But also lfo, env, trancegate, etc. I have some stuff in testing involving granular synthesis, whistle sounds based on resonant filters and white noise, and also multisample support a la decent/kontakt, but theyâre not ready for prime time quite yet.