4 ms·
Vivid: Sound Synthesis in Haskell [video]
- mmarx 12y agoIt's a pity that there is so much background noise on the audio, it really makes this hard to watch, especially on headphones. Vivid is an interface SuperCollider, apparently built with livecoding in mind. The talk itself is mostly examples and provides little detail on how the system works behind the scenes.
- tessierashpool 12y agofwiw, Clojure's Overtone is also an interface to SuperCollider. pretty awesome, because I recall vaguely when SuperCollider first began, and I don't think anybody said "this will be the common platform for live-coding libraries in functional languages in the future" at the time.
- subnaught 12y agoThere's also a Scala client: http://www.sciss.de/scalaCollider/ http://www.sciss.de/scalaCollider/ And if you go back to McCartney's original paper (http://www.audiosynth.com/icmc96paper.html http://www.audiosynth.com/icmc96paper.html), you can see that functional ideas have been in there from the beginning: "The idea behind SuperCollider was to provide audio synthesis in a high level language with dynamic typing, lists, garbage collection and closures. Normally a language of this type is too slow to do signal processing. By creating a signal data type which represents a buffer of samples over a short time frame, and defining operators for that data type, it is possible to amortize the cost of the interpreter over many samples."
- pierrec 12y ago"Normally a language of this type is too slow to do signal processing." That is one of the founding principles of many current sound synthesis programming tools. In light of the recent developments in JIT-enhanced languages (I'm thinking of LuaJIT), it should now be possibles to work with less layers and more freedom, directly with the samples, in a high level language. And now comes the plug: This is exactly what protoplug allows you to do, and as a VST plugin it works inside modern music-making software: http://www.osar.fr/protoplug/ http://www.osar.fr/protoplug/ Obviously the design goals are very different from something like Vivid, and it doesn't have the SuperCollider features to back it up.
- jlrubin 12y agoThis is awesome work -- Tidal also has a bleeding edge interface to supercollider, worth checking out. https://github.com/tidalcycles/Tidal/blob/master/examples/supercollider.tidal https://github.com/tidalcycles/Tidal/blob/master/examples/su...
- eggy 12y agoHow does this compare to Euterpea [1] another Haskell-based music development DSL that can do real-time? It is Haskore and HasSound based, not Supercollider. I couldn't make the comparison after watching most of the video for Vivid. [1] http://haskell.cs.yale.edu/euterpea/ http://haskell.cs.yale.edu/euterpea/
- vivid-synth 12y ago(I'm the author of Vivid) Euterpea has a high-level music language and FRP framework that Vivid doesn't (yet). On the other hand, from conversations with a developer of Euterpea, Vivid is probably far more performant for real-time. Because of its performance and design goals, Vivid is also much more suited to live performance (in my opinion). You could say Euterpea is like writing a classical score to Vivid's rock band. They aren't at all incompatible though, and I'd be excited to see Euterpea <-> Vivid interop.
- eggy 12y agoCool, I will give Vivid a shot since my goal is more livecoding than composing. Any chance of integrating graphics like Overtone has with Shadertone or Quil, or like Exetempore's builtin fuctions? Good work.