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 [faq] 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, 0.4.2.0, 0.4.2.1, 0.4.2.2, 0.4.2.3, 0.4.2.4 (info)
Dependencies base (>3 && <5), 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 5 made by TomMurphy at 2016-03-20T18:37:20Z
Category Audio, Music, Sound
Uploaded by TomMurphy at 2016-03-20T17:48:09Z
Distributions LTSHaskell:0.4.2.3, NixOS:0.4.2.4, Stackage:0.4.2.3
Downloads 7991 total (251 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-03-20 [all 1 reports]

Modules

[Index]

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