jackminimix-0.1: control JackMiniMix

Sound.JackMiniMix

Description

This is a module to control JackMiniMix, a GPL mixer for the Jack Audio Connection Kit using OpenSoundControl (OSC).

JackMiniMix was written by Nicholas J Humfrey. http://www.aelius.com/njh/jackminimix/

OSC was developed at CNMAT by Adrian Freed and Matt Wright. http://opensoundcontrol.org/

The documentation was mostly taken from the source of JackMiniMix by Humfrey.

This module requires that the JackMiniMix program be installed.

For general usage, use the camel case functions; they're easier. The functions with underscores in the name need to be called using the withJackMiniMix function; the camelCase ones already include it.

Synopsis

Documentation

withJackMiniMix :: Int -> (UDP -> IO a) -> IO aSource

Bracket JackMiniMix communication.

channelCountSource

Arguments

:: Int

the port number

-> IO OSC 

Returns the number of stereo input channels that the mixer has.

The OSC message:

/mixer/get_channel_count - Get the number of channels

replies with:

/mixer/channel_count (i)

getChannelGainSource

Arguments

:: Int

the port number

-> Int

the channel

-> IO OSC 

Returns the gain (in decibels) of channel.

The OSC message:

/mixer/channel/get_gain (i) - Get gain of channel i

replies with:

/mixer/channel/gain (if)

channel is the number of the channel (in range 1 to total number of channels).

setChannelGainSource

Arguments

:: Int

the port number

-> Int

the channel number

-> Double

the new gain

-> IO OSC 

Sets the gain of channel channel to gain dB.

The OSC message:

/mixer/channel/set_gain (if) - Set the gain of channel i to f dB

replies with:

/mixer/channel/gain (if)

channel is the number of the channel (in range 1 to total number of channels).

gain is the gain (in decibels) to set the channel to (in range -90 to 90 dB).

getChannelLabelSource

Arguments

:: Int

the port number

-> Int

the channel

-> IO OSC 

Returns the label (string) of channel number channel.

The OSC message:

/mixer/channel/get_label (i) - Get the label of channel i

replies with:

/mixer/channel/label (is)

channel is the number of the channel (in range 1 to total number of channels).

setChannelLabelSource

Arguments

:: Int

the port number

-> Int

the channel

-> String

the new channel label

-> IO OSC 

Sets the label (string) of channel number channel to label.

The OSC message:

/mixer/channel/set_label (is) - Set the label of channel i to s

replies with:

/mixer/channel/label (is)

channel is the number of the channel (in range 1 to total number of channels).

label is the new label for the channel.

ping :: Transport t => t -> IO OSCSource

pingMixerSource

Arguments

:: Int

the port number

-> IO OSC 

Pings the mixer to see if it is there.

The OSC message:

/ping - Check mixer is still there

replies with:

/pong