# This file documents the A3000Rmt macro language (0.04)

# ------------------------------------------------------

# A macro file (*.rmt) contains a list of commands which are
# sent to the A3000. Each command should be on a separate
# line and start at the left of the line. The whole file
# is case insensitive.
#
# Any text below which is enclosed with []'s is optional.
#
# Any line starting with a hash
/ or a slash are treated as comments and
/ ignored. Such lines can occur anywhere in
/ the file.
#
# Blank lines are also ignored. 

# ------------------------------------------------------

# The following commands mimic the actions of the mode
# buttons (going down) on the A3000:
PLAY
EDIT
REC[ORD]
DISK
UTIL[ITY]

# ------------------------------------------------------

# The following commands mimic the actions of the mode
# buttons (going across) on the A3000:
FN1
FN2
FN3
FN4
FN5
FN6

# ------------------------------------------------------

# The following commands mimic the actions of the command
# buttons on the A3000:
COMMAND
ASSIGN[ABLE]
AUDITION

# ------------------------------------------------------

# The following commands mimic the actions of pressing
# COMMAND with one of the command buttons:
CTRLASSIGN[ABLE]
CTRLAUDITION

# ------------------------------------------------------

# The syntax for pressing and turning knobs is slightly
# more involved. 
#
# It consists of the knob name followed by a parameter:
KNOB1 1
KNOB2 -1
KNOB3 UP
KNOB4 DOWN
KNOB5 PRESS

# A numeric parameter specifies how much the knob is to
# be turned, with negative values denoting an anti-clockwise
# motion and positive values a clockwise one.
#
# The maximum value for a turn is 63, so the extremes are:
KNOB 63
KNOB -63

# The UP and DOWN values are just pseudonyms for 1 and -1

# PRESS causes the knob to be pressed in / pushed

# ------------------------------------------------------

# The PAUSE command will cause the program to pause by
# the specified number of milli-seconds before executing
# the next command:

PAUSE 10
PAUSE 1000

# This value will be used in addition to the global pause
# parameter in the main dialog.

# The maximum value for a pause is currently 5000, which is
# 5 seconds

# ------------------------------------------------------

# The LOOP command causes the entire file to be repeated
# by the specified number of times.

# The following macro (in a file of its own) would cause
# the audition button to be pressed twice, with a pause
# of 500 milli-seconds between each press:

LOOP 2
AUDITION
PAUSE 500

# ------------------------------------------------------

# A message-box can be popped up on the screen and the
# macro temporarily paused, or aborted, depending on the
# user's action.

BOX OK "This is a simple message box with an OK button in. Pressing OK will continue running the macro."
BOX OKCANCEL "This is a message box with an OK and a CANCEL button in. Pressing OK will continue running the macro. Pressing CANCEL will stop the macro."

# The OKCANCEL variety is handy for exiting loops and so
# forth...

# ------------------------------------------------------

# MIDI notes can be sent via the NOTE command:

NOTE ON 1 60 120
PAUSE 500
NOTE OFF 1 60 50

# The syntax here is: NOTE <ON|OFF> <channel> <pitch> <velocity>

# Remember to send the appropriate note off's after the
# required pause, or you'll get hung notes...

# The idea behind it is that you can build up little
# phrases and use them rather to test than a simple
# audition.

# ------------------------------------------------------

# Miscellaneous header lines

# If you write a macro and stick it on the teklab site to
# share with others, use any of the below commands to tell
# us more about the macro:

AUTHOR Joe Bloggs (joe@bloggs.org)
TITLE Set Sample's Midi Channel
VERSION 0.01b
INVOKE Invoke this macro from the Disk->Import->ImpOther screen with the first sample selected.
DESCRIPTION This macro will cause you A3000 to burst into flames.

# In future versions of A3000Rmt, these will hopefully be
# displayed via the app.
