diff --git a/docs/intro.md b/docs/intro.md new file mode 100644 index 00000000..feda097e --- /dev/null +++ b/docs/intro.md @@ -0,0 +1,12 @@ +# Introduction + +Teletype is a dynamic, musical event triggering platform. + +* [Teletype Studies](https://monome.org/docs/modular/teletype/studies-1) - guided series of tutorials +* [PDF command reference chart](https://monome.org/docs/modular/teletype/TT_commands_card_1.3.pdf) +— [PDF key reference chart](https://monome.org/docs/modular/teletype/TT_keys_card_1.3.pdf) +— [PDF scene recall sheet](https://monome.org/docs/modular/teletype/TT_scene_RECALL_sheet.pdf) +— [Default scenes](http://monome.org/docs/modular/teletype/scenes-1.0/) + +* Current version: 2.0.0 +— [Firmware update procedure](https://monome.org/docs/modular/update/) diff --git a/docs/ops/ansible.toml b/docs/ops/ansible.toml index 8d2258f1..6be28f9b 100644 --- a/docs/ops/ansible.toml +++ b/docs/ops/ansible.toml @@ -44,13 +44,13 @@ prototype_set = "KR.L.ST x y z" short = "get loop start for track `x`, parameter `y` / set to `z`" ["KR.L.LEN"] -prototype = "KR.L.LEN" -prototype_set = "KR.L.LEN" -short = "get length of trrack `x`, parameter `y` / set to `z`" +prototype = "KR.L.LEN x y" +prototype_set = "KR.L.LEN x y z" +short = "get length of track `x`, parameter `y` / set to `z`" ["KR.RES"] prototype = "KR.RES x y" -short = "reset to loop start for track `x`, parameter `y`" +short = "reset position to loop start for track `x`, parameter `y`" ["ME.PRE"] prototype = "ME.PRE" diff --git a/docs/ops/hardware.toml b/docs/ops/hardware.toml index dccca615..ebd2c783 100644 --- a/docs/ops/hardware.toml +++ b/docs/ops/hardware.toml @@ -49,8 +49,8 @@ Get the value of the PARAM knob. This returns a valuue in the range 0-16383. """ ["TR"] -prototype = "TR" -prototype_set = "TR" +prototype = "TR x" +prototype_set = "TR x y" short = "Set trigger output x to y (0-1)" description = """ Get the current state of trigger output `x`. Set the state of trigger @@ -85,7 +85,7 @@ Flip the state of trigger output `x`. ["TR.PULSE"] prototype = "TR.PULSE x" -aliases = ["TR.P"] +aliases = ["TR.P x"] short = "Pulse trigger output x" description = """ Pulse trigger output x. diff --git a/docs/ops/justfriends.md b/docs/ops/justfriends.md new file mode 100644 index 00000000..736805d1 --- /dev/null +++ b/docs/ops/justfriends.md @@ -0,0 +1,4 @@ +## Just Friends + +More extensively covered in the [Just Friends Documentation](https://www.whimsicalraps.com/pages/just-type). + diff --git a/docs/ops/justfriends.toml b/docs/ops/justfriends.toml new file mode 100644 index 00000000..f0cb0cf7 --- /dev/null +++ b/docs/ops/justfriends.toml @@ -0,0 +1,55 @@ +["JF.TR"] +prototype = "JF.TR x y" +short = "Simulate a TRIGGER input. `x` is channel (`0` = all) and y is state (`0` or `1`)" + +["JF.RMODE"] +prototype = "JF.RMODE x" +short = "Set the RUN state of Just Friends when no physical jack is present. (`0` = run off, non-zero = run on)" + +["JF.RUN"] +prototype = "JF.RUN x" +short = "Send a 'voltage' to the RUN input. Requires `JF.RMODE 1` to have been executed, or a physical cable in JF's input. Thus Just Friend's RUN modes are accessible without needing a physical cable & control voltage to set the RUN parameter. use `JF.RUN V x` to set to `x` volts. The expected range is V -5 to V 5" + +["JF.SHIFT"] +prototype = "JF.SHIFT x" +short = "Shifts the transposition of Just Friends, regardless of speed setting. Shifting by V 1 doubles the frequency in sound, or doubles the rate in shape. `x` = pitch, use `N x` for semitones, or `V y` for octaves." + +["JF.VTR"] +prototype = "JF.VTR x y" +short = "Like `JF.TR` with added volume control. Velocity is scaled with volts, so try `V 5` for an output trigger of 5 volts. Channels remember their latest velocity setting and apply it regardless of TRIGGER origin (digital or physical). `x` = channel, `0` sets all channels. `y` = velocity, amplitude of output in volts. eg `JF.VTR 1 V 4`." + +["JF.TUNE"] +prototype = "JF.TUNE x y z" +short = "Adjust the tuning ratios used by the INTONE control. `x` = channel, `y` = numerator (set the multiplier for the tuning ratio), `z` = denominator (set the divisor for the tuning ratio)." + +["JF.MODE"] +prototype = "JF.MODE x" +short = "Set the current choice of standard functionality, or Just Type alternate modes. You'll likely want to put JF.MODE x in your Teletype INIT scripts. `x` = nonzero activates alternative modes. `0` restores normal." + +["JF.VOX"] +prototype = "JF.VOX x y z" +short = "Create a note at the specified channel, of the defined pitch & velocity. All channels can be set simultaneously with a chan value of 0. `x` = channel, `y` = pitch relative to C3, `z` = velocity (like `JF.VTR`)." + +["JF.NOTE"] +prototype = "JF.NOTE x y" +short = "Polyphonically allocated note sequencing. Works as JF.VOX with chan selected automatically. Free voices will be taken first. If all voices are busy, will steal from the voice which has been active the longest. `x` = pitch relative to C3, `y` = velocity." + +["JF.GOD"] +prototype = "JF.GOD x" +short = "Redefines C3 to align with the 'God' note. `x` = `0` sets A to 440, `x` = `1` sets A to 432." + +["JF.TICK"] +prototype = "JF.TICK x" +short = "Sets the underlying timebase of the Geode. `x` = clock. 0 resets the timebase to the start of measure. 1 to 48 shall be sent repetitively. The value representing ticks per measure. 49 to 255 sets beats-per-minute and resets the timebase to start of measure." + +#["JF.VOX"] +#prototype = "JF.VOX x y z" +#short = "Create a stream of rhythmic envelopes on the named channel. `x` = channel, `y` = division, `z` = number of repeats." + +#["JF.NOTE"] +#prototype = "JF.NOTE x y" +#short = "Works as JF.VOX with dynamic allocation of channel. Assigns the rhythmic stream to the oldest unused channel, or if all are busy, the longest running channel. `x` = division, `y` = number of repeats." + +["JF.QT"] +prototype = "JF.QT x" +short = "When non-zero, all events are queued & delayed until the next quantize event occurs. Using values that don't align with the division of rhythmic streams will cause irregular patterns to unfold. Set to 0 to deactivate quantization. `x` = division, 0 deactivates quantization, 1 to 32 sets the subdivision & activates quantization." diff --git a/docs/whats_new.md b/docs/whats_new.md index 3b389390..4f993176 100644 --- a/docs/whats_new.md +++ b/docs/whats_new.md @@ -5,31 +5,13 @@ Teletype version 2.0 represents a large rewrite of the Teletype code base. There are many new language additions, some small breaking changes and a lot of under the hood enhancements. -### Breaking changes - - - **Removed the need for the `II` `OP`.** - - For example, `II MP.PRESET 1` will become just `MP.PRESET 1`. - - - **Merge `MUTE` and `UNMUTE` `OP`s to `MUTE x` / `MUTE x y`.** - - See the documentation for `MUTE` for more information. - - - **Remove unused Meadowphysics `OP`s.** - - Removed: `MP.SYNC`, `MP.MUTE`, `MP.UNMUTE`, `MP.FREEZE`, `MP.UNFREEZE`. - - - **Rename Ansible Meadowphysics `OP`s to start with `ME`.** - - This was done to avoid conflicts with the Meadowphysics `OP`s. - - **WARNING**: If you restore your scripts from a USB memory stick, please manually fix any changes first. Alternatively, incorrect commands (due to the above changes) will be skipped when imported, please re-add them. - ### Major new features #### Sub commands - -e.g. `IF X: CV 1 N 60 TR.PULSE 1`. + +Several commands on one line, separated by semicolons. + +e.g. `CV 1 N 60; TR.PULSE 1` See the section on "Sub commands" for more information. @@ -84,13 +66,28 @@ It should also be significantly more reliable with a wider ranger of memory stic - Limited script recursion now allowed (max recursion depth is 8) including self recursion. - Metro scripts limited to 25ms, but new `M!` op to set it as low as 2ms (at your own risk), see "Metronome" `OP` section for more. -### Known issues +### Breaking changes -#### Visual glitches + - **Removed the need for the `II` `OP`.** + + For example, `II MP.PRESET 1` will become just `MP.PRESET 1`. + + - **Merge `MUTE` and `UNMUTE` `OP`s to `MUTE x` / `MUTE x y`.** + + See the documentation for `MUTE` for more information. -The cause of these is well understood, and they are essentially harmless. Changing modes with the `` key will force the screen to redraw. A fix should hopefully be coming in version 2.1. + - **Remove unused Meadowphysics `OP`s.** + + Removed: `MP.SYNC`, `MP.MUTE`, `MP.UNMUTE`, `MP.FREEZE`, `MP.UNFREEZE`. -#### Tables in the PDF documentation + - **Rename Ansible Meadowphysics `OP`s to start with `ME`.** -Unfortunately the tables in the PDF documentation are somewhat hard to read due to the lack of horizontal lines between rows. + This was done to avoid conflicts with the Meadowphysics `OP`s. + + **WARNING**: If you restore your scripts from a USB memory stick, please manually fix any changes first. Alternatively, incorrect commands (due to the above changes) will be skipped when imported, please re-add them. + +### Known issues + +#### Visual glitches +The cause of these is well understood, and they are essentially harmless. Changing modes with the `` key will force the screen to redraw. A fix is coming in version 2.1. diff --git a/utils/docs.py b/utils/docs.py index d3158d80..dd85469f 100755 --- a/utils/docs.py +++ b/utils/docs.py @@ -85,6 +85,7 @@ def common_md(): op_extended_template = env.get_template("op_extended.jinja2.md") output = "" + output += Path(DOCS_DIR / "intro.md").read_text() + "\n\n" output += Path(DOCS_DIR / "whats_new.md").read_text() + "\n\n" output += Path(DOCS_DIR / "modes.md").read_text() + "\n\n" output += Path(DOCS_DIR / "ops.md").read_text() + "\n\n" diff --git a/utils/templates/docs.css b/utils/templates/docs.css index fbb3dcdc..74e08111 100644 --- a/utils/templates/docs.css +++ b/utils/templates/docs.css @@ -131,7 +131,7 @@ h6 code { font-size: inherit; } h1 { - font-size: 28px; + font-size: 32px; color: black; } h2 { diff --git a/utils/templates/template.html5 b/utils/templates/template.html5 index 32daa79b..58d9b188 100644 --- a/utils/templates/template.html5 +++ b/utils/templates/template.html5 @@ -132,7 +132,7 @@
- $body$ +$body$ $for(include-after)$ $include-after$