- FIX:
LAST SCRIPTin live mode gives time since init script was run - FIX: negative pattern values are properly read from USB
- FIX: delay when navigating to sections in docs
- NEW: generic i2c ops:
IIA,IIS..,IIQ..,IIB.. - NEW: exponential delay operator
DEL.G - NEW: binary and hex format for numbers:
B...,X... - NEW: Disting EX ops
- FIX:
LAST nis broken for script 1 - NEW: bitmasked delay and quantize:
DEL.B..,QT.B.. - NEW: scale and chord quantize:
QT.S..,QT.CS.. - NEW: bit toggle OP:
BTOG.. - NEW: volts to semitones helper OP:
VN.. - IMP: DELAY_SIZE increased to 64 from 16
- FIX: scale degree arguments 1-indexed:
N.S,N.CS - NEW: Just Friends 4.0 OPs and dual JF OPs
- NEW: binary scale ops
N.BandN.BX - NEW: reverse binary for numbers:
R... - NEW: reverse binary OP:
BREV - NEW:
ES.CVread earthsea CV values - NEW: added setter for
R, sets R.MIN and R.MAX to same value, allowing R to be used as variable - NEW: v/oct to hz/v conversion op:
HZ
- FIX: improve DAC latency when using
CVops - NEW: call metro / init with
SCRIPT 9/SCRIPT 10 - NEW: forward (C-f or C-s) and reverse (C-r) search in help mode
- NEW: new ops:
LROT(alias<<<),RROT(alias>>>) - NEW:
LSHandRSHshift the opposite direction when passed a negative shift amount - NEW: new op:
SGN(sign of argument) - NEW: new kria remote op:
KR.DUR - NEW: new op:
NR(binary math pattern generator) - NEW: new ops:
N.S, N.C, N.CS(use western scales and chords to get values fromNtable) - NEW: new ops:
FADER.SCALE, FADER.CAL.MIN, FADER.CAL.MAX, FADER.CAL.RESETfor scaling 16n Faderbank values (aliasesFB.S, FB.C.MIN, FB.C.MAX, FB.C.R) - NEW: new Tracker mode keybinding
alt-[ ]semitone up, down - NEW: new Tracker mode keybinding
ctrl-[ ]fifth up, down - NEW: new Tracker mode keybinding
shift-[ ]octave up, down - NEW: new Tracker mode keybinding
alt-<0-9><0-9>semitones up (0=10, 1=11) - NEW: new Tracker mode keybinding
shift-alt-<0-9><0-9>semitones down (0=10, 1=11) - FIX: dim M in edit mode when metro inactive
- NEW: new pattern ops:
P.SHUF,PN.SHUF,P.REV,PN.REV,P.ROT,PN.ROT - NEW: new pattern mods:
P.MAP:,PN.MAP x:
- NEW: new op:
DEVICE.FLIP - FIX: some keyboards losing keystrokes
- NEW: new op:
DEL.X - NEW: new op:
DEL.R - IMP: DELAY_SIZE increased to 16 from 8
- NEW: new variables:
J&Klocal script variables - FIX: metro rate not updated after
INIT.SCENE - NEW: new ops:
SEED,R.SEED,TOSS.SEED,DRUNK.SEED,P.SEED,PROB.SEED - NEW: new op:
SCENE.G - NEW: new op:
SCRIPT.POL, alias$.POL - NEW: new ansible remote ops:
ANS.G,ANS.G.P,ANS.G.LED,ANS.A,ANS.A.LED - NEW: new kria remote ops:
KR.CUE,KR.PG
- NEW: grid integration / grid visualizer / grid control mode
- NEW: multiline copy/paste and editing
- NEW: new keybindings to move by words
- NEW: undo in script editing
- NEW: i2c support for ER-301
- NEW: i2c support for 16n Faderbank
- NEW: i2c support for Matrixarchate
- NEW: i2c support for W/
- NEW: new op:
? - NEW: new ops:
P.MIN,PN.MIN,P.MAX,PN.MAX,P.RND,PN.RND,P.+,PN.+,P.-,PN.-.P.+W,PN.+W,P.-W,PN.-W - NEW: new Telex ops:
TO.CV.CALIB,TO.ENV - NEW: new Kria ops:
KR.CV,KR.MUTE,KR.TMUTE,KR.CLK,ME.CV - NEW: new aliases:
$,RND,RRND,WRP,SCL - NEW: telex, ansible, just friends, w/ added to the help screen
- FIX: i2c initialization delayed to account for ER-301 bootup
- FIX: last screen saved to flash
- FIX: knob jitter when loading/saving scenes reduced
- FIX: duplicate commands not added to history
- FIX:
SCALEprecision improved - FIX:
PARAMset properly when used in the init script - FIX:
PARAMandINwon't reset to 0 afterINIT.DATA - FIX:
PN.HERE,P.POP,PN.POPwill update the tracker screen - FIX:
P.RMwas 1-based, now 0-based - FIX:
P.RM/PN.RMwill not change pattern length if deleting outside of length range - FIX:
JIop fixed - FIX:
TIMEandLASTare now 1ms accurate - FIX:
RAND/RRANDwill properly work with large range values - FIX:
L .. 32767won't freeze - FIX:
Inow accessible to child SCRIPTS
- NEW: added a cheat sheet PDF
- NEW: new bitwise ops:
&,|,^,~,BSET,BCLR,BGET - NEW: new ops
PARAM.SCALE min maxandIN.SCALE min maxto add static scaling to inputs - NEW: blanking screensaver after 90 minutes of keyboard inactivity, any key to wake
- NEW: new op:
CHAOSchaotic sequence generator. Control withCHAOS.ALGandCHAOS.R - NEW: new op family:
INIT, to clear device state - NEW: new ops:
R,R.MIN,R.MAXprogrammable RNG - IMP: profiling code (optional, dev feature)
- IMP: screen now redraws only lines that have changed
- FIX: multiply now saturates at limits, previous behaviour returned 0 at overflow
- FIX: entered values now saturate at int16 limits
- FIX: reduced flash memory consumption by not storing TEMP script
- FIX:
Inow carries acrossDELcommands - FIX: removed TEMP script allocation in flash
- FIX: corrected functionality of JI op for 1volt/octave tuning and removed octave-wrapping behaviour (now returns exactly the entered ratio)
- FIX: reduced latency of
INop
- BREAKING: the
Ivariable is now scoped to theLloop, and does not exist outside of an execution context. Scripts usingIas a general-purpose variable will be broken. - FIX:
SCENEwill not run fromINITscript during scene load. - NEW: Tracker data entry overhaul. Type numbers, press enter to commit.
- NEW: new op:
BPMto get milliseconds per beat in given BPM - NEW: script lines can be disabled / enabled with ctrl-/
- NEW: shift-enter in scene write mode now inserts a line
- NEW: new ops:
LAST xfor the last time scriptxwas called - NEW:
SCRIPTwith no arguments gets the current script number. - FIX:
AVGandQ.AVGnow round up properly - NEW: new op:
BREAKto stop the remainder of the script - NEW: new mod:
W [condition]: [statement]will executestatementas long asconditionis true (up to an iteration limit). - NEW: new mods:
EVERY x:,SKIP x:,OTHER:to alternately execute or not execute a command. - NEW: new op:
SYNC xwill synchronize allEVERYandSKIPline to the same step. - NEW: new feature: @ - the turtle. Walks around the pattern grid. Many ops, see documentation.
- OLD: ctrl-F1 to F8 mute/unmute scripts.
- NEW: ctrl-F9 enables/disables METRO.
- FIX: recursive delay fix. Now you can
1: DEL 500: SCRIPT 1for temporal recursion. - FIX:
KILLnow clears TR output as well as disabling the METRO script. - FIX: if / else conditions no longer transcend their script
- IMP: functional exectuion stack for
SCRIPToperations
- FIX: update IRQ masking which prevents screen glitches and crashing under heavy load
- BREAKING: remove
IIop. Ops that required it will now work with out it. (e.g.II MP.PRESET 1will become justMP.PRESET 1) - BREAKING: merge the
MUTEandUNMUTEops. NowMUTE xwill return the mute status for triggerx(0is unmuted,1is muted), andMUTE x ywill set the mute for triggerx(y = 0to unmute,y = 1to mute) - BREAKING: remove unused Meadowphysics ops:
MP.SYNC,MP.MUTE,MP.UNMUTE,MP.FREEZE,MP.UNFREEZE - BREAKING: rename Ansible Meadowphysics ops to start with
ME - NEW: sub commands, use a
;separator to run multiple commands on a single line, e.g.X 1; Y 2 - NEW: key bindings rewritten
- NEW: aliases:
+forADD,-forSUB,*forMUL,/forDIV,%forMOD,<<forLSH,>>forRSH,==forEQ,!=forNE,<forLT,>forGT,<=forLTE,>=forGTE,!forEZ,&&forAND,||forOR,PRMforPARAM,TR.PforTR.PULSE - NEW: new ops:
LTE(less than or equal), andGTE(greater than or equal) - NEW: new pattern ops:
PN.L,PN.WRAP,PN.START,PN.END,PN.I,PN.HERE,PN.NEXT,PN.PREV,PN.INS,PN.RM,PN.PUSHandPN.POP - NEW: USB disk loading and saving works at any time
- NEW:
Mlimited to setting the metronome speed to 25ms, addedM!to allow setting the metronome at unsupported speeds as low as 2ms - NEW: TELEX Aliases:
TO.TR.PforTO.TR.PULSE(plus all sub-commands) andTI.PRMforTI.PARAM(plus all sub-commands) - NEW: TELEX initialization commands:
TO.TR.INIT n,TO.CV.INIT n,TO.INIT x,TI.PARAM.INIT n,TI.IN.INIT n, andTI.INIT x - IMP: new Ragel parser backend
- IMP: script recursion enhanced, maximum recursion depth is 8, and self recursion is allowed
- IMP: removed the need to prefix
:and;with a space, e.g.IF X : TR.PULSE 1becomesIF X: TR.PULSE - IMP:
ANDandORnow work as boolean logic, rather than bitwise,XORis an alias forNE - FIX: divide by zero errors now explicitly return a 0 (e.g.
DIV 5 0now returns 0 instead of -1), previously the behaviour was undefined and would crash the simulator - FIX: numerous crashing bugs with text entry
- FIX: i2c bus crashes under high
Mtimes with external triggers - FIX:
P.IandPN.Ino longer set values longer than allowed - FIX:
VVworks correctly with negative values
- NEW: added Ansible remote commands
LV.CVandCY.CV - NEW: Added TELEX Modules Support for the TXi and the TXo
- NEW: 75 New Operators Across the Two Modules
- NEW: Supports all basic Teletype functions (add
TIandTOto the commands you already know) - NEW: Extended functionality allows for additional capabilities for existing functions
- NEW: Experimental input operators add capabilities such as input range mapping and quantization
- NEW: Experimental output operators add oscillators, envelopes, independent metronomes, pulse dividing, etc.
- NEW: Full List of Methods Found and Maintained Here
- NEW: Just Friends ops:
JF.GOD,JF.MODE,JF.NOTE,JF.RMODE,JF.RUN,JF.SHIFT,JF.TICK,JF.TR,JF.TUNE,JF.VOX,JF.VTR
- NEW: Ansible support added to ops:
CV,CV.OFF,CV.SET,CV.SLEW,STATE,TR,TR.POL,TR.PULSE,TR.TIME,TR.TOG - NEW:
P.RMwill also return the value removed - NEW:
ERop - IMP: a
TR.TIMEof 0 will disable the pulse - IMP:
O.DIRrenamed toO.INC, it's the value by whichOis incremented when it is accessed - IMP:
IF,ELIF,ELSEstatus is reset on each script run - IMP: key repeat now works for all keypresses
- FIX:
FLIPwon't interfere with the value ofO - FIX: the
Oop now returns it's set value before updating itself - FIX: the
DRUNKop now returns it's set value before updating itself - FIX:
P.STARTandP.ENDwere set to 1 when set with too large values, now are set to 63 - FIX:
CV.SLEWis correctly initialised to 1 for all outputs - FIX: several bugs where pattern length wasn't updated in track mode
- FIX: fixed
[and]not updating values in track mode
- NEW: USB flash drive read/write
- NEW:
SCRIPTop for scripted execution of other scripts! - NEW:
MUTEandUNMUTEops for disabling trigger input - NEW: hotkeys for
MUTEtoggle per input (meta-shift-number) - NEW: screen indication in live mode for
MUTEstatus - NEW:
SCALEop for scaling number from one range to another - NEW:
JIop just intonation helper - NEW:
STATEop to read current state of input triggers 1-8 (low/high = 0/1) - NEW: keypad executes scripts (works for standalone USB keypads and full-sized keyboards)
- NEW:
KILLop clears delays, stack, CV slews, pulses - NEW: hotkey meta+ESC executes
KILL - NEW:
ABSop absolute value, single argument - NEW:
FLIPop variable which changes state (0/1) on each read - NEW: logic ops:
AND,OR,XOR - NEW:
Oops:O.MIN,O.MAX,O.WRAP,O.DIRfor counter range control - NEW:
DRUNKops:DRUNK.MIN,DRUNK.MAX,DRUNK.WRAPfor range control - NEW:
TR.POLspecifies the polarity ofTR.PULSE - NEW: if powered down in tracker mode, will power up in tracker mode
- IMP:
TR.PULSEretrigger behaviour now predictable - IMP: mode switch keys more consistent (not constantly resetting to live mode)
- FIX: bug in command history in live mode
- FIX:
EXPop now exists - FIX:
PandPNparse error - FIX: possible crash on excess length line entry
- FIX:
CVwrapping with negativeCV.OFFvalues - FIX: INIT script executed now on keyboardless scene recall
- FIX:
Q.AVGoverflow no more - FIX:
P.PUSHwill fully fill a pattern - FIX:
CV.SETfollowed by slewed CV in one command works - FIX:
DEL 0no longer voids command
- Initial release