Awesome! I hadn't realized you could create and free synths from Vivid. That'll be really helpful -- it means I won't have to keep a giant bank of synths that mostly aren't doing anything.
Yep! You shouldn't need sclang for anything - Vivid can do anything it can.
But I'm getting this error:
• Variable not in scope: b2i :: BufferId -> I "buf"
• Perhaps you meant ‘b2_’ (imported from Vivid)
Are you running an old version of Vivid? Any version 0.3.* should have it.
Also, suppose I really wanted to pass a string to SC, for instance to switch some oscillator from a square wave to a sine wave. Is it possible?
Unfortunately/fortunately the SC server doesn't let you change a signal graph at runtime like this.
Your best bet, if you wanted to do a switch, would be to have both the square wave and the saw wave in the graph, and change what you multiply
sd (0 :: I "switch") $ do
s0 <- lfPulse (freq_ 440)
s1 <- lfSaw (freq_ 440)
s <- (V::V "switch") ~* s0
~+ (1 ~- (V::V "switch")) ~* s1
Then if you set "switch" to 0 you get all saw wave, and to 1 and you get all square wave. (And, at 0.5 an even mix of each)
You _can_ send strings to the sc server, but I don't know of any time you need to in Vivid. If you need to for some reason there's always the vivid-osc package (which vivid uses)