Commit Graph

314 Commits

Author SHA1 Message Date
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
76322bb541 fix(tracker): the scope length is in beats, not in rows
Already the oscilloscope calculated its length in beats, but
everywhere the variable was called "lengthInRows." Renamed the
variable to lengthInBeats and also changed the tooltip to be correct
2024-11-02 23:13:48 +02:00
5684185+vsariola@users.noreply.github.com
65a7f060ec feat(tracker/gioui): make buttons never have focus
The exception to the rule is the dialog buttons (which use still
the default material buttons), because when there is a modal dialog
on screen, there is not much else the user would want to do.

Fixes #156
2024-11-02 22:57:09 +02:00
qm210
b08f5d4b1e
fix: make the buttons non-responsive to the spacebar 2024-11-02 22:14:50 +02:00
5684185+vsariola@users.noreply.github.com
9d59cfb3b6 fix(tracker): unmarshal always into fresh, empty structs
A somewhat gotcha: when unmarshaling into &m.d with json.Unmarshal
or yaml.Unmarshal, maps were "merged" with the existing maps, which
is how we ended up with send units with color parameters, among
other things. This fix always unmarshals into fresh var data
modelData and only then sets m.d = data if the unmarshaling was
succesful.
2024-11-02 22:01:12 +02:00
5684185+vsariola@users.noreply.github.com
19661f90ea feat(tracker/gioui): move panic button to the right of MIDI menu 2024-11-02 21:22:40 +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
ee3ab3bf86 feat(tracker): try to honor MIDI message timestamps 2024-11-02 19:55:40 +02:00
5684185+vsariola@users.noreply.github.com
2aa0aaee0c refactor: AudioSource is a func instead of single function interface
This avoids defining Processor altogether.
2024-11-02 19:50:20 +02:00
5684185+vsariola@users.noreply.github.com
3eb4d86d52 style(tracker/gioui): remove old commented code 2024-11-02 17:00:56 +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
5684185+vsariola@users.noreply.github.com
daf7fb1519 feat(tracker/gioui): user-defined keybindings.yml override defaults
The behaviour of the user-defined keybindings.yml was changed.
It now documents just the changes from the default keybindings.
An empty line with no action means "unbind the key".
2024-10-28 10:04:13 +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
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
025f8832d9 fix(tracker): adding order row moved cursor incorrectly 2024-10-19 00:00:29 +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
0ba6557f65 fix(tracker/presets): kick-adam.yml had some invalid parameters 2024-10-18 23:40:21 +03:00
5684185+vsariola@users.noreply.github.com
3306c431c3 refactor(tracker): use List.DeleteElements to delete tracks/instrs 2024-10-16 13:44:50 +03:00
5684185+vsariola@users.noreply.github.com
63c08d53fe feat(tracker): solo and mute can toggle multiple instruments 2024-10-16 01:09:28 +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
00b8e1872a feat(tracker/gioui): using mouse to select rectangles in tables 2024-10-15 13:24:14 +03:00
5684185+vsariola@users.noreply.github.com
04ca0a3f6e fix(tracker/gioui): changing a hex played the previous value 2024-10-15 13:08:02 +03:00
5684185+vsariola@users.noreply.github.com
08386323ed fix(tracker/gioui): all key filters for hexadecimals in note editor 2024-10-15 12:56:10 +03:00
5684185+vsariola@users.noreply.github.com
7470413ad8 fix(tracker): click on hex track low/high nibble selects that nibble
Closes #160
2024-10-15 09:37:21 +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
3986bbede7 fix(tracker/gomidi): consume all available midi.Messages 2024-10-15 00:25:07 +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
cd88ea0680 test(tracker): fix FuzzModel: NullContext implements MIDIContext 2024-10-14 17:25:56 +03:00
5684185+vsariola@users.noreply.github.com
2809526de6 refactor(tracker): ask for midiContext in the model constructor 2024-10-14 17:03:17 +03:00
5684185+vsariola@users.noreply.github.com
f427eca1f4 fix(sointu-vsti): VST crashed due to Model.MIDI being nil 2024-10-14 16:57:21 +03:00
5684185+vsariola@users.noreply.github.com
c07d8000c6 refactor(tracker): harmonize naming and use iterators in MIDI
using iterators requires go 1.23
2024-10-14 15:00:55 +03:00
Alexander Kraus
577265b250 feat(tracker): add support for a MIDI controller to the standalone tracker
Closes #132.
2024-10-14 14:11:50 +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
160eb8eea9 fix(tracker/gioui): typing notes respects the keybinding modifiers 2024-10-13 15:14:04 +03:00
5684185+vsariola@users.noreply.github.com
3fb7f07c2c feat(tracker/gioui): keybindings file is keybindings.yml, not .yaml 2024-10-13 14:54:42 +03:00
5684185+vsariola@users.noreply.github.com
10f021a497 feat: toggle button to duplicate non-unique patterns when changed
Closes #77.
2024-10-13 14:47:22 +03:00
5684185+vsariola@users.noreply.github.com
3a7ab0416a fix(presets): remove invalid parameters from snare-adam.yml 2024-10-13 14:39:04 +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
59c04ed4a1 refactor(tracker): shorten the names of model.PlayFrom... methods 2024-10-12 21:31:56 +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
5c51932f60 fix(tracker): autofix malformed songs with useless params 2024-10-11 20:34:04 +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
91b7850bf7 feat(tracker): change keyboard shortcuts to mimic old trackers 2024-10-11 15:31:54 +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
a94703deea fix(tracker/gioui): pressing a or 1 in hex mode created note off
Closes #162
2024-10-08 12:31:05 +03:00
5684185+vsariola@users.noreply.github.com
47d7568552 refactor: remove ParamHintString, add DisplayFunc for each param 2024-10-06 19:04:10 +03:00