5684185+vsariola@users.noreply.github.com
c52c074aa1
feat(tracker): show * next to the file path to indicate unsaved changes
...
Related to #224 .
2026-03-06 15:01:30 +02:00
5684185+vsariola@users.noreply.github.com
77b27257fe
fix(tracker): Player routes MIDImsgs so always handled in same block
2026-02-03 21:20:01 +02:00
5684185+vsariola@users.noreply.github.com
f2ef57a845
feat(tracker): ability to bind MIDI controllers to parameters
...
Closes #152
2026-02-01 12:07:00 +02:00
5684185+vsariola@users.noreply.github.com
4bb5df9c87
feat(tracker): enum-style values and menus to choose one option
2026-01-31 13:57:09 +02:00
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
60222dded4
refactor(tracker): Enabler is optionally implemented when needed
2026-01-21 19:53:24 +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
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
55f9c36bd5
feat(tracker/gioui): show file explorer error messages to user
2025-09-27 21:06:26 +03:00
5684185+vsariola@users.noreply.github.com
3163f46447
feat!: both native & Go synths are included in the same executables
...
Closes #200
2025-07-10 17:46:00 +03:00
5684185+vsariola@users.noreply.github.com
d78ef98e73
refactor(tracker/gioui): upgrade gio & store Tracker to gtx.Values
2025-06-25 18:54:00 +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
e59fbb50cf
refactor(tracker/gioui): separate SplitStyle from SplitState
2025-06-24 20:39:27 +03:00
5684185+vsariola@users.noreply.github.com
18d198d764
refactor(tracker/gioui): bind Alerts to Model during Layout
2025-06-24 19:59:31 +03:00
5684185+vsariola@users.noreply.github.com
33f7b5fb6a
refactor(tracker/gioui): Dialog binds to Model during Layout
2025-06-24 10:15:46 +03:00
5684185+vsariola@users.noreply.github.com
5f43bc3067
feat(tracker/gioui): "Ask Help", "Report Bug" and "Manual" menuitems
2025-06-23 19:17:00 +03:00
5684185+vsariola@users.noreply.github.com
fb0fa4af92
feat: embed license in executable and add menu item to show it
2025-06-23 18:45:13 +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
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
289bfb0605
refactor: fix all unused parameter / variable warnings
2025-06-21 10:33:08 +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
de2e64533d
refactor(tracker): refactor StringData to StringValue
2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
74f37318d6
refactor(tracker): refactor IntData to IntValue, following Bool example
2025-06-11 19:14:11 +03:00
5684185+vsariola@users.noreply.github.com
32f1e1baea
refactor(tracker/gioui): unify default & user config yaml handling
2025-05-23 23:35:51 +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
8245fbda24
feat(track/gioui): ctrl + scrollwheel adjusts global GUI zoom
...
Closes #153
2025-05-01 19:16:39 +03:00
5684185+vsariola@users.noreply.github.com
554a840982
refactor(tracker): new closing mechanism logic
2025-05-01 10:20:41 +03:00
5684185+vsariola@users.noreply.github.com
40be82de46
feat(tracker/gioui): refactor & rework playbar with the play buttons
2025-04-27 11:34:00 +03:00
5684185+vsariola@users.noreply.github.com
bdf9e2ba0c
feat(tracker/gioui): UI splitter bars snap better to window edges
2025-04-26 01:48:42 +03:00
qm210
7ff3c942cb
feat(tracker/gioui): preferences.yml for window size or maximized ( #185 )
2024-12-07 13:54:08 +02:00
5684185+vsariola@users.noreply.github.com
37769fcc9c
refactor(tracker): get rid of execChan, use broker.ToModel instead
2024-11-02 23:44:52 +02:00
5684185+vsariola@users.noreply.github.com
94058c2603
fix(tracker): do not close Broker but rather just close the detector
2024-11-02 20:45:10 +02:00
5684185+vsariola@users.noreply.github.com
b73fc0b95b
refactor(tracker): use the Broker to communicate when exporting wav
2024-11-02 20:08:48 +02:00
5684185+vsariola@users.noreply.github.com
ec222bd67d
feat(tracker): oscilloscope and LUFS / true peak detection
...
In addition to the oscilloscope and loudness/peak detections, this
commit refactors all the channels between components (i.e.
ModelMessages and PlayerMessages) etc. into a new class Broker. This
was done because now we have one more goroutine running: a Detector,
where the loudness / true peak detection is done in another thread.
The different threads/components are only aware of the Broker and
communicate through it. Currently, it's just a collection of
channels, so it's many-to-one communication, but in the future,
we could change Broker to have many-to-one-to-many communication.
Related to #61
2024-11-02 15:08:09 +02:00
qm210
8dfadacafe
feat: midi note input for the tracker
2024-10-22 07:56:36 +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
4c096a3fac
refactor(tracker): rename Notetracking to Follow
...
Notetracking was used in two completely different meanings: the
pitch/bpm notetracking in the delay unit and the cursor follow in
when playing. The word for the second meaning was changed to Follow,
to avoid confusion.
2024-10-12 21:35:45 +03:00
5684185+vsariola@users.noreply.github.com
773655ef9c
fix(tracker/gioui): avoid deadlock while changing window title
2024-10-11 16:08:55 +03:00
5684185+vsariola@users.noreply.github.com
bf5579a2d2
build: upgrade to latest gioui
2024-10-05 12:34:02 +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
dc12f58082
feat(tracker): add ability to loop part of song during playback
...
Closes #128 .
2024-02-20 19:10:15 +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
5684185+vsariola@users.noreply.github.com
a38a0f4235
fix(tracker/gioui): text.Shaper should not be a global variable
...
text.Shaper is not thread safe, which caused crash when adding
multiple VSTI plugins to a DAW project. This change fixes that
crash. Further refactorings need to consider where that text.Shaper
should actually reside.
2023-10-22 19:10:24 +03:00
5684185+vsariola@users.noreply.github.com
a60814bab7
refactor(tracker): make struct to hold all per voice data in Player
2023-10-20 01:26:41 +03:00
5684185+vsariola@users.noreply.github.com
453f45c48a
refactor(tracker): rename SongPoint to ScorePoint etc.
2023-10-19 22:28:44 +03:00
5684185+vsariola@users.noreply.github.com
50ccfe03da
refactor(tracker): split Volume to PeakVolume and AverageVolume
2023-10-19 22:28:44 +03:00
5684185+vsariola@users.noreply.github.com
0a67129a0c
refactor!: rename SynthService to Synther and related types
...
The -er suffix is more idiomatic for single method interfaces, and
the interface is not doing much more than converting the patch to a
synth. Names were updated throughout the project to reflect this
change. In particular, the "Service" in SynthService was not telling
anything helpful.
2023-10-18 17:32:13 +03:00
5684185+vsariola@users.noreply.github.com
462faf5f4e
feat: save recovery data to disk and/or DAW project
2023-10-17 10:26:36 +03:00