;
; RISC OS Digital Signal Processor C Module
; By A.V.Bartram
;
; THIS SOFTWARE IS PROVIDED  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
; FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
; IN NO EVENT SHALL A.V.Bartram BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL
; ,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO
; ),PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS
; ;OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

help-string:  RDSP 0.87

title-string: RDSP

initialisation-code: rs_initialise

finalisation-code: rs_finalise

swi-chunk-base-number: 0x59b00

swi-handler-code: rs_swi

vector-handlers: rosesound_entry/rosesound_handler

command-keyword-table: rs_cmd

  rstart(min-args:0, max-args:0,
      help-text: "Start RDSP engine\nSyntax\tRStart \n"),

  rstop(min-args:0, max-args:0,
      help-text: "Stop RDSP engine Syntax\Stop\n"),

  rfilter(min-args:3, max-args:3,
      help-text: "Configure Low Pass Filter for channel\nSyntax\trfilter <channel> <cut-off> <resonance>\n"),

  rsound(min-args:6, max-args:6,
      help-text:"Play synthesiser sound\nSyntax\tRSound <channel> <flags> <wave | instrument> <volume> <pitch> <duration>\n"),

  renvelope(min-args:8, max-args:8,
      help-text:"Define instrument to play via sound command\nSyntax\tREnvelope <number> <name> <wave>  <cutoff-resonance> <options/ASR-steptime> <ASR steps> <AR delta> <ADSR levels>\nn.b. All options are in hex.\n"),

  rfxmix(min-args:2, max-args:2,
      help-text: "Mix sound channel into the effects processor input.\nSyntax\tRFXMix <channel | 255 (all off)> <0|1>\n"),

  rfx(min-args:1, max-args:1,
      help-text: "Turn on sound effects algorithms:\n   4 = off    8  = Delay.  16 = Chorus, 32 = Reverb\nSyntax\tRFX <algorithm mask>\n"),

  rdelay(min-args:2, max-args:2,
      help-text: "Delay (echo) effect configuration\nSyntax\tRDelay <time in centiseconds> <feedback>\n"),

  rload(min-args:2, max-args:2,
      help-text: "Load a 44khz 16 bit sample into sample memory bank\nSyntax\tRLoad <sample bank> <pathname>\n"),

  rverbose(min-args:0, max-args:0,
      help-text: "Output status and error reporting \nSyntax\tRVerbose \n"),

  rlegacy(min-args:0, max-args:2,
      help-text: "Enable legacy DSP/envelope compatibility mode.\n 1 = Override System Bell with sample ID <param>  (i.e. sound 1,,100,)\nSyntax\tRLegacy <option> <parameter>\n"),

  radvanced(min-args:0, max-args:0,
      help-text: "Disable legacy DSP/envelope compatibility mode\nSyntax\tRAdvanced \n"),

  rlist(min-args:0, max-args:0,
      help-text: "List envelope memory\nSyntax\trlist \n"),

  rvolume(min-args:1, max-args:1,
      help-text: "Master volume control (0-256):\nSyntax\trvolume <level>\n"),

  rlisten(min-args:1, max-args:1,
      help-text: "Records RDSP output to a memory buffer. Length of time is in hundredths of a second (0-120000):\nSyntax\trlisten <level>\n"),

  rnolisten(min-args:0, max-args:0,
      help-text: "Cancels RDSP output recording\nSyntax\trnolisten \n"),

  rsave(min-args:1, max-args:1,
      help-text: "Save in-memory recording of RDSP to disc:\nSyntax\trsave <pathname>\n"),

  rcompressor(min-args:1, max-args:1,
      help-text: "Not implemented in RDSP Beta. Will enable Dynamic Range Compressor:\nSyntax\trcompressor <enable> <speed> <attack> <threshold> <decay>\n"),

  rsampleloop(min-args:3, max-args:3,
      help-text: "Turn on sample looping:\nSyntax:\trsampleloop <sample id> <loop-point> <loop-to>\n"),

  rbell(min-args:1, max-args:1,
      help-text: "Override system bell with sample\nSyntax\tRBell <sample-id> \n"),

  rpan(min-args:2, max-args:2,
       help-text:"Pan sound from left (0) to right (255). Centre = 128\n"),

  rchorus(min-args:2, max-args:2,
      help-text: "Chorus  effect configuration\nSyntax\tRChorus <rate 1-16> <depth 0-255>\n"),

rhall(min-args:1, max-args:1,
      help-text: "Hall effects configuration:\nSyntax\tRHall   <size 0-255>\n"),

rroom(min-args:1, max-args:1,
      help-text: "Room effects configuration:\nSyntax\tRHall   <size 0-255>\n"),

  sound(min-args:4, max-args:4,
      help-text: "RDSP's BASIC SOUND command:\nSyntax\tSOUND PFIC,TTVV,FRNN,DDDD\n  See documentation for more information.\n"),
  envelope(min-args:14, max-args:14,
      help-text: "RDSP's BASIC ENVELOPE command:\nSyntax\tENVELOPE N,W,FQ,O,T,S13,S2,D1,D2,D3,A,D,S,R\nN = envelope number (128 selects sample 1 etc).\nW=Wave or Sample ID.\nF=Filter nybble\nQ=Filter Q\nO=modulation options:-\n &01-&04 ADSR: (&01=pitch, &02=filter,&04=PWM),\n &08-&40 3 stage envelope:\n(&08=amp, &10=pitch, &20=filter, &40=PWM), &80 = loop 3 stage envelope\nT=3-stage step-time in 1/100ths of a second\nS2=Steps in stage 2\nS13=Steps in stage 1&3\nD1-D3=Delta for stages 1-3\nADSR envelope\n")
