fb0fa4af92
feat: embed license in executable and add menu item to show it
2025-06-23 18:45:13 +03:00
6f1db6b392
fix(tracker/gioui): make own TipArea ensuring tips don't stay around
...
Closes #141 .
2025-06-23 18:02:05 +03:00
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
289bfb0605
refactor: fix all unused parameter / variable warnings
2025-06-21 10:33:08 +03:00
602b3b05cc
feat(tracker): compile with midi support only when CGO is available
...
Also add the midi context to the VSTI, so VSTI can use MIDI if they
wish so.
2025-06-20 19:38:06 +03:00
3881b8eb22
fix(tracker/gioui): if user clears unit search box, set unit to ""
2025-06-20 19:10:10 +03:00
4fa0e04788
refactor(tracker/gioui): make iconCache part of Theme
2025-06-20 19:05:40 +03:00
b291959a97
refactor(tracker/gioui): rewrote Editor to link to String.Value()
2025-06-20 18:50:44 +03:00
840fe3ef0e
refactor(tracker): remove SetCursorFloat method from TableData
2025-06-20 15:17:21 +03:00
430b01d143
refactor(tracker): remove unused code and improve style
2025-06-20 15:05:22 +03:00
28a0006b6a
docs(tracker): improve comments and formatting
2025-06-20 14:57:12 +03:00
8eb5f17f73
style(tracker): oneline functions and remove spurious comments
2025-06-20 14:52:46 +03:00
f47bee37b0
style(tracker): clean up Alerts Push and Pop
2025-06-20 14:49:07 +03:00
4f2c73d0db
refactor(tracker): Player sends PlayerStatus to the Model
2025-06-19 11:37:11 +03:00
340620ed49
feat(tracker): show CPU load percentage in the song panel
2025-06-17 17:59:54 +03:00
c6b70560f6
fix(tracker): update derived data after undo/redo
2025-06-16 18:44:33 +03:00
1eea263dc9
fix(tracker/gioui): show muted instruments in different style
2025-06-16 18:35:06 +03:00
c023dc08b8
fix(tracker/gioui): BPM tooltip showed "Song length", not BPM
2025-06-11 19:43:05 +03:00
0e32608872
refactor(tracker): remove unnecessary Enabled function
2025-06-11 19:41:58 +03:00
283fbc1171
feat(tracker): rework the MIDI input and note event handling
2025-06-11 19:14:11 +03:00
7ef868a434
refactor(tracker): rewrite params to avoid heap allocations
2025-06-11 19:14:11 +03:00
4f779edb88
perf(tracker/gioui): avoid heap escapes in the menubar
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
74f37318d6
refactor(tracker): refactor IntData to IntValue, following Bool example
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
32f1e1baea
refactor(tracker/gioui): unify default & user config yaml handling
2025-05-23 23:35:51 +03:00
5b260d19f5
refactor(tracker/gioui): rename keyevent.go to keybindings.go
...
This way all the .go files that embed .yml files have matching
file names.
2025-05-23 21:46:34 +03:00
ddbaf6a4bb
refactor(tracker): use UnmarshalStrict when decoding embedded yamls
...
Since we have 100% control over what data gets embedded, there is no
reason to embed anything that doesn't pass the strict yaml parsing
and it's better we throw a panic right away so it's easy to catch
this during development.
2025-05-23 21:44:23 +03:00
448bc9f236
fix(tracker): OOB checks used index > len, but should've used >=
2025-05-20 19:05:17 +03:00
afb1fee4ed
feat(tracker/gioui): add theme.yml which contains all styling
2025-05-20 19:02:16 +03:00
8245fbda24
feat(track/gioui): ctrl + scrollwheel adjusts global GUI zoom
...
Closes #153
2025-05-01 19:16:39 +03:00
0f42a993dc
feat(tracker/gioui): oscilloscope allows y-scaling and shows limits
...
Closes #61
2025-05-01 12:05:32 +03:00
554a840982
refactor(tracker): new closing mechanism logic
2025-05-01 10:20:41 +03:00
9f89c37956
refactor(tracker): rename trySend to TrySend to make it public
2025-04-30 22:00:34 +03:00
0199658025
style(tracker): use for range loops everywhere in detector.go
2025-04-30 16:24:48 +03:00
3623bdf5b2
refactor(tracker): bake 1 kHz gain offset into filter coeffs
2025-04-29 20:45:14 +03:00
fe9daf7988
fix(tracker): loudness A- and C-weighting did not have proper scale
2025-04-29 15:12:57 +03:00
bf0d697b80
fix(tracker): reset also biquad filter states to avoid endless nans
2025-04-28 15:23:00 +03:00
5fd78d8362
feat(tracker): buttons for loudness weighting and peak oversampling
...
Closes #186
2025-04-27 21:30:10 +03:00
805b98524c
fix(tracker/gioui): use Clickables instead of widget.Clickables
2025-04-27 20:24:40 +03:00
54176cc2b3
refactor(tracker/gioui): separate MenuBar from SongPanel
2025-04-27 20:16:35 +03:00
845f0119c8
fix(tracker): peak amplitude dBs should be 20*log10, not 10*log10
2025-04-27 19:55:25 +03:00
5a3c859a51
fix(tracker): also peak detector windows were in wrong order
2025-04-27 19:29:23 +03:00
5c0b86a0f0
fix(tracker): the peak detector result was in wrong layout
2025-04-27 14:13:31 +03:00
e0392323c0
feat(tracker/gioui): add expander panel showing peaks
2025-04-27 14:13:31 +03:00