Skip to main content

Meyer Sound Documentation

Galaxy programming
In this section:
meyer-blue-rule-line.png

This section describes how to:

  • construct built-in commands

  • query and set control points

Built-in functionality
meyer-blue-rule-line.png

All of GALAXY’s built-in, external control functions manipulate snapshots (except ping), and assume the specified snapshot already exists (except create_snapshot). Each function explanation includes ASCII and OSC examples.

recall_snapshot
meyer-blue-rule-line.png

Recalls the snapshot specified by the integer argument. For example, to recall snapshot 3 on a GALAXY module:

ASCII MSG

:recall_snapshot 3

ASCII Hex

3a 72 65 63 61 6c 6c 5f 73 6e 61 70 73 68 6f 74 20 33 0a

OSC MSG

/recall_snapshot,i 3

UDP OSC

2f 72 65 63 61 6c 6c 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 69 00 00 00 00 00 03

TCP OSC

00 00 00 1c 2f 72 65 63 61 6c 6c 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 69 00 00

00 00 00 03

Excluding snapshot settings

It is possible to exclude some settings when recalling a snapshot. This is done by appending a second integer argument after the snapshot ID. A value of 1 enables exclusion. Add 1 to each exclusion code shown in the table below to exclude that entity.

For example:

  • If the second integer argument is 1, exclusion is enabled but nothing is excluded. The snapshot is recalled with all settings.

  • If the second integer argument is 9, mute information is excluded. 1 signifies that exclusion is active, and 8 is the exclusion code. To recall snapshot 3 without mute settings:

ASCII MSG

:recall_snapshot 3 9

ASCII Hex

3a 72 65 63 61 6c 6c 5f 73 6e 61 70 73 68 6f 74 20 33 20 39 20 0a

OSC MSG

/recall_snapshot,i 3 9

UDP OSC

2f 72 65 63 61 6c 6c 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 69 69 00 00 00 00 03 00 00

00 09

TCP OSC

00 00 00 20 2f 72 65 63 61 6c 6c 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 69 69 00 00 00

00 03 00 00 00 09

The following table shows the exclusion codes to use for each setting.

Exclusion Code

Excluded Setting

1

Exclusion enabled, but nothing excluded

2

Input Channel Types

4

Input and Output Voltage Ranges

8

Input and Output Mute

16

Update active snapshot before recall

32

SIM3 Bus Address

64

SIM3 Probe Point

128

Clock Sync Mode

256

AVB Configuration

Exclusion codes can be added together to exclude multiple types. For example:

  • To exclude everything but still save the active snapshot before recall, add all exclusion codes, which corresponds to updating the active snapshot: 1+2+4+8+16+32+64+128+256 = 511

update_snapshot
meyer-blue-rule-line.png

Updates all settings in the specified snapshot to current values. To update snapshot 6 to current device settings:

ASCII MSG

:update_snapshot 6

ASCII Hex

3a 75 70 64 61 74 65 5f 73 6e 61 70 73 68 6f 74 20 36 0a

OSC MSG

/update_snaphot,i 6

UDP OSC

2f 75 70 64 61 74 65 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 69 00 00 00 00 00 06

TCP OSC

00 00 00 1c 2f 75 70 64 61 74 65 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 69 00 00 00

00 00 06

create_snapshot
meyer-blue-rule-line.png

Creates a new snapshot that contains the current control point settings. If one string argument is present, it is used as the new snapshot’s name. If a second string argument is present, it is used as the new snapshot’s comment.

To create a new snapshot named Sample with comment Hello:

ASCII MSG

:create_snapshot Sample Hello

ASCII Hex

3a 63 72 65 61 74 65 5f 73 6e 61 70 73 68 6f 74 20 53 61 6d 70 6c 65 20 48 65 6c 6c 6f

0a

OSC MSG

/create_snapshot,ss Sample Hello

UDP OSC

2f 63 72 65 61 74 65 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 73 73 00 53 61 6d 70 6c

65 00 00 48 65 6c 6c 6f 00 00 00

TCP OSC

00 00 00 28 2f 63 72 65 61 74 65 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 73 73 00 53

61 6d 70 6c 65 00 00 48 65 6c 6c 6f 00 00 00

delete_snapshot
meyer-blue-rule-line.png

Deletes an existing snapshot identified by the integer argument. To delete snapshot 6 from GALAXY memory:

ASCII MSG

:delete_snapshot 6

ASCII Hex

3a 64 65 6c 65 74 65 5f 73 6e 61 70 73 68 6f 74 20 36 0a

OSC MSG

/delete_snapshot,i 6

UDP OSC

2f 64 65 6c 65 74 65 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 68 00 00 00 00 00 00 00

00 00 06

TCP OSC

00 00 00 20 2f 64 65 6c 65 74 65 5f 73 6e 61 70 73 68 6f 74 00 00 00 00 2c 68 00 00 00

00 00 00 00 00 00 06

ping
meyer-blue-rule-line.png

Send a ping command without an argument to maintain a current subscription.

ASCII MSG

:ping Hello World

ASCII Hex

3a 70 69 6e 67 20 48 65 6c 6c 6f 20 57 6f 72 6c 64 0a

OSC MSG

/ping,s Hello World

UDP OSC

2f 70 69 6e 67 00 00 00 2c 73 00 00 48 65 6c 6c 6f 20 57 6f 72 6c 64 00

TCP OSC

00 00 00 18 2f 70 69 6e 67 00 00 00 2c 73 00 00 48 65 6c 6c 6f 20 57 6f 72 6c 64 00

After issuing a ping command, you will receive a pong response. Note that you cannot send a pong command. Attach a keyword(s) so you can identify the pong response to your ping command.

ASCII MSG

:pong Hello World

ASCII Hex

3a 70 6f 6e 67 20 48 65 6c 6c 6f 20 57 6f 72 6c 64 0a

OSC MSG

/pong,s Hello World

UDP OSC

2f 70 6f 6e 67 00 00 00 2c 73 00 00 48 65 6c 6c 6f 20 57 6f 72 6c 64 00

TCP OSC

00 00 00 18 2f 70 6f 6e 67 00 00 00 2c 73 00 00 48 65 6c 6c 6f 20 57 6f 72 6c 64 00

?

Defines built-in GALAXY functionality. The resultant list, while extensive, is a subset of the full GALAXY commands, but may be viewed as a developer’s quick reference.

ASCII MSG

:?

ASCII Hex

3a 3f 0a

OSC MSG

N/A

UDP OSC

N/A

TCP OSC

N/A

?
meyer-blue-rule-line.png

Defines built-in GALAXY functionality. The resultant list, while extensive, is a subset of the full GALAXY commands, but may be viewed as a developer’s quick reference.

ASCII MSG

:?

ASCII Hex

3a 3f 0a

OSC MSG

N/A

UDP OSC

N/A

TCP OSC

N/A

Control point functions
meyer-blue-rule-line.png

The table below shows the ASCII control character used to enact each Function that sets or retrieves a control point value.

ASCII control character

Function

=

Set control point Value

Get control point Value

?

Get control point Description

+

Subscribe to control point

-

Unsubscribe from control point

Set control point value (=)
meyer-blue-rule-line.png

Sets one or more control points to one or more values. The arguments indicate a set of one or more control point addresses, followed by a list of one or more control point values. The control point values are assigned to the control point addresses in the order listed. Note that the “=” control character is appended at the end of the address.

To mute input 1:

ASCII MSG

/processing/input/1/mute=true

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 3d 74 72 75 65 0a

OSC MSG

/processing/input/1/mute,T

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 54 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 54 00 00

Get control point value
meyer-blue-rule-line.png

Retrieves the current value of a control point. Note that this function does not use a control character. Just specify the control point address as shown below.

To query the mute status of input 1:

ASCII MSG

/processing/input/1/mute

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 3d 74 72 75 65 0a

OSC MSG

/processing/input/1/mute,

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 00 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 00 00 00

The mute status of input 1 returns:

ASCII MSG

/processing/input/1/mute=false

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 3d 66 61 6c 73 65 0a

OSC MSG

/processing/input/1/mute,F

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 46 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 46 00 00

In OSC, if the get control point value was received from a:

  • TCP stream: The return packets are sent back to that TCP stream.

  • UDP packets: The return packets are sent back to the same IP address and port from which it was sent.

Get control point description (?)
meyer-blue-rule-line.png

Retrieves the current value and range of possible values of a control point. All control point types are shown in Control points, but this command lists all possible values, not just the default value.

To request the control point description for Input 1 Mute:

ASCII MSG

?/processing/input/1/mute

ASCII Hex

3f 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 0a

OSC MSG

NA

UDP OSC

NA

TCP OSC

NA

The control point description for Input 1 Mute is returned:

ASCII MSG

?{'/processing/input/1/mute': { 'description' : 'Input 1 Mute', 'read_only' : 'false', 'name' : 'item_1_1', 'value' : 'false', 'minimum' : 'true', 'maximum' : 'false', 'default' : 'false', 'step' : '255', 'units' : ''}}

3f 7b 27 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 27 3a

20 7b 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3a 20 27 49 6e 70 75 74 20 31 20

4d 75 74 65 27 2c 20 27 72 65 61 64 5f 6f 6e 6c 79 27 20 3a 20 27 66 61 6c 73 65 27

ASCII Hex

2c 20 27 6e 61 6d 65 27 20 3a 20 27 69 74 65 6d 5f 31 5f 31 27 2c 20 27 76 61 6c 75

65 27 20 3a 20 27 66 61 6c 73 65 27 2c 20 27 6d 69 6e 69 6d 75 6d 27 20 3a 20 27 74

72 75 65 27 2c 20 27 6d 61 78 69 6d 75 6d 27 20 3a 20 27 66 61 6c 73 65 27 2c 20 27

64 65 66 61 75 6c 74 27 20 3a 20 27 66 61 6c 73 65 27 2c 20 27 73 74 65 70 27 20 3a

20 27 32 35 35 27 2c 20 27 75 6e 69 74 73 27 20 3a 20 27 27 7d 7d 20

OSC MSG

NA

UDP OSC

NA

TCP OSC

NA

Subscribe to control point (+)
meyer-blue-rule-line.png

This command subscribes to a set of control point addresses for live updates, which allows the client to keep track of the current state of the specified addresses, without constantly querying their state.

Note that subscriptions are handled per control point address, so it is possible to build up your subscription set via multiple subscribe commands. You can also unsubscribe from a single control point or an arbitrary subset at any time.

A client cannot subscribe to the same control point more than once. Trying to subscribe to a control point to which you already subscribed causes the server to re-send the control point’s current value, but has no other effect.

Subscriptions for TCP clients remain active until they are countermanded by an unsubscribe command, or until the client’s TCP connection is broken.

A UDP subscription remains active until it is countermanded by an unsubscribe command, or the server does not receive any UDP packets from the client for at least 30 seconds. To keep a UDP subscription active in the absence of GALAXY activity, use the keepalive tactic by sending an empty ping OSC message to the server.

Subscribe commands can take an optional argument that sets the time between values being returned. If no value is included, the default update rate is 30 ms. The time range for updates can be 0-100 ms. If your control point changes at a faster rate than your setting, your update rate determines how often you receive new values. Conversely, if your control point changes at a slower rate than your setting, values are returned only when the control point value changes.

To subscribe to Input 1 Mute status with an update rate of 100 ms:

ASCII MSG

+/processing/input/1/mute 100

ASCII Hex

2b 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 20 31 30 30 0a

OSC MSG

/subscribe/processing/input/1/mute,i 100

UDP OSC

2f 73 75 62 73 63 72 69 62 65 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 2c 69 00

00 00 00 00 64

TCP OSC

00 00 00 2c 2f 73 75 62 73 63 72 69 62 65 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00

00 2c 69 00 00 00 00 00 64

Unsubscribe from control point (-)
meyer-blue-rule-line.png

This command has the same syntax as subscribe but the opposite effect: it unsubscribes from a set of control point addresses. Subscription records for all control point addresses specified in this command that are currently subscribed to by this client will be removed from the server. This command does not affect control points that your client is not currently subscribed to.

To unsubscribe from Input 1 mute state:

ASCII MSG

-/processing/input/1/mute

ASCII Hex

2d 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 0a

OSC MSG

/unsubscribe/processing/input/1/mute,

UDP OSC

2f 75 6e 73 75 62 73 63 72 69 62 65 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00

00 2c 00 00 00

TCP OSC

00 00 00 2c 2f 75 6e 73 75 62 73 63 72 69 62 65 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74

65 00 00 00 00 2c 00 00 00

Command

Type

String

Mute Output 1

ASCII MSG

/processing/output/1/mute=true

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 6d 75 74 65 3d 74 72 75 65 0a

OSC MSG

/processing/output/1/mute, T

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 2c 54 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 2c 54

00 00

Unmute Output 1

ASCII MSG

/processing/output/1/mute=false

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 6d 75 74 65 3d 66 61 6c 73 65 0a

OSC MSG

/processing/output/1/mute, F

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 2c 46 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 2c 46

00 00

Mute Input 1

ASCII MSG

/processing/input/1/mute=true

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 3d 74 72 75 65 0a

OSC MSG

/processing/input/1/mute, T

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 54 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 54

00 00

Unmute Input 1

ASCII MSG

/processing/input/1/mute=false

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 3d 66 61 6c 73 65 0a

OSC MSG

/processing/input/1/mute, F

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 46 00 00

TCP OSC

00 00 00 20 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 6d 75 74 65 00 00 00 00 2c 46

00 00

Set Input 1 gain to

-90 dB (-inf)

ASCII MSG

/processing/input/1/gain=-90

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 67 61 69 6e 3d 2d 39 30 0a

OSC MSG

/processing/input/1/gain,f -90.0

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 00 2c 66 00 00 c2 b4

00 00

TCP OSC

00 00 00 24 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 00 2c 66

00 00 c2 b4 00 00

Command

Type

String

Set Input 1 gain to 0 dB (unity)

ASCII MSG

/processing/input/1/gain=0

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 67 61 69 6e 3d 30 0a

OSC MSG

/processing/input/1/gain,f 0.0

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 00 2c 66 00 00 00 00

00 00

TCP OSC

00 00 00 24 2f 70 72 6f 63 65 73 73 69 6e 67 2f 69 6e 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 00 2c 66

00 00 00 00 00 00

Set Output 1 gain to

-90 dB (-inf)

ASCII MSG

/processing/output/1/gain=-90

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 67 61 69 6e 3d 2d 39 30 0a

OSC MSG

/processing/output/1/gain,f -90.0

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 2c 66 00 00 c2 b4

00 00

TCP OSC

00 00 00 24 2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 2c 66

00 00 c2 b4 00 00

Set Output 1 gain to 0 dB (unity)

ASCII MSG

/processing/output/1/gain=0

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 67 61 69 6e 3d 30 0a

OSC MSG

/processing/output/1/gain,f 0.0

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 2c 66 00 00 00 00

00 00

TCP OSC

00 00 00 24 2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 31 2f 67 61 69 6e 00 00 00 2c 66

00 00 00 00 00 00

All Outputs Mute Note: ([1-9]|1[0-6])

equals 1-9, 10-16

ASCII MSG

/processing/output/([1-9]|1[0-6])/mute=1

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 28 5b 31 2d 39 5d 7c 31 5b 30 2d 36 5d 29 2f 6d 75 74 65 3d

31 0a

OSC MSG

/processing/output/([1-9]|1[0-6])/mute, T

UDP OSC

?2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 28 5b 31 2d 39 5d 7c 31 5b 30 2d 36 5d 29 2f

6d 75 74 65 00 00 2c 69 00 00 00 00 00 00

TCP OSC

?00 00 00 30 2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 28 5b 31 2d 39 5d 7c 31 5b 30

2d 36 5d 29 2f 6d 75 74 65 00 00 2c 69 00 00 00 00 00 00

Outputs 1-8 and 11- 16 Muted & Output 9-10 Unmuted

ASCII MSG

/processing/output/([1-8]|1[1-6])/mute=0

ASCII Hex

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 28 5b 31 2d 38 5d 7c 31 5b 31 2d 36 5d 29 2f 6d 75 74 65 3d

30 0a

OSC MSG

/processing/output/([1-8]|1[1-6])/mute, F

UDP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 28 5b 31 2d 38 5d 7c 31 5b 31 2d 36 5d 29 2f

6d 75 74 65 00 00 2c 69 00 00 00 00 00 01

TCP OSC

2f 70 72 6f 63 65 73 73 69 6e 67 2f 6f 75 74 70 75 74 2f 28 5b 31 2d 38 5d 7c 31 5b 31 2d 36 5d 29 2f

6d 75 74 65 00 00 2c 69 00 00 00 00 00 01