hsc3-0.15: Haskell SuperCollider

Safe HaskellNone
LanguageHaskell98

Sound.SC3.Server.Transport.FD

Contents

Description

FD variant of interaction with the scsynth server.

This duplicates functions at Monad and at some point at least part of the duplication will be removed.

Synopsis

hosc variants

send :: Transport t => t -> Message -> IO () Source

Synonym for sendMessage.

async :: Transport t => t -> Message -> IO Message Source

Send a Message and waitReply for a /done reply.

withSC3 :: (UDP -> IO a) -> IO a Source

Bracket SC3 communication.

Server control

stop :: Transport t => t -> IO () Source

Free all nodes (g_freeAll) at group 1.

reset :: Transport t => t -> IO () Source

Free all nodes (g_freeAll) at and re-create groups 1 and 2.

playGraphdef :: Transport t => Int -> t -> Graphdef -> IO () Source

Send d_recv and s_new messages to scsynth.

playUGen :: Transport t => Int -> t -> UGen -> IO () Source

Send an anonymous instrument definition using playSynthdef.

Non-real time

run_bundle :: Transport t => t -> Time -> Bundle -> IO () Source

Wait (pauseThreadUntil) until bundle is due to be sent relative to initial Time, then send each message, asynchronously if required.

performNRT :: Transport t => t -> NRT -> IO () Source

Perform an NRT score (as would be rendered by writeNRT). In particular note that all timestamps must be in NTPr form.

Audible

class Audible e where Source

Class for values that can be encoded and sent to scsynth for audition.

Minimal complete definition

play_id

Methods

play_id :: Transport t => Int -> t -> e -> IO () Source

play :: Transport t => t -> e -> IO () Source

audition_id :: Audible e => Int -> e -> IO () Source

audition :: Audible e => e -> IO () Source

Notifications

withNotifications :: Transport t => t -> (t -> IO a) -> IO a Source

Turn on notifications, run f, turn off notifications, return result.

Buffer

b_getn1_data :: Transport t => t -> Int -> (Int, Int) -> IO [Double] Source

Variant of b_getn1 that waits for return message and unpacks it.

withSC3 (\fd -> b_getn1_data fd 0 (0,5))

b_getn1_data_segment :: Transport t => t -> Int -> Int -> (Int, Int) -> IO [Double] Source

Variant of b_getn1_data that segments individual b_getn messages to n elements.

withSC3 (\fd -> b_getn1_data_segment fd 1 0 (0,5))

b_fetch :: Transport t => t -> Int -> Int -> IO [Double] Source

Variant of b_getn1_data_segment that gets the entire buffer.

Status

serverStatus :: Transport t => t -> IO [String] Source

Collect server status information.

serverSampleRateNominal :: Transport t => t -> IO Double Source

Read nominal sample rate of server.

serverSampleRateActual :: Transport t => t -> IO Double Source

Read actual sample rate of server.

serverStatusData :: Transport t => t -> IO [Datum] Source

Retrieve status data from server.