by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Ebmtranceboy
    @Ebmtranceboy
    I don't see a relation between spell-music and pirate radio and your link is dead. Be more specific
    ævan.0π.com
    @evanstapler
    i dream of a radio station where the music can be modulated by each listener, contributing to a larger theme in a crowd-sourced performance
    i want to find people who share this idea of "modular music"
    the best i've found is @ampme app and a few bluetooth theremin-like synths
    Ebmtranceboy
    @Ebmtranceboy
    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
    æ̹̯̅͆̇͞͞vanstapler
    @Magikarp_twitter
    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
    @Ebmtranceboy
    I had a very peculiar experience a couple nights ago when I attempted to try that website out
    apparently there's an older .net version too lol
    I'm looking forward to participating, although I haven't been able to reach out to the site operator
    just to make anyone aware: i acquired a 5 watt FM transmitter yesterday, along with some big AIRCOM box (signal tester??) and other various EMF spectrum modulators
    ævan.0π.com
    @evanstapler
    Good morning. I'm a diagnosed schizophrenic with synesthesia symptoms. I'm very much interested in helping people use technology with newfound accessibility features I've worked on. I will be starting a nonprofit to raise awareness, reach me at C12@ævan.com or evan@ævan.com. I can also be reached via phone at 9373031420, or twitter @magikarp. For an example of my symptoms, please see my youtu.be/evanstapler . Thank you for your time.
    æ̹̯̅͆̇͞͞vanstapler
    @Magikarp_twitter
    sup
    æ̹̯̅͆̇͞͞vanstapler
    @Magikarp_twitter
    I'm currently broadcasting @ 88.9 MHz via FM radio if anyone can boost my signal from a distance. Here's my location: https://maps.app.goo.gl/IC65KuiRNxPm1Pnr2
    Axel
    @pelagisk

    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 Sig2while others have ... -> Sig -> SE Sig. How do I deal with this specific case and a function to put the Sig into a Sig2or 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?

    Ebmtranceboy
    @Ebmtranceboy
    @pelagisk you can get what you want by
    snare = at (hp 1000 10) . at (chorus 0.1 0.2 0.1) $ mul (adsr 0.01 0.4 0 0) pink
    Axel
    @pelagisk
    @Ebmtranceboy very clear, thanks!
    Ebmtranceboy
    @Ebmtranceboy
    Furthermore Sig2 type is just an alias of (Sig,Sig).
    Axel
    @pelagisk
    ah so I just fmap fst for mono?
    Anton Kholomiov
    @anton-k
    There is a function
    toMono :: Sig2 -> Sig
    fromMono :: Sig -> Sig2
    Axel
    @pelagisk
    better, thanks
    Axel
    @pelagisk

    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?

    Ebmtranceboy
    @Ebmtranceboy
    maybe you can try pat' ?
    dac $ loop $ mel [lim 8 $ pat' [1, 0.5, 0.25, 0.1] [1] (wav1 "../sample/kick1.wav"), rest 8]
    Axel
    @pelagisk

    the problem is that pat' has signature

    pat'  :: [Csound.Typed.Types.Prim.D]  -> [Csound.Typed.Types.Prim.D] -> Sam -> Sam

    and that I want it to work with type Scosomehow

    Ebmtranceboy
    @Ebmtranceboy
    He will confirm but Anton is not very pleased with Sco as it is atm. Maybe schedu le some events ?
    Anton Kholomiov
    @anton-k
    @pelagisk In theory you can render Scores to signal (mix . sco) and then pack it to sample (toSam | limSam)
    Though I guess that the function like scaling wouldn't work across the rendered scores..
    Anton Kholomiov
    @anton-k
    Actually in your example you can read the sample with plain function like:
    readSnd :: String -> (Sig, Sig)
    
    clap :: D -> SE Sig2
    clap _ = return $ readSnd "clap.wav"
    or there are some wariants that rescale with bpm

    like this one:

    loopRam, readRam :: Fidelity -> TempoSig -> PitchSig -> String -> Sig2

    though they expose a bit more params than wav1

    Axel
    @pelagisk
    That is slightly better, thanks!
    Vladislav Sabanov
    @willbasky
    Hi all!
    i try the library.
    And there are some quistions.

    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?

    ticks or nticks doesn`t matter. And some other functions behave like that.
    Vladislav Sabanov
    @willbasky
    And where has library Csound.Patch moved?
    Vladislav Sabanov
    @willbasky
    there is no sound here also:
    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
    Anton Kholomiov
    @anton-k

    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
    O'Brien
    @Frequent-Clicker
    Hi Anton, would you still recommend the learning resources you linked to from your GitHub for a complete beginner? thanks!
    Anton Kholomiov
    @anton-k
    Hi! What resources do you mean?
    O'Brien
    @Frequent-Clicker
    In your readme file it contained links labeled things like "introduction" I assumed these were helping resources?
    csound knowledge is not mandatory but it often help, there are many parallels
    fbous
    @fbous

    Hi Anton! Thanks for the awesome library. It is exactly what I was looking for for my new project. (I'm reading osc-data generated from cell-phone sensors to drive synthesizers and produce different sounds.) I particularly appreciate the tutorial, which really is a good introduction and shows how simple it is to generate complex sound with just a few lines.

    I was wondering, is there a way to use external audio sources (in particular microphones)? I've seen something in Csound.Options about PulseAudio, Jack, adc etc., but it is not clear to me how this can be used to actually get a Sig type for further processing. Idealy I am looking for something like

    getInp :: SE Sig
    effect :: Sig -> SE Sig
    
    main = dac $ getInp >>= effect

    where getInp provides the microphone input and effect is the function that I want to apply to the microphone input.
    Currently I'm running the whole thing on a Debian with Pulse Audio, but Jack is an option.

    Anton Kholomiov
    @anton-k
    You can use it like this:
    main = dac effect
    dac also accepts functions SigN -> SigM or SigN -> SE SigM. It will pass all needed flags to read the input. Be sure to match the number of inputs of your card. For example if you have 2x2 card. You should pass to dac Sig2 -> SE Sig2 and use only channel that you want.
    fbous
    @fbous

    Simple and yet so powerful! It worked almost instantly. Thanks for the quick reply.

    It's worth mentioning (for anyone else reading this) that the input may have to be scaled down by a lot (like 2 ** 8). For me the code

    main = dac $ ((\mic -> mic) :: Sig2 -> Sig2)

    generated only noise, while

    main = dac $ ((\mic -> mul (2 ** (-8)) mic) :: Sig2 -> Sig2)

    successfully created a loop back.

    Anton Kholomiov
    @anton-k
    Good to know! Scaling factor is often controled with the input gain. Maybe huge one like this stems from digits format mismatch. Like your card is sending in +-32k and Csound expcts it to be [-1, 1]