Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

The Ekdahl FAR - Command reference: Difference between revisions

From KNAS Wiki
No edit summary
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 60: Line 60:
|[variable number (0-9)]:[value (float)]
|[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.
|Sets or returns the user variable defined in the first ''parameter,'' if used to set the variable, the second ''parameter'' is the value.
|-
|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''
|}
MIDI commands
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|-
|midiconfiguration
|midiconfiguration
Line 105: Line 135:
|<nowiki>[conditional (0|1)]</nowiki>
|<nowiki>[conditional (0|1)]</nowiki>
|Clears the entire ''MIDI'' buffer of notes held and turns off any bowing
|Clears the entire ''MIDI'' buffer of notes held and turns off any bowing
|}
ADC / Control box commands
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|-
|adccommandmap
|adccommandmap
Line 125: Line 165:
|[channel]:[averages]:[interrupterrorthreshold]:[continuouserrorthreshold]:[continuoustimeout]
|[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
|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''
|}
|}
MIDI commands
The ''local'' commands as of this writing (2025-01-26) are:
The ''local'' commands as of this writing (2025-01-26) are:
{| class="wikitable"
{| class="wikitable"
|+
|+
Line 158: Line 182:
|[bow (0)]
|[bow (0)]
|Sets the ''current bow.'' This command is intended for future versions of the Ekdahl FAR that may have more than one ''bow'' per ''string module.'' Currently '0' is the only valid ''parameter''
|Sets the ''current bow.'' This command is intended for future versions of the Ekdahl FAR that may have more than one ''bow'' per ''string module.'' Currently '0' is the only valid ''parameter''
|-
|bowstatus
|bs
|none
|Outputs debugging data. Deprecated
|-
|pickupstringfrequency
|psf
|none
|Returns the fundamental frequency calculated from the current audio signal if, applicable
|-
|pickupaudiopeak
|pap
|none
|Returns the peak amplitude of the current audio signal
|-
|pickupaudiorms
|par
|none
|Returns the [[wikipedia:Root_mean_square|RMS]] amplitude of the current audio signal
|-
|bowdebugmeasuretimetotarget
|bdmtt
|[frequency]
|Measure the time it takes to change from the current frequency to the target frequency, used to debug the ''PID''
|-
|bowhome
|bh
|none
|Homing bow, used at startup and in case of the bow loosing position
|-
|bowcalibrateall
|bca
|none
|Performs all calibration routines for a single bow available in the given firmware
|-
|bowcalibratespeed
|bcf
|none
|Performs a ''bowing speed calibration''
|-
|bowcalibratepressure
|bcp
|none
|Performs a ''pressure calibration''
|-
|nooperation
|nop
|none
|Do absolutely, positively, nothing
|}
Commands setting parameters relating to the bow PID
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|-
|bowpid
|bowpid
Line 198: Line 282:
|none
|none
|Returns the last ''error value'' measured in between the ''set point'' and the ''process variable''
|Returns the last ''error value'' measured in between the ''set point'' and the ''process variable''
|}
Commands relating to bow frequency control
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|-
|bowcontrolfrequecy
|bowcontrolfrequecy
Line 248: Line 342:
|<nowiki>[mode (0|1)]</nowiki>
|<nowiki>[mode (0|1)]</nowiki>
|Sets the ''speed mode'' where ''0 = Automatic'' and ''1 = Manual''. The only difference in between these two modes is that ''Automatic'' will automatically turn off the motor when the bow has been set in its ''rest position'' and no frequency changing ''commands'' have been sent within the time period given by ''bowmotortimeout''
|Sets the ''speed mode'' where ''0 = Automatic'' and ''1 = Manual''. The only difference in between these two modes is that ''Automatic'' will automatically turn off the motor when the bow has been set in its ''rest position'' and no frequency changing ''commands'' have been sent within the time period given by ''bowmotortimeout''
|}
Commands for controlling harmonic series
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|-
|bowharmonicseries
|bowharmonicseries
Line 254: Line 358:
|Sets the ''current harmonic series''
|Sets the ''current harmonic series''
|-
|-
|bowharmonicserieslist
|bowharmonicseriesdata
|bhsl
|bhsl
|[(set  only) series]:[(set only) name]:[ratios]
|[(set  only) series]:[name]:[ratios]
|Sets <u>all</u> ''ratios'' and the ''name'' of the ''harmonic list'' in the given ''series''. There can be any number of ''ratio''-parameters and this effectively sets the number of ''harmonics'' per octave. If required, empty ''harmonic lists'' will be added until ''slot'' is a valid number. On return, only returns ''ratios'' of the ''current harmonic list'' (takes no ''parameters'')
|Sets <u>all</u> ''ratios'' and the ''name'' of the ''harmonic list'' in the given ''series''. There can be any number of ''ratio''-parameters and this effectively sets the number of ''harmonics'' per octave. If required, empty ''harmonic lists'' will be added until ''slot'' is a valid number. On return, requires [series] and returns ''name'' and ''ratios'' of the ''harmonic series'' given
|-
|-
|bowharmonicseriesratio
|bowharmonicseriesratio
Line 276: Line 380:
|bowharmonicseriessave
|bowharmonicseriessave
|bhss
|bhss
|[name]:[series]
|[series]:[name]
|Saves the current ''harmonic series'' into the slot given by the second ''parameter'' with the name give in the first ''parameter''. Note that this ''command'' does <u>not</u> save it into flash memory
|Saves the current ''harmonic series'' into the slot given by the second ''parameter'' with the name give in the first ''parameter''. Note that this ''command'' does <u>not</u> save it into flash memory
|-
|-
Line 283: Line 387:
|[series]
|[series]
|Removes the ''harmonic series'' given in the ''parameter''. Shifts all ''series''' with a higher ''series'' number
|Removes the ''harmonic series'' given in the ''parameter''. Shifts all ''series''' with a higher ''series'' number
|-
|}
|bowstatus
 
|bs
Commands relating to the bowing motor
|none
 
|Outputs debugging data. Deprecated
{| class="wikitable"
|-
|+
|pickupstringfrequency
!Long name
|psf
!Short name
|none
!Parameters
|Returns the fundamental frequency calculated from the current audio signal if, applicable
!Description
|-
|pickupaudiopeak
|pap
|none
|Returns the peak amplitude of the current audio signal
|-
|pickupaudiorms
|par
|none
|Returns the [[wikipedia:Root_mean_square|RMS]] amplitude of the current audio signal
|-
|bowdebugmeasuretimetotarget
|bdmtt
|[frequency]
|Measure the time it takes to change from the current frequency to the target frequency, used to debug the ''PID''
|-
|bowhome
|bh
|none
|Homing bow, used at startup and in case of the bow loosing position
|-
|bowcalibrateall
|bca
|none
|Performs all calibration routines for a single bow available in the given firmware
|-
|bowcalibratespeed
|bcf
|none
|Performs a ''bowing speed calibration''
|-
|bowcalibratepressure
|bcp
|none
|Performs a ''pressure calibration''
|-
|-
|bowmotorrun
|bowmotorrun
Line 388: Line 457:
|[command string]
|[command string]
|Sets the ''commands'' to execute when the ''bowing motor'' is over the power limit, <u>used to safeguard the motor, '''can ruin the instrument if improperly set'''</u>
|Sets the ''commands'' to execute when the ''bowing motor'' is over the power limit, <u>used to safeguard the motor, '''can ruin the instrument if improperly set'''</u>
|}
Commands for controlling bow pressure
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|-
|bowpressurebaseline
|bowpressurebaseline
|
|bpb
|
|[pressure (0 - 65535)]
|
|Sets the ''pressure baseline'' value, scaled by the ''bowpressurepositionengage'' and ''bowpressurepositionmax'' parameters. The ''pressure baseline'' and ''pressure modifier'' forms the total ''pressure position''.
|-
|bowpressuremodifier
|bpm
|[pressure (0 - 65535)]
|Sets the ''pressure modifier'' value, scaled by the ''bowpressurepositionengage'' and ''bowpressurepositionmax'' parameters. The ''pressure baseline'' and ''pressure modifier'' forms the total ''pressure position''.
|-
|bowpressurerest
|bpr
|<nowiki>[conditional (0|1)]</nowiki>
|Puts the bow pressure in the ''rest position''
|-
|bowpressureengage
|bpe
|<nowiki>[conditional (0|1)]</nowiki>
|Puts the bow pressure in the ''engage position''
|-
|bowpressurepositionmax
|bppx
|[value (0 - 65535)]
|Sets the maximum <u>hardware</u> position of the ''bowing jack''
|-
|bowpressurepositionengage
|bppe
|[value (0 - 65535)]
|Sets the ''engage'' ''position'' <u>hardware</u> position of the ''bowing jack''
|-
|bowpressurepositionrest
|bppr
|[value (0 - 65535)]
|Sets the ''rest position'' <u>hardware</u> position of the ''bowing jack''
|-
|bowpressureengagespeed
|bpes
|[speed (0 - 100)]
|Sets the speed of the ''pressure motor'' in RPM when going from ''rest'' to ''engage'' or vice versa. Setting this value too high will result in the ''pressure motor'' loosing track and the instrument malfunctioning as a result. Setting this value too low will result in the instrument getting increased ''latency'' and feeling sluggish.
|-
|bowpressuremodulationspeed
|bpms
|[speed (0.1 - ''bpes'')]
|Sets the speed of the ''pressure motor'' in RPM when at ''engage'' and modulating the pressure. The main purpose of this setting is to avoid the ''bowing motor'' slowing down too much when modulating the ''pressure'', resulting in audible artifacts
|-
|bowpressurehold
|bph
|<nowiki>[(0|1)]</nowiki>
|Sets ''bow hold'' off or on. If ''bow hold'' is on, any ''bowpressurerest''-command will be ignored until ''bowpressurehold'' is set to off. Analog to the concept of ''infinite sustain''
|}
 
Commands for solenoid control
 
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|solenoid
|so
|[('0')]
|Sets the ''current solenoid''. This command is intended for future versions of the Ekdahl FAR that may have more than one ''solenoid'' per ''string module.'' Currently '0' is the only valid ''parameter''
|-
|solenoidengage
|se
|[force (0 - 65535)]
|Engages the ''current solenoid'' with the ''force'' given, the ''force'' is mutiplied by the ''force multiplier'' as set by ''solenoidforcemultiplier''. The ''force'' is scaled according to the ''solenoidmaxforce'' and ''solenoidminforce'' parameters, a ''force'' of ''0'' always means to not engage. Also see ''solenoidengageduration''
|-
|solenoiddisengage
|sd
|<nowiki>[conditional (0|1)]</nowiki>
|Disengages the ''solenoid''
|-
|solenoidmaxforce
|sxf
|[value (0 - 65535)]
|Sets the maximum hardware force used
|-
|solenoidminforce
|sif
|[value (0 - 65535)]
|Sets the minimum hardware force used
|-
|solenoidforcemultiplier
|sfm
|[value (0 - 1)]
|Sets the value of the ''force multiplier''
|-
|solenoidengageduration
|sed
|[duration (0 - 65535)]
|Sets the duration of the ''solenoid engagement'' in ɥS. if a value of ''0'' is set the ''solenoid'' will not disengage until a ''solenoiddisengage-''command has been given. This latter behavior is <u>not encouraged</u> as it <u>'''can ruin the instrument if improperly used'''</u>
|}
 
Commands for controlling the mute
 
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|mutesetposition
|msp
|[position (0 - 65535)]
|Sets the ''mute position'', scaled by the ''mutefullmuteposition'' and ''muterestposition''
|-
|mutefullmute
|mfm
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''mute'' in the ''full mute position''
|-
|mutehalfmute
|mhm
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''mute'' in the ''half mute position''
|-
|muterest
|mr
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''mute'' in the ''mute rest position''
|-
|mutesavefull
|msf
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''full mute position'' to be equal to the current ''mute position''
|-
|mutesavehalf
|msh
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''half mute position'' to be equal to the current ''mute position''
|-
|mutesaverest
|msr
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''mute rest position'' to be equal to the current ''mute position''
|-
|mutefullmuteposition
|mfmp
|[value (0 - 65535)]
|Sets the ''full mute position'' to ''value''
|-
|mutehalfmuteposition
|mhmp
|[value (0 - 65535)]
|Sets the ''half mute position'' to ''value''
|-
|muterestposition
|mrp
|[value (0 - 65535)]
|Sets the ''mute rest position'' to ''value''
|-
|mutesustain
|ms
|<nowiki>[conditional (0|1)]</nowiki>
|Sets the ''mute sustain'' to ''off'' or ''on''. When ''mute sustain'' is ''on'', any ''mutefullmute-''commands sent will be ignored until ''mute sustain'' is set to ''off''
|-
|mutebackoff
|mbo
|[backoff (0 - 65535)]
|Sets the ''mute backoff'' to ''backoff'', given in mS. The ''mute backoff'' sets the time that the ''mute'' stays in the ''mutefullmute'' position before automatically going to the ''rest position''
|-
|mutehome
|mh
|none
|Homing the ''mute''
|-
|mutecalibrate
|mca
|none
|Runs the ''mute calibration''
|}
 
Commands for bow actuators
 
{| class="wikitable"
|+
!Long name
!Short name
!Parameters
!Description
|-
|<s>bowactuatoradd</s>
|baa
|none
|Add new bow ''actuator''
|-
|bowacutatorremove
|bar
|[actuator]
|Removes the ''actuator'' given in the ''parameter''
|-
|<s>bowactuatorset</s>
|bas
|[actuator]
|Sets the ''current actuator'' to the number given in the ''parameter''
|-
|<s>bowactuatorload</s>
|bal
|none
|Loads data from the ''current actuator''
|-
|bowactuatorsave
|bas
|none
|Saves the ''bow pressure position rest, bow pressure position engage'' and ''bow pressure position max'' into the ''current actuator''
|-
|bowactuatordata
|bad
|[actuator]:[engage]:[max]:[rest]:[id]
|Sets the ''bow pressure position engage, bow pressure position max, bow pressure position rest'' and ''actuator id'' of the ''actuator'' given by the first ''parameter''
|-
|bowactuatorcount
|bac
|none
|Returns the number of saved ''actuators''
|-
|<s>bowactuatorid</s>
|bai
|id
|Sets the ''id'' of the ''current actuator''
|}
|}
a{{docnav
Please note that ''commands'' may be added or subtracted from this list as the Ekdahl FAR ''firmware'' development progresses, the most sincere attempts will be made to keep this list up to date but no guarantees will be made.{{docnav
|[[The Ekdahl FAR - Command langue|Command language]]
|[[The Ekdahl FAR - Command langue|Command language]]
|[[The Ekdahl FAR - Specifications|Specifications]]
|[[The Ekdahl FAR - Specifications|Specifications]]
}}
}}