[Csnd] new composition: lighthouse
Date | 2011-12-23 20:02 |
From | Anton Kholomiov |
Subject | [Csnd] new composition: lighthouse |
Here is my first csound composition. Night, sea and blinking stars Anton |
Date | 2011-12-23 20:03 |
From | Anton Kholomiov |
Subject | [Csnd] Re: new composition: lighthouse |
ooups, here it is 2011/12/24 Anton Kholomiov <anton.kholomiov@gmail.com> Here is my first csound composition. Night, sea and blinking stars |
Date | 2011-12-23 22:38 |
From | Rory Walsh |
Subject | Re: [Csnd] Re: new composition: lighthouse |
Nice. How did you put it all together? On 23 December 2011 20:03, Anton Kholomiov |
Date | 2011-12-23 22:49 |
From | Dave Phillips |
Subject | Re: [Csnd] Re: new composition: lighthouse |
On 12/23/2011 03:03 PM, Anton Kholomiov wrote:
Sweet. Nicely made. Thanks for sharing. Make more. :) Best regards, dp |
Date | 2011-12-24 07:48 |
From | Anton Kholomiov |
Subject | Re: [Csnd] Re: new composition: lighthouse |
Attachments | lighthouse-src.zip |
Thanks) it was done almost year ago for the first version of csound-expression library. Csound code is generated from haskell function. I haven't done much more because there are some implementation problems
that I can not resolve. Library works really slow on big instruments (>1000 lines of csound code). Here is the source code. Haskell functions are applied very much like csound opcodes
but they can be nested and arguments are separated with spaces. 2011/12/24 Dave Phillips <dlphillips@woh.rr.com>
|
Date | 2011-12-24 08:08 |
From | Anton Kholomiov |
Subject | Re: [Csnd] Re: new composition: lighthouse |
Main strength is composability of score parts. In *.hs file score part takes 50 lines and in *.csd it is almost 700. There are loops that can be hided with special csound-structures. But in *.hs-code this special structures are just ordinary
functions that can be used in another functions. 2011/12/24 Anton Kholomiov <anton.kholomiov@gmail.com> Thanks) |
Date | 2011-12-24 10:59 |
From | Erik de Castro Lopo |
Subject | Re: [Csnd] Re: new composition: lighthouse |
Anton Kholomiov wrote: > Main strength is composability of score parts. In *.hs file score part > takes 50 lines > and in *.csd it is almost 700. There are loops that can be hided with > special > csound-structures. But in *.hs-code this special structures are just > ordinary > functions that can be used in another functions. As a Haskell guy, I find the Haskell code far more readable than a Csound score or orchestra :-). In an earlier email you said: > I haven't done much more because there are some implementation problems > that I can not resolve. Library works really slow on big instruments > (>1000 lines of csound code). What ere these problems? Cheers, Erik |
Date | 2011-12-24 19:37 |
From | Anton Kholomiov |
Subject | Re: [Csnd] Re: new composition: lighthouse |
Here goes some heresy from csound point of view. But my intuition tells me that score-orchestra subdivision is artificial. It does exist, but score level doesn't sit on top of instrument-level. Scores played with instruments becomes a signal. Which can be transformed somehow. Simple example about echo. Imagine string quartet that plays Bach in the cave. Every musician plays notes and produces signal. The signal hits the walls, walls are producing echo. Here cave is a transformation. It's not an instrument to be triggered (and held until musicians decide to end the show). I tried to implement this model with haskell. I need a way to render to csound a function: sco :: Score Signal -> Signal ---------------------------------------------------- -- WARNING. some haskell-spoiler ahead ----------------------------------------------------- Here Score - is some container of events. Event contains start time, duration, and Signal. I have no clue how to manage it. My brain is drowned in possible combinations (as you can see that result of sco function can become the argument of sco function, aaah, and i have to reduce it to score-orchestra). My library can not do it at all. You will find some ugly (in functional programming setting) functions that try to imitate csound globals. There are some good things it can do. It can convert container (Score Signal) to csd-file. There is no notion of instrument. csound-instruments are derived from (Score Signal) value. But! this procedure requires to extract function from pool of values. My algorithm is not an ideal one, but in any algorithm speed of rendering depends on size of the signal description and length of the (Score) container. A lot of notes and big instruments make it impractical to use. I've tried to implement woodwind from csound book. Having no instruments allows composer to choose any representation for note, provided you can build signals from notes. Anton 2011/12/24 Erik de Castro Lopo <mle+la@mega-nerd.com>
|
Date | 2011-12-24 20:12 |
From | Victor Lazzarini |
Subject | Re: [Csnd] Re: new composition: lighthouse |
No heresy at all. Csound should strive to be an open system at all times and let people do what they want with it. On 24 Dec 2011, at 19:37, Anton Kholomiov wrote: Here goes some heresy from csound point of view. Dr Victor Lazzarini Senior Lecturer Dept. of Music NUI Maynooth Ireland tel.: +353 1 708 3545 Victor dot Lazzarini AT nuim dot ie |
Date | 2011-12-27 19:30 |
From | "H.Loess" |
Subject | [Csnd] Re: new composition: lighthouse |
< |
Date | 2012-01-02 16:39 |
From | Anton Kholomiov |
Subject | Re: [Csnd] Re: new composition: lighthouse |
My sense is that right now, the haskell functions can pass instruments and I'd like to hide all routing behind the functional interface. In my ideal library there is no need for routing. It's against the basic principles of functional
programming. You can collect all signals you need in one signal and then plug it in opcode then take output and plug it in another function. |