Commit Graph

43 Commits

Author SHA1 Message Date
5684185+vsariola@users.noreply.github.com
86ca3fb300 refactor(tracker): group Model methods, with each group in one source file 2026-01-27 22:16:14 +02:00
5684185+vsariola@users.noreply.github.com
1693d7ed5e refactor(tracker): make Model methods return List, avoiding .List() 2026-01-23 22:42:25 +02:00
5684185+vsariola@users.noreply.github.com
05b64dadc8 fix(tracker/gioui): unit comment editor flashing while cursor moved 2025-11-02 16:20:30 +02:00
5684185+vsariola@users.noreply.github.com
6978dd4afe refactor(tracker/gioui): remove unused function parameters 2025-11-02 16:18:24 +02:00
5684185+vsariola@users.noreply.github.com
fa9654d311 refactor(tracker/gioui): Surface is given relative Height, not Gray 2025-11-02 15:52:51 +02:00
5684185+vsariola@users.noreply.github.com
3495d91a4a refactor(tracker/gioui): remove addUnitAction from InstrumentEditor 2025-11-02 15:51:23 +02:00
5684185+vsariola@users.noreply.github.com
da6226d3ff feat(tracker/gioui): unit comment in the rack is editable 2025-11-01 00:37:25 +02:00
5684185+vsariola@users.noreply.github.com
91c9701f14 refactor(tracker/gioui): combine UnitList & UnitEditor structs 2025-10-31 21:57:17 +02:00
5684185+vsariola@users.noreply.github.com
2336a135c6 feat(tracker): add a preset explorer with search and filters
Closes #91
2025-10-19 12:04:41 +03:00
5684185+vsariola@users.noreply.github.com
08c36ed462 feat(tracker/gioui): new tab order logic and refactor instrument editor 2025-06-25 16:32:56 +03:00
5684185+vsariola@users.noreply.github.com
58f6cceb9a refactor(tracker/gioui): Menu binds to Model during Layout 2025-06-24 18:39:40 +03:00
5684185+vsariola@users.noreply.github.com
b79de95f91 refactor(tracker/gioui): remove unnecessary caching of Strings 2025-06-24 11:07:42 +03:00
5684185+vsariola@users.noreply.github.com
31007515b5 refactor(tracker/gioui): avoid heap escapes in NumericUpDown 2025-06-23 09:43:10 +03:00
5684185+vsariola@users.noreply.github.com
db2ccf977d refactor(tracker/gioui): rewrote Button(s) to bind to Model during layout
The old mechanism made it difficult to follow exactly what happens
when a button was clicked, because the Action/Bool that gets
executed / toggled was declared ages ago, in the constructor. In the
new mechanism, the Action / Bool is bound to the button at the last
minute, right before Layout. ActionButton, ToggleButton,
ActionIconButton and ToggleIconButton were done to avoid heap
escapes: if the corresponding functions woudl've returned
layout.Widget, a heap allocation would've been needed.
2025-06-23 08:56:37 +03:00
5684185+vsariola@users.noreply.github.com
0ea20ea5bf refactor(tracker/gioui): use enums (iota) for EditorEvent 2025-06-21 12:04:08 +03:00
5684185+vsariola@users.noreply.github.com
beef8fe1e0 refactor(tracker/gioui): bind tracker.Int to NumericUpDown on Layout 2025-06-21 11:45:31 +03:00
5684185+vsariola@users.noreply.github.com
3881b8eb22 fix(tracker/gioui): if user clears unit search box, set unit to "" 2025-06-20 19:10:10 +03:00
5684185+vsariola@users.noreply.github.com
b291959a97 refactor(tracker/gioui): rewrote Editor to link to String.Value() 2025-06-20 18:50:44 +03:00
5684185+vsariola@users.noreply.github.com
1eea263dc9 fix(tracker/gioui): show muted instruments in different style 2025-06-16 18:35:06 +03:00
5684185+vsariola@users.noreply.github.com
283fbc1171 feat(tracker): rework the MIDI input and note event handling 2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
d20a23d57b refactor(tracker/gioui): move element etc. functions away from style
Now the element / fg / bg functions are passed to the actual Layout
function, not first put to the style. This avoids moving of the
element function to heap.
2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
de2e64533d refactor(tracker): refactor StringData to StringValue 2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
fb3a0da3ed refactor(tracker): make Bool have separate BoolValue and Enabler 2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
036cb1f34d refactor(tracker): Make Action have separate Doer and Enabler 2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
afb1fee4ed feat(tracker/gioui): add theme.yml which contains all styling 2025-05-20 19:02:16 +03:00
5684185+vsariola@users.noreply.github.com
42c95ab8ee feat(tracker/gioui): rework the labels of numeric updowns 2025-04-27 09:07:46 +03:00
qm210
639b2266e3 feat: focus search editor after "add unit" 2024-11-10 00:02:13 +02:00
5684185+vsariola@users.noreply.github.com
216cde2365 feat: keeping instruments and tracks linked & splitting them
Also includes a refactoring of the List: all methods that accepted
or returned a [from, to] range now return a Range, which is
non-inclusive i.e. [start,end).

Also the assignUnitIds was slightly refactored & a new function
called assignUnitIdsForPatch was added, to assign all unit IDs for
an patch at once.

Closes #157, #163.
2024-10-20 12:23:25 +03:00
5684185+vsariola@users.noreply.github.com
1c42a51cc6 refactor(tracker): use built-in min & max instead of intMin & intMax 2024-10-18 23:43:27 +03:00
5684185+vsariola@users.noreply.github.com
063b2c29c5 feat: add mute and solo toggles for instruments
Closes #168
2024-10-16 00:44:34 +03:00
5684185+vsariola@users.noreply.github.com
5099c61705 chore: fix linter problems in work space (remove unuseds etc.) 2024-10-15 09:18:41 +03:00
5684185+vsariola@users.noreply.github.com
b494a69a76 refactor(tracker): change Iterate() func(yield):s to Iterate(yield) 2024-10-15 09:09:17 +03:00
5684185+vsariola@users.noreply.github.com
97e59c5650 refactor(tracker): use go v1.23 style iterators throughout 2024-10-15 00:01:02 +03:00
5684185+vsariola@users.noreply.github.com
2b7ce39069 refactor(tracker/gioui): give Editor Text / SetText methods 2024-10-14 23:36:32 +03:00
5684185+vsariola@users.noreply.github.com
03c994e4da refactor(tracker/gioui): wrap Editor to include common key.Filters 2024-10-14 23:12:58 +03:00
5684185+vsariola@users.noreply.github.com
9779beee99 feat: units can have comments
Closes #114
2024-10-13 23:02:13 +03:00
5684185+vsariola@users.noreply.github.com
a6bb5c2afc feat(tracker): make keybindings user configurable
Closes #94, closes #151.
2024-10-12 21:08:30 +03:00
5684185+vsariola@users.noreply.github.com
b4a63ce362 feat(tracker/gioui): label identifying instrument MIDI channel
Closes #154.
2024-10-11 12:16:40 +03:00
5684185+vsariola@users.noreply.github.com
6fc9277113 fix(tracker): unit search gains focus when adding a unit on last row 2024-09-07 21:29:37 +03:00
5684185+vsariola@users.noreply.github.com
1c020fffa3 refactor(gioui): update gioui to v0.5.0 2024-03-01 22:11:44 +02:00
5684185+vsariola@users.noreply.github.com
17312bbe4e feat: add ability to disable units temporarily
Quite often the user wants to experiment what particular unit(s) add
to the sound. This commit adds ability to disable any set of units
temporarily, without actually deleting them. Ctrl-D disables and
re-enables the units. Disabled units are considered non-existent in
the patch.

Closes #116.
2024-02-19 21:36:14 +02:00
5684185+vsariola@users.noreply.github.com
2b3f6d8200 fix(tracker): unit searching to work more reliably 2024-02-17 20:54:46 +02:00
5684185+vsariola@users.noreply.github.com
d92426a100 feat!: rewrote the GUI and model for better testability
The Model was getting unmaintanable mess. This is an attempt to refactor/rewrite the Model so that data of certain type is exposed in standardized way, offering certain standard manipulations for that data type, and on the GUI side, certain standard widgets to tied to that data.

This rewrite closes #72, #106 and #120.
2024-02-17 18:16:06 +02:00