The Ekdahl FAR - Command reference
Introduction
The commands in the Ekdahl FAR are using a certain naming convention to make it more clear which parts of the instrument a certain command is dealing with. Furthermore commands can be global or local, global commands change settings that will affect the entire instrument, local commands change settings depending on previously set commands. The idea of local commands is a future-proofing of the Ekdahl FAR firmware and can generally be ignored for the time being. The first part of many command-names are a prefix that denotes category, the global categories as of this writing (2025-01-26) are:
- global* - commands that have a global reach
- midi* - commands that deal with MIDI
- adc* - commands that deal with the Control box and its analog-to-digital converter
- expressionparser - commands that deal with how commands are interpreted and parsed, mainly used for debugging
- test* - commands made for testing and debugging
The global commands as of this writing (2025-01-26) are:
Long name | Short name | Parameters | Description |
---|---|---|---|
requestinfo | rqi | [command]:[optional parameters] | Uses a command-name to retrieve rather than set information associated with it, some commands have no information associated and will return nothing. Some commands require the use of optional parameters to specify which information that is to be retrieved. |
module | m | [module number] | Sets the current module. This command is intended for future versions of the Ekdahl FAR that may have more than one string module. Currently '0' is the only valid parameter |
modulecount | mc | none | Returns the number of modules in the Ekdahl FAR. Currently always returns '1' |
debugprint | dp | [command|usb|hardware|undefined|priority|error|inforequest|expressionparser|debug]:[0|1] | Used to turn on or off whether the instrument will return certain information over USB-Serial. The first parameter is the category, the second parameter is a boolean value. |
version | ver | none | Returns the current firmware version |
globalsaveallparameters | gsap | none | Saves all current data into the internal flash memory |
globalloadallparameters | glap | none | Loads all data saved into flash, effectively overwriting any changed parameters included in the last save |
globalresetparameters | grap | none | Resets all saved data in the flash memory, requires a immediate reset to be enacted |
globaluservariable | guv | [variable number (0-9)]:[value (float)] | Sets or returns the user variable defined in the first parameter, if used to set the variable, the second parameter is the value. |
midiconfiguration | mcf | [config (0-9)] | Sets or returns the current MIDI configuration |
midiconfigurationadd | mcfa | none | Adds a new MIDI configuration |
midiconfigurationremove | mcfr | [config (0-9)] | Removes the MIDI configuration denoted by the parameter passed. If there are MIDI configurations with a higher number, these are moved down the list. The current configuration may be changed during the execution of this command |
midiconfigurationcount | mcfc | none | Returns the number of MIDI configurations available |
midiconfigurationname | mcfn | [config|name] | When used as a 'set'-command, the first parameter sets the name of the current MIDI configuration. When used to retrieve information, the first parameter sets which MIDI configuration to return the name for |
midieventhandler | mev | [noteon|noteoff|pat|cc[:0-127]|cat|pb|pc]:[command string] | Used to set the command string executed when a certain MIDI event occurs. The first parameter is the type of MIDI event. With exception for the 'cc' MIDI event the second parameter is the command string. For 'cc' the second parameter is the controller number and the third parameter is the command string |
midiconfigurationdefaults | mcfd | none | Reverts all settings of the current MIDI configuration to default values and remove any added continuous controllers |
midireceivechannel | mrc | [channel (0-16)] | Sets which MIDI channel the instrument will respond to. 1-16 sets the MIDI channel while all other values sets the instrument to 'Omni' (the instrument responding to all channels) |
midiallnotesoff | mano | [conditional (0|1)] | Clears the entire MIDI buffer of notes held and turns off any bowing |
adccommandmap | acm | [channel]:[command string] | Sets the command string associated with the analog-to-digital converter channel of the Control box |
adcdefaults | acd | none | Sets all command strings associated with all analog-to-digital converter channels to their default values |
adcread | adcr | [channel]:[return only: value] | Returns the last value read by the analog-to-digital converter of the Command box on the channel given. This value is sent automatically any time a change in data is read |
adcsettings | adcs | [channel]:[averages]:[interrupterrorthreshold]:[continuouserrorthreshold]:[continuoustimeout] | Sets the settings for the averager used for the given Control box analog-to-digital channel. Averages denote number of values read and averaged, interrupterrorthreshold sets the value change required for the Control box to report a new value. The continuouserrorthreshold and continuoustimeout are used to allow for continuous changes. See the firmware for more information |
expressionparserevaluate | epev | [expression] | Evaluates the given expression and returns the calculated value. Used for debugging |
testadclatency | tal | [value (0 - 65535)] | Debugging command to test ADC latency |
testadclatencyreturn | talr | none | Stops ADC latency testing started with tal |
testadcminmac | tamm | [channel] | Debugging command to test the min/max value for a given channel |
beep