* The DSS-1 enables MIDI Program Change selection (either/both/none) among the 2 stereo inputs of each of 2 stereo outputs.
* The DSS-1 can be seen as a
Dual Stereo Switcher
or as a
Quad Mono Switcher
, since L&R for each input can be configured individually.
* Both upper & lower pathways feature 2 (1/4-inch TRS) stereo inputs that can be routed (as either/both/none) into 1 (1/4-inch TRS) stereo output.
* The L&R signals for each of the 2 stereo inputs on the upper & lower pathways can be routed independently of one another for quad mono operation.
* This programmer for the DSS-1 uses the
WebMIDI API and is adapted from
this.
* Patches of settings for upper & lower pathways can be configured from the select boxes below, which use the such shorthand as:
*
DSS1_A00_B00 : DSS1_A00_B00
for neither L nor R of A or B to their respective upper & lower outputs).
*
DSS1_ALR_BLR : DSS1_ALR_BLR
for both L and R of A and B to their respective upper & lower outputs).
* If file access is blocked when this is run from a website, download this HTML file and run it locally.
* Correct MIDI transfers requires the use of a compliant MIDI cable and MIDI driver, as otherwise lacking flow control will corrupt larger messages.
* Correct MIDI access requires
Web MIDI API Status OK
to be shown along with MIDI ports for both transmit (Tx) and receive (Rx).
*
Midi Monitor (for MacOS) is useful for spying on the output of this programmer.
* The DSS-1 LED does a
chase rainblow
upon start-up and goes
blue
for operations.
* The DSS-1 LED does a
chase rainbow
on a MIDI ProgChg, flashes
green
for each SysEx DT1, and shows
red
for failed SysEx flow control.
* There is a 500ms delay between SysEx DT1s on bulk sends to the DSS-1 (128*500ms=~60s), as the Arduino Nano has limited RAM to buffer incoming MIDI.
* MIDI SysEx files for the DSS-1 can be loaded into either Patch Table. Patch Tables can each be saved as raw MIDI SysEx.
* MIDI SysEx format: 1 databyte (of upperstate << 4 | lowestate) for each of 128 patches (with ManuID, DevID, & ModID, and headers & checksum ignroed).
* That is, DT1 header (with MSB1=0 & MSB2=0-127 [patch index] and LSB1=0 & LSB2=0), the DSS-1 databyte, and then the DT1 checksum.
* Patch Tables 1 or 2 may be filled in entirety with valid DSS-1 upperstate & lowerstate data, so as to enable selective copying & pasting.
* Copying an empty patch table will fill the destination patch table with
DSS1_A00_B00 : DSS1_A00_B00
patches.
* Patches from a patch table may be edited by double-clicking on patch's
Index [Program]
.
* Copy individual patches by single-clicking on the
Index [Program]
of the source patch to select it, followed by a Ctrl-C/⌘-C to copy the patch.
* Paste copied patches by single-clicking on the
Index [Program]
of the destination patch to select it, followed by a Ctrl-V/⌘-V to paste the copied patch.