hsc3-0.16: 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

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

Send a Message and waitReply for a /done reply.

maybe_async_at :: Transport t => t -> Time -> Message -> IO () Source #

Variant that timestamps synchronous messages.

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.

nrt_play :: 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 #

Instances

Audible Graphdef Source # 

Methods

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

play :: Transport t => t -> Graphdef -> IO () Source #

Audible UGen Source # 

Methods

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

play :: Transport t => t -> UGen -> IO () Source #

Audible Synthdef Source # 

Methods

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

play :: Transport t => t -> Synthdef -> 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.

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

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.