diff --git a/assets/disk0/tvdos/bin/taut.js b/assets/disk0/tvdos/bin/taut.js index 31163f1..d33d46b 100644 --- a/assets/disk0/tvdos/bin/taut.js +++ b/assets/disk0/tvdos/bin/taut.js @@ -19,6 +19,10 @@ const BULLET = "\u00847u" const VERT = "\u00B3" const TWOVERT = "\u00BA" +if (!_G.TAUT) _G.TAUT = {}; +if (!_G.TAUT.UI) _G.TAUT.UI = {}; +if (!_G.TAUT.UI.NEXTPANEL) _G.TAUT.UI.NEXTPANEL = undefined; + const sym = { /* accidentals */ accnull:"\u00A2\u00A3", @@ -850,44 +854,44 @@ function drawPatternView(style = timelineRowStyle) { function drawControlHint() { let hintElemTimeline = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], ['WER','View'], ['sep'], - ['Sp','Edit'], + ['sp','Edit'], ['sep'], ['n','Solo'], ['m','Mute'], ['sep'], - ['Tab','Panel'] + ['tab','Panel'] // ['sep'], // ['q','Quit'], ] let hintElemOrders = [ [`\u008428u\u008429u`,'Nav'], - [`Ent`,'Go to cue'], + [`ent`,'Go to cue'], ['sep'], - ['Sp','Edit'], + ['sp','Edit'], ['sep'], - ['Tab','Panel'], + ['tab','Panel'], // ['sep'], // ['q','Quit'], ] let hintElemPatterns = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Ptn'], + [`pg\u008418u`,'Ptn'], ['sep'], - ['Sp','Edit'], + ['sp','Edit'], ['sep'], - ['Tab','Panel'], + ['tab','Panel'], // ['sep'], // ['q','Quit'], ] let hintElemEditNoteValue = [ // only enabled in viewmode 'E' or in pattern editor [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], [`A${sym.doubledot}G`,'Note'], [`0${sym.doubledot}9`,'Oct'], @@ -903,15 +907,15 @@ function drawControlHint() { ] let hintElemEditInstValue = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], [`0${sym.doubledot}9 A${sym.doubledot}F`,'Instrument'], ['sep'], - ['Sp','ExitEdit'], + ['sp','ExitEdit'], ] let hintElemEditVolEff = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], ['h','Set'], ['j','SlideDn'], @@ -924,7 +928,7 @@ function drawControlHint() { ] let hintElemEditPanEff = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], ['h','Set'], ['j','SlideL'], @@ -937,19 +941,19 @@ function drawControlHint() { ] let hintElemEditFxSym = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], [`0${sym.doubledot}9 A${sym.doubledot}F`,`FxSym`], ['sep'], - ['Sp','ExitEdit'], + ['sp','ExitEdit'], ] let hintElemEditFxVal = [ [`\u008428u\u008429u`,'Nav'], - [`Pg\u008418u`,'Cue'], + [`pg\u008418u`,'Cue'], ['sep'], [`0${sym.doubledot}9 A${sym.doubledot}F`,`FxVal`], ['sep'], - ['Sp','ExitEdit'], + ['sp','ExitEdit'], ] const hintElemExternal = [['Tab','Panel']] @@ -2082,7 +2086,7 @@ const panelPatterns = new win.WindowObject(1, PTNVIEW_OFFSET_Y, SCRW, PTNVIEW_HE // External sub-program panels: drawContents launches the sub-program synchronously. // The sub-program draws rows 4+ and does NOT touch rows 1-3 (drawn by taut.js before launch). -// On exit, the sub-program sets _G.taut_nextPanel to request a tab switch. +// On exit, the sub-program sets _G.TAUT.UI.NEXTPANEL to request a tab switch. function makeExternalPanelDraw(progName) { return function(wo) { // stop any playback first @@ -2090,7 +2094,7 @@ function makeExternalPanelDraw(progName) { // update the top bar drawAlwaysOnElems() - _G.taut_nextPanel = undefined + _G.TAUT.UI.NEXTPANEL = undefined _G.shell.execute(`${progName} ${fullPathObj.full} ${currentPanel}`) } } @@ -2617,9 +2621,9 @@ while (!exitFlag) { if (pendingExternalDraw) { pendingExternalDraw = false redrawPanel() - while (_G.taut_nextPanel !== undefined && _G.taut_nextPanel !== null) { - currentPanel = _G.taut_nextPanel - _G.taut_nextPanel = undefined + while (_G.TAUT.UI.NEXTPANEL !== undefined && _G.TAUT.UI.NEXTPANEL !== null) { + currentPanel = _G.TAUT.UI.NEXTPANEL + _G.TAUT.UI.NEXTPANEL = undefined applyMuteTransition(currentPanel) if (isExternalPanel(currentPanel)) { con.clear(); drawAlwaysOnElems(); drawControlHint() diff --git a/assets/disk0/tvdos/bin/taut_fileop.js b/assets/disk0/tvdos/bin/taut_fileop.js index dae4bfc..f145155 100644 --- a/assets/disk0/tvdos/bin/taut_fileop.js +++ b/assets/disk0/tvdos/bin/taut_fileop.js @@ -4,7 +4,7 @@ * Rows 1-3 are owned by the parent; this program draws rows 4+. * * exec_args[1] = path to .taud file - * Sets _G.taut_nextPanel before returning to request a panel switch. + * Sets _G.TAUT.UI.NEXTPANEL before returning to request a panel switch. * * Created by minjaesong on 2026-04-27 */ @@ -65,7 +65,7 @@ while (!done) { if (!keyJustHit) return if (keysym === '') { - _G.taut_nextPanel = (MY_PANEL + (shiftDown ? -1 : 1) + PANEL_COUNT) % PANEL_COUNT + _G.TAUT.UI.NEXTPANEL = (MY_PANEL + (shiftDown ? -1 : 1) + PANEL_COUNT) % PANEL_COUNT done = true return } diff --git a/assets/disk0/tvdos/bin/taut_helpmsg.js b/assets/disk0/tvdos/bin/taut_helpmsg.js new file mode 100644 index 0000000..7d9c2b0 --- /dev/null +++ b/assets/disk0/tvdos/bin/taut_helpmsg.js @@ -0,0 +1,84 @@ +if (!_G.TAUT) _G.TAUT = {}; +let help = {} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +/* +Tags: + - print the text in emphasis colour (colVoiceHdr aka 230) + - centre the line. If the line spans multiple lines, centre each line + - align right + - align left +µtone; - replace with the brand string +&bul; - replace with bullet (\u00847u) +&ddot; - replace with double-dot (\u008419u) +&mdot; - replace with BIGDOT (\u00F9) +&updn; - up-down arrow (\u008418u) +&udlr; - four direction arrow (\u008428u\u008429u) +&keyoffsym; - pattern view key-off symbol (\u00A0\u00CD\u00CD\u00A1) +¬ecutsym; - pattern view note-cut symbol (\u00A4\u00A4\u00A4\u00A4) +  - nonbreakable space (only meaningful for typesetters) +­ - soft hyphen (only meaningful for typesetters) +default alignment: fully justified + */ + +help.notation = `CONTROL NOTATON + +µtone; shortcuts differentiate normal and shifted shortcuts. +&bul;a&ddot;z : alphabet without shift-in +&bul;A&ddot;Z : alphabet with shift-in +&bul;^ : control key` + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +help.jam = `NOTE JAMMING + +Push keys to play or insert notes. + w e   t y u i +a s d f g h j k` + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +help.common = `COMMON CONTROLS + +&bul;Y : play the entire song from the current cue +&bul;U : play the current cue then stop +&bul;I : play the current row +&bul;O : stop the playback +&bul;tab : switch forward a tab +&bul;TAB : switch backward a tab +&bul;q : close µtone;` + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +help.timeline = `TIMELINE VIEW + +Timeline has two distinct modes: view and edit mode. Two modes are toggled using the space bar. + +View mode +&bul;Note jamming : plays the note +&bul;&udlr; : move the viewing cursor by voices and rows +&bul;pg&updn; : go to previous/next cue +&bul;W&mdot;E&mdot;R : toggle timeline view mode. W-most detailed, R-most abridged +&bul;n : toggle soloing of the selected voice +&bul;m : toggle muting of the selected voice + +Edit mode +&bul;Note jammping : (note column) inserts the note +&bul;{&mdot;} : (note column) lower/raise a note by one octave (or period) +&bul;[&mdot;] : (note column) lower/raise a note by one unit +&bul;= : (note column) insert a key-off &keyoffsym; +&bul;^ : (note column) insert a note-cut ¬ecutsym; +&bul;. : remove a symbol on the selected column +&bul;bksp : delete one character on the selected column +&bul;0&ddot;9 a&ddot;f : inserts a (hexa)decimal number +&bul;^&mdot;v : (volume column) slide up/down +&bul;<&mdot;> : (panning column) slide left/right +&bul;-&mdot;= : (vol/pan col) fine slide down/up +&bul;&udlr; : move the viewing cursor by columns and rows +&bul;pg&updn; : go to previous/next cue` + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +if (!_G.TAUT.HELPMSG) _G.TAUT.HELPMSG=help; + diff --git a/assets/disk0/tvdos/bin/taut_instredit.js b/assets/disk0/tvdos/bin/taut_instredit.js index c2ac231..0334da0 100644 --- a/assets/disk0/tvdos/bin/taut_instredit.js +++ b/assets/disk0/tvdos/bin/taut_instredit.js @@ -4,7 +4,7 @@ * Rows 1-3 are owned by the parent; this program draws rows 4+. * * exec_args[1] = path to .taud file - * Sets _G.taut_nextPanel before returning to request a panel switch. + * Sets _G.TAUT.UI.NEXTPANEL before returning to request a panel switch. * * Created by minjaesong on 2026-04-27 */ @@ -65,7 +65,7 @@ while (!done) { if (!keyJustHit) return if (keysym === '') { - _G.taut_nextPanel = (MY_PANEL + (shiftDown ? -1 : 1) + PANEL_COUNT) % PANEL_COUNT + _G.TAUT.UI.NEXTPANEL = (MY_PANEL + (shiftDown ? -1 : 1) + PANEL_COUNT) % PANEL_COUNT done = true return } diff --git a/assets/disk0/tvdos/bin/taut_sampleedit.js b/assets/disk0/tvdos/bin/taut_sampleedit.js index b14cd69..b4a2cd0 100644 --- a/assets/disk0/tvdos/bin/taut_sampleedit.js +++ b/assets/disk0/tvdos/bin/taut_sampleedit.js @@ -4,7 +4,7 @@ * Rows 1-3 are owned by the parent; this program draws rows 4+. * * exec_args[1] = path to .taud file - * Sets _G.taut_nextPanel before returning to request a panel switch. + * Sets _G.TAUT.UI.NEXTPANEL before returning to request a panel switch. * * Created by minjaesong on 2026-04-27 */ @@ -65,7 +65,7 @@ while (!done) { if (!keyJustHit) return if (keysym === '') { - _G.taut_nextPanel = (MY_PANEL + (shiftDown ? -1 : 1) + PANEL_COUNT) % PANEL_COUNT + _G.TAUT.UI.NEXTPANEL = (MY_PANEL + (shiftDown ? -1 : 1) + PANEL_COUNT) % PANEL_COUNT done = true return }