Skip to content
Compare
Choose a tag to compare
@strangewarp strangewarp released this 29 Jan 01:16

1.1

  • New features:
    -- Added "Multiply Ticks", which multiplies the number of ticks in the sequence by (duration / spacing).
    -- Added "Home" command, which returns the tick-pointer to the top of the sequence.
    -- Added "Opposite" command, which sends the tick-pointer to the opposite side of the sequence.
    -- Added "Saveload mode", which allows the user to enter a filename or directory-name, and perform save/load/directory-change commands in a dedicated panel.
    -- Added "CMD mode", where a sequence's non-NOTE commands are held and modified.
    -- Added "Factor" commands, which toggle highlighting of factor-ticks within the current beat-value, with TPQ*4 as its default setting.
    -- Added an "Entry-Quantize" toggle, which makes incoming notes and cmds stick to the nearest Factor-Display-tick.
    -- Added "Quantize" command, which snaps all selected notes in the active sequence to ticks that are multiples of D.spacing.
    -- Added "Text Paste" command, which uses love.system.setClipboardText to convert copied text into MIDI notes.
    -- Added "Select Chan" command, a version of Select-All that only applies to notes in the active seq's active channel.
    -- Added Cmd Mode versions of various editor commands.
    -- Added full MIDI-IN, for composition via external MIDI devices. Due to how Spacing and Play Mode interact with note-entry, there doesn't need to be any explicit tabbing between input-types.
    -- Created a two-way MIDI-over-UDP communications system, designed to send MIDI between Sect and user devices, via SectMidiClient.
  • GUI changes:
    -- Refactored GUI rendering pathway to reduce CPU usage.
    -- Changed Play Mode so that the GUI will only update when a given frame's ticks intersect with a user-defined Factor-tick. Additionally, when Play Mode is untoggled, the tick-pointer will snap back to the previous Factor-tick.
    -- Started clipping off the right edge of long hotseat-filenames, to prevent intrusion into sequence-panel.
    -- Started rendering notes on non-active channels in reverse channel order, with highest channels underneath, and lowest channels on top. Active channel's notes are rendered on top of that.
    -- Started showing the active sequence's Cmd Mode commands as Shadow Mode notes, with unique coloration, when Cmd Mode isn't active; and also when a sequence with non-NOTE commands is a Shadow Mode sequence.
    -- Changed how Shadow Mode is applied to a sequence's NOTE commands while Cmd Mode is active.
    -- Added a visual confirmation on file-save.
    -- Started rendering a shadow under every note's channel-number.
    -- Started clipping the left edges of beat-triangles properly, now that Cmd Mode's GUI visually requires it.
    -- Compensated for a stray vertical grey line off the bottom edge of the piano-roll that would disappear in Cmd Mode.
    -- Fixed the piano-roll's connection to the Reticule's user-defined Y-anchor position.
    -- Started accepting repeated commands from held-down keys.
    -- Now allow multiple computer-keyboard keys to be pressed simultaneously, so that example-chords can be sent across UDP to external MIDI devices.
    -- Started removing all active keystrokes on focus-change.
    -- Changed the rendering properties of the notes within a sequence's non-active channels, both in their default state and while selected.
  • Logic changes:
    -- Fixed deselection of notes on note-move.
    -- Fixed a nasty bug in removeSequence that was incurred by changes in modNotes. Also added setTicks and removed several outdated functions in the process.
    -- Decoupled modSelectedNotes commands from spacing. They now stick to beat-factor horizontally, and have 1-and-12-spaced variants vertically.
    -- Stopped keyboard-notes from incurring new undo-blocks when not in Record Mode.
    -- addActiveSequence now adds a sequence directly after the active-sequence pointer, instead of shifting the sequence already there.
    -- Started modifying hotseats-list based on recent save/load activity.
    -- On hotseat-ordering-change, the active hotseat will revert to the first hotseat in the list, to stay aligned with the previously accessed file.
    -- Made hotseat-toggling and loadFile commands available when no sequences are loaded.
    -- Changed all modNotes/modCmds calls to use a "multiply" value, as some calls need to multiply the shift-value by D.spacing, while others don't.
    -- Refactored data-structures so that tick tables themselves are also sparse; and added a "total" variable to each seq table to keep track of how many ticks are in a sequence.
    -- Wrote buildTable, getIndex, getContents, seqUnsetCascade, and copyUnsetCascade, which manipulate strictly-defined sparse tables within the new data-structure-space. This allows notes to be stored explicitly, rather than in unordered tables; and yet also prevents said storage from incurring massive lag.
    -- Converted all manipulations within the space of "D.seq[n].tick" to use the new functions in index-funcs.lua, rather than touching the tables directly.
    -- Changed data-structures to be in the format of "D.seq[a].tick[b].note[c][d]", "D.seq[a].tick[b].cmd[c]", "D.seldat[a][b][c]", and "D.copydat[a][b][c]".
    -- Simplified and debugged all copypaste commands.
    -- Bounded Generator Mode scale-size and wheel-size to 7 (used to be 8), to make active data tables more sane.
    -- Changed Play Mode behavior, to repeat the contents of smaller sequences across larger sequences.
    -- Removed moveNotes, and rewrote modNotes to make more sense.
    -- Fixed an old function-call inside of removeTicks that was likely causing buggy behavior in certain situations.
    -- Fixed a potentially fatal bug in the interaction of deleteBeatNotes and getNotes.
    -- normalizePointers will now halt Play Mode if all sequences are deleted.
    -- Added a "funcgate" mechanism to executeFunction, so that undo commands stay functional during the proper times, due to changes incurred by its command-blocking mechanism.
    -- Modified executeFunction to start blocking commands that try to access or modify the D.seq table, whenever D.active is false. Also removed more primitive versions of this functionality from some individual commands.
    -- Changed all data-structures and data-handling involved with mode-based interpretation of key-commands.
    -- Removed old OSC and Extrovert-API code, which was clunky and extraneous.
    -- Changed all note-deletion commands to only act upon notes of the currently active channel.
    -- Changed some note-functions so they won't overwrite notes that sit on different channels within the same sequence, when they share pitch values.
    -- Changed shiftInternalValue so that values multiplied by numbers less than 1 will be floored, rather than rounded. This will allow for easier reduction of Spacing to 0.
    -- Started locally keeping track of userprefs' version number, and added a mechanism to update old userprefs versions.
    -- Changed the name of global variable "data" to "D".