Commit Graph

74 Commits

Author SHA1 Message Date
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