vivid: Sound synthesis with SuperCollider

[ audio, library, music, sound ] [ Propose Tags ]

Music and sound synthesis with SuperCollider.

Example usage:

{-# LANGUAGE DataKinds #-}
import Vivid

theSound = sd (0 ::I "note") $ do
   wobble <- sinOsc (freq_ 5) ? KR ~* 10 ~+ 10
   s <- 0.1 ~* sinOsc (freq_ $ midiCPS (V::V "note") ~+ wobble)
   out 0 [s,s]

playSong = do
   fork $ do
      s0 <- synth theSound (36 ::I "note")
      wait 1
      free s0
   s1 <- synth theSound (60 ::I "note")
   forM_ [62,66,64] $ \note -> do
      wait (1/4)
      set s1 (note ::I "note")
   wait (1/4)
   free s1

main = do
   putStrLn "Simplest:"
   playSong

   putStrLn "With precise timing:"
   doScheduledIn 0.1 playSong
   wait 1

   putStrLn "Written to a file, non-realtime synthesis:"
   putStrLn "(Need to quit the running server for NRT)"
   quitSCServer
   writeNRT "/tmp/song.wav" playSong
Versions 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5, 0.3.0.0, 0.3.0.1, 0.3.0.2
Dependencies base (>1 && <1), binary (>0.5.0.2 && <0.9), bytestring (>0.9.1.8 && <0.11), containers (>0.4.0.0 && <0.6), filepath (>=1.0 && <1.5), hashable (>=1.2.0.6 && <1.3), MonadRandom (>=0.1 && <0.5), mtl (>=2.0.0.0 && <2.3), network (>=2.3 && <2.7), process (>=1.0.1.4 && <1.5), random (>=1.0.0.3 && <=1.0.1.1 || ==1.1.*), random-shuffle (>=0.0.3 && <0.1), split (>=0.2.0.0 && <0.3), stm (>=2.2.0.1 && <2.5), time (>=1.2 && <1.7), transformers (>=0.2.0.0 && <0.6) [details]
License LicenseRef-GPL
Author Tom Murphy
Maintainer Tom Murphy
Revised Revision 2 made by HerbertValerioRiedel at Fri Dec 30 09:14:40 UTC 2016
Category Audio, Music, Sound
Uploaded by TomMurphy at Sat Mar 19 17:01:00 UTC 2016
Distributions LTSHaskell:0.3.0.2, NixOS:0.3.0.2, Stackage:0.3.0.2, openSUSE:0.3.0.2
Downloads 4644 total (45 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-27 [all 3 reports]
Hackage Matrix CI

Modules

  • Vivid
    • Vivid.Actions
      • Vivid.Actions.Class
      • Vivid.Actions.IO
      • Vivid.Actions.NRT
      • Vivid.Actions.Scheduled
    • Vivid.ByteBeat
    • Vivid.Envelopes
    • Vivid.NoPlugins
    • Vivid.OSC
    • Vivid.Randomness
    • Vivid.SCServer
      • Vivid.SCServer.Connection
      • Vivid.SCServer.State
      • Vivid.SCServer.Types
    • Vivid.SynthDef
      • Vivid.SynthDef.FromUA
      • Vivid.SynthDef.Literally
      • Vivid.SynthDef.ToSig
      • Vivid.SynthDef.Types
      • Vivid.SynthDef.TypesafeArgs
    • Vivid.UGens
      • Vivid.UGens.Algebraic
      • Vivid.UGens.Analysis
      • Vivid.UGens.Args
      • Vivid.UGens.Buffer
      • Vivid.UGens.Conversion
      • Vivid.UGens.Convolution
      • Vivid.UGens.Delays
      • Vivid.UGens.Demand
      • Vivid.UGens.Dynamics
      • Vivid.UGens.Envelopes
      • Vivid.UGens.Examples
      • Vivid.UGens.FFT
      • Vivid.UGens.Filters
        • Vivid.UGens.Filters.BEQSuite
        • Vivid.UGens.Filters.Linear
        • Vivid.UGens.Filters.Nonlinear
        • Vivid.UGens.Filters.Pitch
      • Generators
        • Vivid.UGens.Generators.Chaotic
        • Vivid.UGens.Generators.Deterministic
        • Vivid.UGens.Generators.Granular
        • Vivid.UGens.Generators.SingleValue
        • Vivid.UGens.Generators.Stochastic
      • Vivid.UGens.InOut
      • Vivid.UGens.Info
      • Vivid.UGens.Maths
      • Vivid.UGens.Multichannel
      • Vivid.UGens.Random
      • Vivid.UGens.Reverbs
      • Vivid.UGens.SynthControl
      • Vivid.UGens.Triggers
      • Vivid.UGens.Undocumented
      • Vivid.UGens.UserInteraction

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees