that's a nice idea. You could provide sliders happy/sad, slow/fast to influence trends. I've heard someone on the csound mailing list having programmed an automated radio without interaction except the kind of music trance/jazz/... see https://algorythmradio.com/ . Maybe you could exchange together
Hello! I am a beginner in Haskell, coming more from mathematics, Overtone/Supercollider and composing with modular synthesizers. csound-expression
so far seems very promising to me, and I would like to thank you for creating this wonderful library! I have a few questions which I was unable to answer with the tutorial: I would like to do function composition to create effect chains (and perhaps also branch effects). However some effects have signatures like ... -> Sig -> SE Sig2
while others have ... -> Sig -> SE Sig
. How do I deal with this specific case and a function to put the Sig
into a Sig2
or the other way around? As an example of such an attempt at function composition which does not work:
snare = at (hp 1000 10 . chorus 0.1 0.2 0.1) $ mul (adsr 0.01 0.4 0 0) pink
Also (I may simply have missed this), is there a way to have buses or use things like Jack with csound-expression
?
snare = at (hp 1000 10) . at (chorus 0.1 0.2 0.1) $ mul (adsr 0.01 0.4 0 0) pink
fromMono :: Sig -> Sig2
what is the best way to combine scores and playback of samples? My current approach is:
clap :: D -> SE Sig2
clap _ = runSam bpm $ wav1 "clap.wav"
mkpattern :: [Int] -> Sco D
mkpattern lst = mel $ map (\i -> if i == 0 then rest 1 else temp (double 1.0)) lst
clapp :: Sco (Mix Sig2)
clapp = sco clap $ mkpattern [0,0,1,0,0,0,1,1]
-- then run `dac $ mix clapp`
but I would ideally like to work with samples like with Csound.Sam
like I can do with scores? Maybe there is a good way scores and samples are separated in this way?
like this one:
loopRam, readRam :: Fidelity -> TempoSig -> PitchSig -> String -> Sig2
though they expose a bit more params than wav1
dac $ testDrone $ cpspch 4.02
works. There is sound.ticks
doesn`t work, no sound. And no error:
dac $ nticks [3,2,3] 135
0dBFS level = 32768.0
--Csound version 6.10 (double samples) 2018-01-27
[commit: none]
libsndfile-1.0.28
UnifiedCSD: tmp.csd
STARTING FILE
Creating options
Creating orchestra
closing tag
Creating score
rtaudio: ALSA module enabled
rtmidi: ALSA Raw MIDI module enabled
csound command: Segmentation fault
end of score. overall amps: 0.0
overall samples out of range: 0
0 errors in performance
Elapsed time at end of performance: real: 0.253s, CPU: 0.002s
What should i do to hear sound from ticks
?
dac $ repeatSnd 3 $ leg 1 2 0 0 * osc 220
0dBFS level = 32768.0
--Csound version 6.10 (double samples) 2018-01-27
[commit: none]
libsndfile-1.0.28
UnifiedCSD: tmp.csd
STARTING FILE
Creating options
Creating orchestra
closing tag
Creating score
rtaudio: ALSA module enabled
rtmidi: ALSA Raw MIDI module enabled
csound command: Segmentation fault
end of score. overall amps: 0.0
overall samples out of range: 0
0 errors in performance
Elapsed time at end of performance: real: 0.252s, CPU: 0.002s
Hi, Vladislav! Sorry for late reply I was away in the mountains, no computers available.
I've tried nticks and it works for me. I guess that problem is with version of Csound compiler that you use.
The code indicates: csound command: Segmentation fault
I'm using:
--Csound version 6.10 (double samples) Dec 18 2017
[commit: 63b19f63a8d41005747f5d41fef3d82f23bf1d3c]
right now and all your code snippets work with it
If you compile Csound from sources it's better to compile from master branch,
not develop
The module Csound.Patch
is a part of the library csound-catalog
so if we install only csound-expression
this module is not available for us.
I guess you can try to update cabal source list and install csound-catalog:
cabal update
cabal install csound-catalog