Hacking Haskell in Nightclubs?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Hacking Haskell in Nightclubs?

Rohan Drape-2
Real-time audio is much simpler these days due to SuperCollider, a
truly excellent cross platform audio synthesis server by James
McCartney.

  http://www.audiosynth.com
  http://supercollider.sf.net

To communicate with the server one only needs to implement the most
basic aspects of the Open Sound Control (OSC) byte protocol (in
particular none of the pattern matching is required).

  http://www.opensoundcontrol.org/

To define 'instruments' there is a SuperCollider specific byte
protocol for describing Unit Generator (UGen) graphs.

I have an initial Haskell implementation of both these protocols at:

  http://www.slavepianos.org/rd/f/207949/
  darcs get http://www.slavepianos.org/rd/sw/sw-69/

If SuperCollider is running on the local host at the usual port then:

  Hsc*> play' sc ab
  Hsc*> stop' sc

should play (and then stop playing) the famous 'Analog Bubbles' test
sound:

ab = out AR 0 $ combn AR s 0.2 0.2 4
    where s = sinosc AR (midicps f) 0 * 0.1
          f = lfsaw KR 0.4 0 * 24 + o
          o = lfsaw KR (MCE [8, 7.23]) 0 * 3 + 80

The Hsc module can also write UGen graphs to the 'dot' language, so
graphs can be drawn automatically, which can be useful for debugging.

I have been working with scheme and SuperCollider for some time, but
have been using haskell recently and generally like it very well.  I
don't think static typing is an issue.

OSC messages can be timestamped, and SuperCollider has a sample
accurate scheduling queue, so language timing jitter can easily be
worked around.  I think that the SuperCollider model is an excellent
fit with languages like Haskell.

Regards,
Rohan

On Mon Nov 28 21:35:38 EST 2005 Paul Hudak wrote:

> Although Haskore (haskell.org/haskore) doesn't currently support
> real-time music, it's something I've thought about numerous times in the
> past, and wish I had the time to do it...
>
>    -Paul Hudak
>
>
> Echo Nolan wrote:
> > Hello all,
> > I read an article on using perl for live improvised synthesis a
> > while ago (http://www.perl.com/pub/a/2004/08/31/livecode.html). Does
> > anyone have thoughts in doing this is haskell? Would strong typing make
> > "jazzy" programming too difficult?


_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Hacking Haskell in Nightclubs?

Hudak, Paul
[hidden email] wrote:
> Real-time audio is much simpler these days due to SuperCollider, a
> truly excellent cross platform audio synthesis server by James
> McCartney.
> ...
> OSC messages can be timestamped, and SuperCollider has a sample
> accurate scheduling queue, so language timing jitter can easily be
> worked around.  I think that the SuperCollider model is an excellent
> fit with languages like Haskell.

Thanks, this is just what I've been waiting for!  I believe the
time-stamping of events, and a suitable scheduling queue, are critical
for making real-time music.  With the work you've done I suspect it
would be pretty easy to build a SuperCollider backend for Haskore.

   -Paul

> Regards,
> Rohan
>
> On Mon Nov 28 21:35:38 EST 2005 Paul Hudak wrote:
>>Although Haskore (haskell.org/haskore) doesn't currently support
>>real-time music, it's something I've thought about numerous times in the
>>past, and wish I had the time to do it...
>>-Paul Hudak
_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Hacking Haskell in Nightclubs?

Shae Matijs Erisson
In reply to this post by Rohan Drape-2
[hidden email] writes:

> I have an initial Haskell implementation of both these protocols at:
>   http://www.slavepianos.org/rd/f/207949/
>   darcs get http://www.slavepianos.org/rd/sw/sw-69/

This is nifty, can you give an explicit license so I know how I can use it?
"Setup.hs: Warning: No license-file field."
--
Shae Matijs Erisson - http://www.ScannedInAvian.com/ - Sockmonster once said:
You could switch out the unicycles for badgers, and the game would be the same.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Re: Hacking Haskell in Nightclubs?

Henning Thielemann
In reply to this post by Hudak, Paul

On Tue, 29 Nov 2005, Paul Hudak wrote:

> [hidden email] wrote:
> > Real-time audio is much simpler these days due to SuperCollider, a
> > truly excellent cross platform audio synthesis server by James
> > McCartney.
> > ...
> > OSC messages can be timestamped, and SuperCollider has a sample
> > accurate scheduling queue, so language timing jitter can easily be
> > worked around.  I think that the SuperCollider model is an excellent
> > fit with languages like Haskell.
>
> Thanks, this is just what I've been waiting for!  I believe the
> time-stamping of events, and a suitable scheduling queue, are critical
> for making real-time music.  With the work you've done I suspect it
> would be pretty easy to build a SuperCollider backend for Haskore.

Yes, great! I also tested SuperCollider in the past but it was hard for me
to get an overview of the documentation. The simplest way for me seemed to
use the SuperCollider programming language and thus to write an Haskore
backend translating into this language. But I prefer a direct (binary)
connection to the SuperCollider server.

Btw. I'm just collecting event list related code scattered in Haskore
modules for MIDI, performance and my Haskell audio signal backend in order
to setup a module for handling lists with time stamped events. This may be
also helpful for SuperCollider then.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe
Reply | Threaded
Open this post in threaded view
|

Oops, Hsc license is clearly GPL in the Hsc.cabal file was Re: Hacking Haskell in Nightclubs?

Shae Matijs Erisson
In reply to this post by Shae Matijs Erisson
Shae Matijs Erisson <[hidden email]> writes:

> This is nifty, can you give an explicit license so I know how I can use it?
> "Setup.hs: Warning: No license-file field."

My mistake, the Hsc.cabal file clearly states GPL. (I assume I can choose
either GPL v1 or v2 ?)
--
Shae Matijs Erisson - http://www.ScannedInAvian.com/ - Sockmonster once said:
You could switch out the unicycles for badgers, and the game would be the same.

_______________________________________________
Haskell-Cafe mailing list
[hidden email]
http://www.haskell.org/mailman/listinfo/haskell-cafe