tidal 0.4.31 → 0.4.32
raw patch · 2 files changed
+2/−164 lines, 2 filesdep −alsa-coredep −alsa-seqdep ~hosc
Dependencies removed: alsa-core, alsa-seq
Dependency ranges changed: hosc
Files
- Sound/Tidal/VolcaKeys.hs +0/−161
- tidal.cabal +2/−3
− Sound/Tidal/VolcaKeys.hs
@@ -1,161 +0,0 @@- -module Sound.Tidal.VolcaKeys where--import qualified Sound.ALSA.Sequencer.Address as Addr-import qualified Sound.ALSA.Sequencer.Client as Client-import qualified Sound.ALSA.Sequencer.Port as Port-import qualified Sound.ALSA.Sequencer.Event as Event-import qualified Sound.ALSA.Sequencer as SndSeq-import qualified Sound.ALSA.Exception as AlsaExc-import qualified Sound.ALSA.Sequencer.Connect as Connect-import GHC.Word-import GHC.Int--import Sound.OSC.FD-import qualified Data.Map as Map-import Control.Applicative-import Control.Concurrent.MVar---import Visual-import Data.Hashable-import Data.Bits-import Data.Maybe-import System.Process-import Control.Concurrent--import Sound.Tidal.Stream-import Sound.Tidal.Pattern-import Sound.Tidal.Parse--channel = Event.Channel 0--keys :: OscShape-keys = OscShape {path = "/note",- params = [ I "note" Nothing,- F "dur" (Just (0.05)),- F "portamento" (Just (-1)),- F "expression" (Just (-1)),- F "voice" (Just (-1)),- F "octave" (Just (-1)),- F "detune" (Just (-1)),- F "vcoegint" (Just (-1)),- F "kcutoff" (Just (-1)),- F "vcfegint" (Just (-1)),- F "lforate" (Just (-1)),- F "lfopitchint" (Just (-1)),- F "lfocutoffint" (Just (-1)),- F "attack" (Just (-1)),- F "decay" (Just (-1)),- F "sustain" (Just (-1)),- F "dtime" (Just (-1)),- F "dfeedback" (Just (-1))- ],- cpsStamp = False,- timestamp = NoStamp,- latency = 0,- namedParams = False,- preamble = []- }--keyStream = stream "127.0.0.1" 7303 keys--note = makeI keys "note"-dur = makeF keys "dur"-portamento = makeF keys "portamento"-expression = makeF keys "expression"-octave = makeF keys "octave"-voice = makeF keys "voice"-detune = makeF keys "detune"-vcoegint = makeF keys "vcoegint"-kcutoff = makeF keys "kcutoff"-vcfegint = makeF keys "vcfegint"-lforate = makeF keys "lforate"-lfopitchint = makeF keys "lfopitchint"-lfocutoffint = makeF keys "lfocutoffint"-attack = makeF keys "attack"-decay = makeF keys "decay"-sustain = makeF keys "sustain"-dtime = makeF keys "dtime"-dfeedback = makeF keys "dfeedback"---keynames = map name (tail $ tail $ params keys)--keyproxy latency midiport = - do h <- SndSeq.openDefault SndSeq.Block- Client.setName (h :: SndSeq.T SndSeq.OutputMode) "Tidal"- c <- Client.getId h- p <- Port.createSimple h "out"- (Port.caps [Port.capRead, Port.capSubsRead]) Port.typeMidiGeneric- conn <- Connect.createTo h p =<< Addr.parse h midiport- x <- udpServer "127.0.0.1" 7303- forkIO $ loop h conn x- return ()- where loop h conn x = do m <- recvMessage x- act h conn m- loop h conn x- act h conn (Just (Message "/note" (note:dur:ctrls))) = - do -- print $ "Got note " ++ show note- let note' = (fromJust $ d_get note) :: Int- dur' = (fromJust $ d_get dur) :: Float- ctrls' = (map (fromJust . d_get) ctrls) :: [Float]- sendmidi latency h conn (fromIntegral note', dur') ctrls'- return ()---sendmidi latency h conn (note,dur) ctrls = - do forkIO $ do threadDelay latency- Event.outputDirect h $ noteOn conn note 60- threadDelay (floor $ 1000000 * dur)- Event.outputDirect h $ noteOff conn note- return ()- let ctrls' = map (floor . (* 127)) ctrls- ctrls'' = filter ((>=0) . snd) (zip keynames ctrls')- --ctrls''' = map (\x -> (x, fromJust $ lookup x ctrls'')) usectrls- --putStrLn $ show ctrls''- sequence_ $ map (\(name, ctrl) -> Event.outputDirect h $ makeCtrl conn (ctrlN name ctrl)) ctrls''- return ()--ctrlN "portamento" v = (5, v)-ctrlN "expression" v = (11, v)-ctrlN "voice" v = (40, v)-ctrlN "octave" v = (41, v)-ctrlN "detune" v = (42, v)-ctrlN "vcoegint" v = (43, v)-ctrlN "kcutoff" v = (44, v)-ctrlN "vcfegint" v = (45, v)-ctrlN "lforate" v = (46, v)-ctrlN "lfopitchint" v = (47, v)-ctrlN "lfocutoffint" v = (48, v)-ctrlN "attack" v = (49, v)-ctrlN "decay" v = (50, v)-ctrlN "sustain" v = (51, v)-ctrlN "dtime" v = (52, v)-ctrlN "dfeedback" v = (53, v)-ctrlN s _ = error $ "no match for " ++ s-----noteOn :: Connect.T -> Word8 -> Word8 -> Event.T-noteOn conn val vel = - Event.forConnection conn - $ Event.NoteEv Event.NoteOn- $ Event.simpleNote channel- (Event.Pitch (val))- (Event.Velocity vel)--noteOff :: Connect.T -> Word8 -> Event.T-noteOff conn val = - Event.forConnection conn - $ Event.NoteEv Event.NoteOff- $ Event.simpleNote channel- (Event.Pitch (val))- (Event.normalVelocity)--makeCtrl :: Connect.T -> (Word32, GHC.Int.Int32) -> Event.T-makeCtrl conn (c, n) = - Event.forConnection conn - $ Event.CtrlEv Event.Controller $ Event.Ctrl - channel - (Event.Parameter c) - (Event.Value n)
tidal.cabal view
@@ -1,5 +1,5 @@ name: tidal-version: 0.4.31+version: 0.4.32 synopsis: Pattern language for improvised music -- description: homepage: http://tidal.lurk.org/@@ -28,6 +28,5 @@ Sound.Tidal.Context Sound.Tidal.Utils Sound.Tidal.SuperCollider- Sound.Tidal.VolcaKeys - Build-depends: base < 5, process, parsec, hosc > 0.13, hashable, colour, containers, time, websockets > 0.8, text, mtl >=2.1, transformers, mersenne-random-pure64,binary, bytestring, hmt, alsa-seq, alsa-core+ Build-depends: base < 5, process, parsec, hosc > 0.13, hashable, colour, containers, time, websockets > 0.8, text, mtl >=2.1, transformers, mersenne-random-pure64,binary, bytestring, hmt