Re: [haskell art] ANN: vivid 0.2: SC in Haskell
― Attachment links are at the end of this email ― > On 22.03.2016, at 05:14, Evan Laforgewrote: > > I've long been a bit interested in supercollider, but never really > even heard any music done with it, or sequencers that can drive it, > and thus I haven't been too clear on its capabilities beyond "here's a > tutorial on how to make a Shepard tone" kind of stuff. The sequencing is mostly done by the composition written in supercollider itself. There is a lot of music that either uses sc as an instrument or is completely written in it. As it seems, many composers don’t publish the full score, and many performers don’t ever finish their instruments! But if you look around a bit, you’ll find a lot on the web. here are a few links: https://archive.org/search.php?query=supercollider http://sccode.org/ https://soundcloud.com/groups/supercollider If you happen to be into the sonification of mathematics, there is my album at mego: http://editionsmego.com/release/eMEGO-191-TA-115. Now there is also a supercollider sound engine for tidal, which may be also one possible easy way to explore if you are interested in using haskell as a sequencer. Haskell Art now contains the following file http://lurk.org/r/file/lCp53JucqMSrUPJcuECn5mm4WVq-dA-2zdKd9s Name: signature.asc Type: application/pgp-signature Size: 0KB -- Read the whole topic here: Haskell Art: http://lurk.org/r/topic/6uBTwHcudFl1ZhE2JVIHgw To leave Haskell Art, email haskell-...@group.lurk.org with the following email subject: unsubscribe
Re: [haskell art] ANN: vivid 0.2: SC in Haskell
On 22-03-2016 04:14, Evan Laforge wrote: > Do you have any more details on what this is for, beyond a nice way to > control supercollider from haskell? Perhaps music recordings, or > plans for a higher level interface? > > I've long been a bit interested in supercollider, but never really > even heard any music done with it, or sequencers that can drive it, > and thus I haven't been too clear on its capabilities beyond "here's a > tutorial on how to make a Shepard tone" kind of stuff. Hi Evan, All my music since 2008 is made with SuperCollider. You can listen for instance to some tracks here: https://soundcloud.com/zlb/sets/works https://soundcloud.com/zlb/sets/live I hope that give you some sense of what you can do with it. Best, Miguel -- Read the whole topic here: Haskell Art: http://lurk.org/r/topic/5Zjvq5rrKTIYrosjiLcVgX To leave Haskell Art, email haskell-...@group.lurk.org with the following email subject: unsubscribe
Re: [haskell art] ANN: vivid 0.2: SC in Haskell
Hi Evan -- the primary design goal for it is to be a clean interface for making music, particularly live. Function names are short, things are monadic so you can write succinct do-blocks, and there's no required "busywork" keeping users from just writing music. I don't have any recordings offhand (other than a couple tiny recordings on vivid-synth.com -- and the code for those is old!), but someone is performing this Saturday in NYC using it; maybe we'll have audio/video after that. If there's a particular type of example people would like to see, let me know -- I can probably make it happen. Thanks, Tom > El 22 mar 2016, a las 00:14, Evan Laforgeescribió: > > Do you have any more details on what this is for, beyond a nice way to > control supercollider from haskell? Perhaps music recordings, or > plans for a higher level interface? > > I've long been a bit interested in supercollider, but never really > even heard any music done with it, or sequencers that can drive it, > and thus I haven't been too clear on its capabilities beyond "here's a > tutorial on how to make a Shepard tone" kind of stuff. > >> On Sun, Mar 20, 2016 at 11:45 AM, wrote: >> Vivid is a library for controlling SuperCollider from Haskell. Vivid 0.2 is >> a massive update from 0.1. >> >> A lot of work has gone into this; I'm really excited it's out! Notable >> features: >> - One universal notion of timing: if you have any musical pattern "foo", >> you can play it by calling "foo", or you can schedule its timing precisely >> by calling "doScheduledIn 0.1 foo", or you can write it to a file with >> "writeNRT "foo.wav" foo" >> - Arguments to SynthDefs are now typechecked; in fact everything is. >> Nothing's stringly-typed anymore. >> - 0.1 didn't have a notion of UGens having default argument values. Now we >> do, and there's a much nicer UGen design in general. >> >> There's a "hello world" example on its homepage, and I'd be more than happy >> to hear feedback or answer questions! >> >> https://hackage.haskell.org/package/vivid >> >> Tom >> -- >> >> Read the whole topic here: Haskell Art: >> http://lurk.org/r/topic/2KEKSNIzQ6lhxDprJVrt4r >> >> To leave Haskell Art, email haskell-...@group.lurk.org with the following >> email subject: unsubscribe > > -- > > Read the whole topic here: Haskell Art: > http://lurk.org/r/topic/3yiciKuhIn5MfNE5U99ZLu > > To leave Haskell Art, email haskell-...@group.lurk.org with the following > email subject: unsubscribe -- Read the whole topic here: Haskell Art: http://lurk.org/r/topic/4JONA3LyejkrJL99ORkk4m To leave Haskell Art, email haskell-...@group.lurk.org with the following email subject: unsubscribe
Re: [haskell art] [sc-users] Re: ANN: Vivid: SuperCollider + Haskell
Hi Henning! The types are advanced but the user doesn't need to know any type fanciness -- they just need to know how to read e.g. Args '["freq"] '["phase"] a => As far as your alternative, I had considered something very similar, but the biggest obstacles were: - No required arguments: some UGens don't/can't have a "default" value, but there's nothing preventing the user from calling it without modifying any args - It's more work to create a new UGen: you need to create the type of the record with "foo" prefixes on its args, then an instance of that record, and also the Freq, etc instances for each arg. You'll also need a function to convert that particular ugen to something SC understands. My hope is that users can make UGens themselves fairly quickly. Most ugens in vivid are defined in a couple of lines, with a standard "makeUGen" function. Thanks, Tom > El 22 mar 2016, a las 03:56, Henning Thielemann >escribió: > > >> On Mon, 21 Mar 2016, amin...@gmail.com wrote: >> >>Resurrecting a pretty old thread here, but I think I've found a nice way >> to crack this problem, which I use in Vivid 0.2 -- thought I'd give a >> run-down: >> >>If you'll recall, when we last saw our heros they were struggling with >> the inability to have 3 things in our UGens simultaneously: >> >> - Default argument values: if we don't use records we need to require all >> arguments, and so we'd need to e.g. provide a "phase" to every SinOsc >> - Type-checked arguments: if we use records to represent our values, we >> can't use "freq" only on the ugens it makes sense on: someone could >> accidentally give WhiteNoise a freq. We could make them unambiguous, but we >> also want... >> - Short argument names: nobody wants to write "sinOscFreq" - they want to >> write "freq"! > > I just watched the interface of vivid and wondered about the scary types. > I think it would be possible even in Haskell 98 to have something like > this: > > sinOsc :: UGen SinOsc > > freq :: (Freq typ) => Float -> UGen typ -> UGen typ > phase :: (Phase typ) => Float -> UGen typ -> UGen typ > > class Freq typ where setFreq :: typ -> typ > instance Freq SinOsc where setFreq f args = args {sinOscFreq = f} > instance Phase SinOsc where ... > > SinOsc is the record holding the arguments for a sine oscillator. > > > Then you could write: >phase (pi/2) $ freq 800 sinOsc > > -- > > Read the whole topic here: Haskell Art: > http://lurk.org/r/topic/I5rZKvj6KuAhGvpTSWQV7 > > To leave Haskell Art, email haskell-...@group.lurk.org with the following > email subject: unsubscribe -- Read the whole topic here: Haskell Art: http://lurk.org/r/topic/LAU9IPp9zgjqYPmUyv30z To leave Haskell Art, email haskell-...@group.lurk.org with the following email subject: unsubscribe
Re: [haskell art] [sc-users] Re: ANN: Vivid: SuperCollider + Haskell
On Mon, 21 Mar 2016, amin...@gmail.com wrote: > Resurrecting a pretty old thread here, but I think I've found a nice way > to crack this problem, which I use in Vivid 0.2 -- thought I'd give a > run-down: > > If you'll recall, when we last saw our heros they were struggling with > the inability to have 3 things in our UGens simultaneously: > > - Default argument values: if we don't use records we need to require all > arguments, and so we'd need to e.g. provide a "phase" to every SinOsc > - Type-checked arguments: if we use records to represent our values, we > can't use "freq" only on the ugens it makes sense on: someone could > accidentally give WhiteNoise a freq. We could make them unambiguous, but we > also want... > - Short argument names: nobody wants to write "sinOscFreq" - they want to > write "freq"! I just watched the interface of vivid and wondered about the scary types. I think it would be possible even in Haskell 98 to have something like this: sinOsc :: UGen SinOsc freq :: (Freq typ) => Float -> UGen typ -> UGen typ phase :: (Phase typ) => Float -> UGen typ -> UGen typ class Freq typ where setFreq :: typ -> typ instance Freq SinOsc where setFreq f args = args {sinOscFreq = f} instance Phase SinOsc where ... SinOsc is the record holding the arguments for a sine oscillator. Then you could write: phase (pi/2) $ freq 800 sinOsc -- Read the whole topic here: Haskell Art: http://lurk.org/r/topic/I5rZKvj6KuAhGvpTSWQV7 To leave Haskell Art, email haskell-...@group.lurk.org with the following email subject: unsubscribe
Re: [haskell art] ANN: vivid 0.2: SC in Haskell
On Mon, 21 Mar 2016, Evan Laforge wrote: > I've long been a bit interested in supercollider, but never really > even heard any music done with it, or sequencers that can drive it, > and thus I haven't been too clear on its capabilities beyond "here's a > tutorial on how to make a Shepard tone" kind of stuff. I programmed music with SuperCollider via Haskore years ago: https://www.youtube.com/watch?v=d2JvOwS26Zg However, I moved to synthesizer-llvm later. -- Read the whole topic here: Haskell Art: http://lurk.org/r/topic/Mrd5wqWO2KBjBlKiwj22A To leave Haskell Art, email haskell-...@group.lurk.org with the following email subject: unsubscribe