Commit Graph

31 Commits

Author SHA1 Message Date
31007515b5 refactor(tracker/gioui): avoid heap escapes in NumericUpDown 2025-06-23 09:43:10 +03:00
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
0ea20ea5bf refactor(tracker/gioui): use enums (iota) for EditorEvent 2025-06-21 12:04:08 +03:00
beef8fe1e0 refactor(tracker/gioui): bind tracker.Int to NumericUpDown on Layout 2025-06-21 11:45:31 +03:00
3881b8eb22 fix(tracker/gioui): if user clears unit search box, set unit to "" 2025-06-20 19:10:10 +03:00
b291959a97 refactor(tracker/gioui): rewrote Editor to link to String.Value() 2025-06-20 18:50:44 +03:00
1eea263dc9 fix(tracker/gioui): show muted instruments in different style 2025-06-16 18:35:06 +03:00
283fbc1171 feat(tracker): rework the MIDI input and note event handling 2025-06-11 19:14:11 +03:00
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
de2e64533d refactor(tracker): refactor StringData to StringValue 2025-06-11 19:14:11 +03:00
fb3a0da3ed refactor(tracker): make Bool have separate BoolValue and Enabler 2025-06-11 19:14:11 +03:00
036cb1f34d refactor(tracker): Make Action have separate Doer and Enabler 2025-06-11 19:14:11 +03:00
afb1fee4ed feat(tracker/gioui): add theme.yml which contains all styling 2025-05-20 19:02:16 +03:00
42c95ab8ee feat(tracker/gioui): rework the labels of numeric updowns 2025-04-27 09:07:46 +03:00
639b2266e3 feat: focus search editor after "add unit" 2024-11-10 00:02:13 +02:00
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
1c42a51cc6 refactor(tracker): use built-in min & max instead of intMin & intMax 2024-10-18 23:43:27 +03:00
063b2c29c5 feat: add mute and solo toggles for instruments
Closes #168
2024-10-16 00:44:34 +03:00
5099c61705 chore: fix linter problems in work space (remove unuseds etc.) 2024-10-15 09:18:41 +03:00
b494a69a76 refactor(tracker): change Iterate() func(yield):s to Iterate(yield) 2024-10-15 09:09:17 +03:00
97e59c5650 refactor(tracker): use go v1.23 style iterators throughout 2024-10-15 00:01:02 +03:00
2b7ce39069 refactor(tracker/gioui): give Editor Text / SetText methods 2024-10-14 23:36:32 +03:00
03c994e4da refactor(tracker/gioui): wrap Editor to include common key.Filters 2024-10-14 23:12:58 +03:00
9779beee99 feat: units can have comments
Closes #114
2024-10-13 23:02:13 +03:00
a6bb5c2afc feat(tracker): make keybindings user configurable
Closes #94, closes #151.
2024-10-12 21:08:30 +03:00
b4a63ce362 feat(tracker/gioui): label identifying instrument MIDI channel
Closes #154.
2024-10-11 12:16:40 +03:00
6fc9277113 fix(tracker): unit search gains focus when adding a unit on last row 2024-09-07 21:29:37 +03:00
1c020fffa3 refactor(gioui): update gioui to v0.5.0 2024-03-01 22:11:44 +02:00
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
2b3f6d8200 fix(tracker): unit searching to work more reliably 2024-02-17 20:54:46 +02:00
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