Re: [haskell art] ANN: vivid 0.2: SC in Haskell

2016-03-22 Thread Julian Rohrhuber
― Attachment links are at the end of this email ―


> On 22.03.2016, at 05:14, 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.

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

2016-03-22 Thread Miguel Negrão
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

2016-03-22 Thread amindfv
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 Laforge  escribió:
> 
> 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

2016-03-22 Thread amindfv
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

2016-03-22 Thread Henning Thielemann

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

2016-03-22 Thread Henning Thielemann

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