Skip to content

Latest commit

 

History

History
755 lines (575 loc) · 28.9 KB

File metadata and controls

755 lines (575 loc) · 28.9 KB

Protocol Documentation

The arrows indicate the direction the message goes.

  • ← indicates the message is sent from the amp to the computer
  • → indicates the message is sent from the computer to the amp

FenderMessageLT

(← →) Base message type used to communicate with the amp

All messages are of this type, and encapsulate the actual message

Field Type Label Description Direction
responseType ResponseType required Response type. All messages from the host to the amp are UNSOLICITED Default: UNSOLICITED ← →
processorUtilizationRequest ProcessorUtilizationRequest optional
processorUtilization ProcessorUtilization optional
memoryUsageRequest MemoryUsageRequest optional
memoryUsageStatus MemoryUsageStatus optional
presetJSONMessageRequest_LT PresetJSONMessageRequest_LT optional
presetJSONMessage PresetJSONMessage optional
currentPresetStatus CurrentPresetStatus optional
loadPreset LoadPreset optional
setDspUnitParameter SetDspUnitParameter optional
setDspUnitParameterStatus SetDspUnitParameterStatus optional
dspUnitParameterStatus DspUnitParameterStatus optional
currentLoadedPresetIndexStatus CurrentLoadedPresetIndexStatus optional
presetEditedStatus PresetEditedStatus optional
replaceNode ReplaceNode optional
replaceNodeStatus ReplaceNodeStatus optional
shiftPreset ShiftPreset optional
shiftPresetStatus ShiftPresetStatus optional
swapPreset SwapPreset optional
swapPresetStatus SwapPresetStatus optional
currentPresetSet CurrentPresetSet optional
currentLoadedPresetIndexBypassStatus CurrentLoadedPresetIndexBypassStatus optional
currentDisplayedPresetIndexStatus CurrentDisplayedPresetIndexStatus optional
presetSavedStatus PresetSavedStatus optional
clearPreset ClearPreset optional
clearPresetStatus ClearPresetStatus optional
saveCurrentPreset SaveCurrentPreset optional
saveCurrentPresetTo SaveCurrentPresetTo optional
savePresetAs SavePresetAs optional
newPresetSavedStatus NewPresetSavedStatus optional
renamePresetAt RenamePresetAt optional
auditionPreset AuditionPreset optional
auditionPresetStatus AuditionPresetStatus optional
exitAuditionPreset ExitAuditionPreset optional
exitAuditionPresetStatus ExitAuditionPresetStatus optional
auditionStateRequest AuditionStateRequest optional
auditionStateStatus AuditionStateStatus optional
productIdentificationStatus ProductIdentificationStatus optional
productIdentificationRequest ProductIdentificationRequest optional
firmwareVersionRequest FirmwareVersionRequest optional
firmwareVersionStatus FirmwareVersionStatus optional
currentPresetRequest CurrentPresetRequest optional
retrievePreset RetrievePreset optional
usbGainRequest UsbGainRequest optional
usbGainStatus UsbGainStatus optional
qASlotsRequest QASlotsRequest optional
qASlotsStatus QASlotsStatus optional
lineOutGainRequest LineOutGainRequest optional
lineOutGainStatus LineOutGainStatus optional
modalStatusMessage ModalStatusMessage optional
usbGainSet UsbGainSet optional
lineOutGainSet LineOutGainSet optional
qASlotsSet QASlotsSet optional
unsupportedMessageStatus UnsupportedMessageStatus optional
heartbeat Heartbeat optional
connectionStatusRequest ConnectionStatusRequest optional
connectionStatus ConnectionStatus optional
indexPot IndexPot optional
indexButton IndexButton optional
indexEncoder IndexEncoder optional
activeDisplay ActiveDisplay optional
frameBufferMessageRequest FrameBufferMessageRequest optional
frameBufferMessage FrameBufferMessage optional
lt4FootswitchModeRequest LT4FootswitchModeRequest optional
lt4FootswitchModeStatus LT4FootswitchModeStatus optional
loadPreset_TestSuite LoadPreset_TestSuite optional
loopbackTest LoopbackTest optional

ResponseType

Message response type

Name Number Description
UNSOLICITED 0 Message sent not as the result of a command
NOT_LAST_ACK 1 Message sent as the result of a command, but NOT the last message in the batch
IS_LAST_ACK 2 Message sent as the last result of a command

Auditioning

AuditionPreset

(→) Sends a preset to the amp to be "auditioned"

response: AuditionPresetStatus message containing the preset data loaded to the amp

Field Type Label Description
presetData string required JSON string conaining the preset to be auditioned

AuditionPresetStatus

(←) Response to an AuditionPreset message

Field Type Label Description
presetData string required JSON data conatining preset data being auditioned

AuditionStateRequest

(→) Queries the amp for its audition state

response: AuditionStateStatus message

Field Type Label Description
request bool required Always true on requests

AuditionStateStatus

(←) The current audition state of the amp. Resposne to an AuditionStateRequest message

Field Type Label Description
isAuditioning bool required True if the amp is in audition mode

ExitAuditionPreset

(→) Leaves audition mode

response: ExitAuditionPresetStatus message

Field Type Label Description
exit bool required True to exit audition mode

ExitAuditionPresetStatus

(←) Result message for an ExitAuditionPreset message

Field Type Label Description
isSuccess bool required True if audition mode was exited successfully

Preset management

CurrentPresetRequest

(→) Requests the current preset from the amp

response: CurrentPresetStatus message

Field Type Label Description
request bool required Always true on requests

CurrentPresetSet

(→) Sets the current preset of the amp

response: CurrentPresetStatus message

Field Type Label Description
currentPresetData string required JSON data conatining preset data

CurrentPresetStatus

(←) Returns the state of the current preset

Field Type Label Description
currentPresetData string required JSON data conatining current preset data
currentSlotIndex int32 required Current preset bank number
currentPresetDirtyStatus bool required True if current preset has been edited and not saved

LoadPreset

(→) Switches the amp to the specified preset number

response: CurrentLoadedPresetIndexStatus message

Field Type Label Description
presetIndex int32 required Preset bank number currently loaded

CurrentDisplayedPresetIndexStatus

(←) The current preset displayed on the amp. Sent when the preset is changed at the amp

Field Type Label Description
currentDisplayedPresetIndex int32 required The current preset bank number

CurrentLoadedPresetIndexStatus

(←) The current preset displayed on the amp. Sent when the preset is changed at the amp or via a LoadPreset message

Field Type Label Description
currentLoadedPresetIndex int32 required The current preset bank number

RetrievePreset

(←) Queries the amp on the stored presets

response: PresetJsonMessage

Field Type Label Description
slot int32 required Preset bank to retrieve

PresetJSONMessage

(←) Saved preset data

Field Type Label Description
data string required JSON data conatining preset data for requested preset bank
slotIndex int32 required Preset bank this preset is stored in

ShiftPreset

(→) Moves a preset to the specified point, shifting all other presets

response: ShiftPresetStatus message

Field Type Label Description
indexToShiftFrom int32 required Preset to shift
indexToShiftTo int32 required Destination of preset to shift

ShiftPresetStatus

(←) Response to a ShiftPreset message with the status of the command

Field Type Label Description
indexToShiftFrom int32 required Preset shifted
indexToShiftTo int32 required Destination

SwapPreset

(→) Swaps the presets in indexA and indexB

response: SwapPresetStatus message

Field Type Label Description
indexA int32 required
indexB int32 required

SwapPresetStatus

(←) result of a SwapPreset message

Field Type Label Description
indexA int32 required
indexB int32 required

SaveCurrentPreset

(→) saves the current preset

response: PresetSavedStatus

Field Type Label Description
save bool required

SaveCurrentPresetTo

(→) response: PresetSavedStatus

Field Type Label Description
presetName string required
presetSlot int32 required

SavePresetAs

(→) response: PresetSavedStatus

Field Type Label Description
presetData string required
isLoadPreset bool required
presetSlot int32 required

PresetSavedStatus

(←) Result of a SaveCurrentPreset, SaveCurrentPresetTo, or SavePresetAs message. Also sent when the preset is saved on the amp.

Field Type Label Description
name string required Name of the preset saved
slot int32 required Preset bank of the saved preset

RenamePresetAt

(→) Renames a preset

Field Type Label Description
presetName string required new preset name
presetSlot int32 required slot index to rename

NewPresetSavedStatus

(←)

Field Type Label Description
presetData string required
presetSlot int32 required

ClearPreset

(→) Clears a preset in the amp

response: ClearPresetStatus message

Field Type Label Description
slotIndex int32 required Preset bank to clear
isLoadPreset bool required ??? the Tone app sets this to true when clearing the preset

ClearPresetStatus

(←) Response to a ClearPreset message

Field Type Label Description
slotIndex int32 required bank number cleared

ReplaceNode

(→) Swaps out a node (amp, stomp, mod, delay, or reverb)

response: ReplaceNodeStatus message

Field Type Label Description
nodeIdToReplace string required nodeid to replace (amp, stomp, mod, delay, or reverb)
fenderIdToReplaceWith string required FenderId of node to set

ReplaceNodeStatus

(←) Status of a ReplaceNode message; also sent when the node is changed at the amp

Field Type Label Description
nodeIdReplaced string required node replaced (amp, stomp, mod, delay, or reverb)
fenderIdReplaced string required FenderId of node set

SetDspUnitParameter

(→) Changes the parameters of the DSP units

response: SetDspUnitParameterStatus message

Field Type Label Description
nodeId string required string id of the node to change (one of amp, stomp, mod, delay, reverb)
parameterId string required string id of the parameter to change
floatParameter float optional
stringParameter string optional
sint32Parameter sint32 optional
boolParameter bool optional

SetDspUnitParameterStatus

(←) Status of the SetDspUnitParameter message. Also sent when parameters are adjusted on the amp

Field Type Label Description
nodeId string required string id of the node changed (one of amp, stomp, mod, delay, reverb)
parameterId string required string id of the parameter to change
floatParameter float optional
stringParameter string optional
sint32Parameter sint32 optional
boolParameter bool optional

PresetEditedStatus

(←)

Editing status of the current preset

Field Type Label Description
presetEdited bool required True if the preset is in editing state Default: false

System Messages

ModalStatusMessage (← →)

Changes the state of the amp

response: A ModalStatusMessage with the result of the request

Field Type Label Description
context ModalContext required Context to switch to
state ModalState required The result of the request. Requests to the amp are sent with an OK state

ModalContext

Name Number Description
SYNC_BEGIN 0 Used during the initialization of the connection
SYNC_END 1 Used during the initialization of the connection
BACKUP_BEGIN 2
BACKUP_END 3
RESTORE_BEGIN 4
RESTORE_END 5
TUNER_ENABLE 6 Enables the tuner
TUNER_DISABLE 7 Disables the tuner
FACTORY_RESTORE_BEGIN 8
FACTORY_RESTORE_END 9
TONE_BUSY_BEGIN 10
TONE_BUSY_END 11

ModalState

Name Number Description
OK 0 Success; also the default when sending this message to the amp
FAIL 1 Failure

ConnectionStatusRequest

Queries the connection status of the amp

response: ConnectionStatus message

Field Type Label Description
request bool required Always true on requests

ConnectionStatus

(←) The current connection state of the amp. Response to a ConnectionStatusRequest message

Field Type Label Description
isConnected bool required True if the amp is connected

FirmwareVersionRequest

(→) Requests the current filrware version

response: FirmwareVersionStatus message

Field Type Label Description
request bool required Always true on requests

FirmwareVersionStatus

(←) The firmware version of the amp

Field Type Label Description
version string required Firmware Version

Heartbeat

(→) Heartbeat message sent every second to keep the connection alive

Field Type Label Description
dummyField bool required

MemoryUsageRequest

(→) Requests memory usage statistics from the amp

response: MemoryUsageStatus message

Field Type Label Description
request bool required Always true on requests

MemoryUsageStatus

(←) Message conainting current memory usage statistics

Field Type Label Description
stack int32 required
heap int32 required

ProcessorUtilizationRequest

(→) Requests processor statistics from the amp

response: ProcessorUtilization message

Field Type Label Description
request bool required Always true on requests

ProcessorUtilization

(←) Current processor utilization statistics

Field Type Label Description
percent float required
minPercent float required
maxPercent float required

ProductIdentificationRequest

(→)

Identifies the amplifier

response: ProductIdentificationStatus message

Field Type Label Description
request bool required Always true on requests

ProductIdentificationStatus

(←)

Field Type Label Description
id string required

Footswitch settings control

QASlotsRequest

(→) Requests the settings of the footswitch presets

response: QASlotsStatus message

Field Type Label Description
request bool required Always true on requests

QASlotsSet

(→) Assigns preset banks to the footswitch

response: QASlotsStatus message

Field Type Label Description
slots uint32 repeated Preset banks to assign to the footswitch

QASlotsStatus

(←) The current settings of the footswitch presets

Field Type Label Description
slots uint32 repeated The preset banks assigned to the footswitch

USB Gain Control

UsbGainRequest

(→) Gets the current USB Gain settings

response: UsbGainStatus message

Field Type Label Description
request bool required

UsbGainSet

(→) Sets the gain for the USB audio device

response: UsbGainStatus message

Field Type Label Description
valueDB float required gain in dB

UsbGainStatus

(←) The current setting of the gain for the USB audio device

Field Type Label Description
valueDB float required gain in dB

UnsupportedMessageStatus (← →)

Sent when a message is invalid

Field Type Label Description
status ErrorType required

ErrorType

Name Number Description
UNSUPPORTED 0
FAILED 1
INVALID_PARAM 2
INVALID_NODE_ID 3
PARAM_OUT_OF_BOUNDS 4
FACTORY_RESTORE_IN_PROGRESS 5

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)

ActiveDisplay

Field Type Label Description
pageName string required

CurrentLoadedPresetIndexBypassStatus

The bypass status of the DSP units.

Field Type Label Description
currentLoadedPresetIndex int32 required
bypassStatus bool repeated Indicates whether the DSP unit is bypassed or not

DspUnitParameterStatus

Field Type Label Description
nodeId string required
parameterId string required
floatParameter float optional
stringParameter string optional
sint32Parameter sint32 optional
boolParameter bool optional

FrameBufferMessage

Field Type Label Description
data bytes required

FrameBufferMessageRequest

Field Type Label Description
request bool required Always true on requests

IndexButton

Field Type Label Description
index int32 required
event IndexButton.Event required
timestamp_ms uint32 optional

IndexButton.Event

Name Number Description
EVENT_ERROR 0
BUTTON_DOWN 1
BUTTON_UP 2
BUTTON_HELD 3

IndexEncoder

Field Type Label Description
index int32 required
ticks int32 required

IndexPot

Field Type Label Description
index int32 required
position float required

LT4FootswitchModeRequest

Field Type Label Description
request bool required Always true on requests

LT4FootswitchModeStatus

Field Type Label Description
currentMode LT4FtswModes required Default: LT4_FTSW_MODE_OFF

LT4FtswModes

Name Number Description
LT4_FTSW_MODE_OFF 0
LT4_FTSW_MODE_BANK1 1
LT4_FTSW_MODE_BANK2 2
LT4_FTSW_MODE_FX 3

LineOutGainRequest

Field Type Label Description
request bool required Always true on requests

LineOutGainSet

Field Type Label Description
valueDB float required

LineOutGainStatus

Field Type Label Description
valueDB float required

LoadPreset_TestSuite

Field Type Label Description
presetIndex int32 required

LoopbackTest

Field Type Label Description
data string required

PresetJSONMessageRequest_LT

Field Type Label Description
request int32 required