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
5684185+vsariola@users.noreply.github.com
890ebe3294
refactor(tracker/gioui): use layout.Background, not layout.Stacked
2024-10-05 13:24:31 +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
8fd2df19a1
fix(sointu-vsti): warn about sample rate only after plugin init
2024-09-22 09:59:58 +03:00
5684185+vsariola@users.noreply.github.com
4ee355bb45
fix(tracker/gioui): DPI scaling of the numeric updown icons
...
Closes #150 .
2024-09-21 14:01:32 +03:00
5684185+vsariola@users.noreply.github.com
2b38e11643
feat: include version info in the binaries
2024-09-15 19:45:00 +03:00
5684185+vsariola@users.noreply.github.com
e49f699f62
feat(tracker/gioui): clicking a parameter slider (etc.) selects it
...
Closes #112 .
2024-09-08 14:46:24 +03:00
5684185+vsariola@users.noreply.github.com
6fc9277113
fix(tracker): unit search gains focus when adding a unit on last row
2024-09-07 21:29:37 +03:00
5684185+vsariola@users.noreply.github.com
877556b428
feat(tracker): do not wrap around when playing or moving cursor
...
The wrapping was usually unwanted behaviour. The user can use the
looping (Ctrl-L) to loop the song forever if this is really desired.
2024-09-07 18:52:52 +03:00
5684185+vsariola@users.noreply.github.com
4e1fdf57d9
fix(tracker/gioui): advance row by step when inputting a note
...
Closes #144 .
2024-09-07 17:45:32 +03:00
5684185+vsariola@users.noreply.github.com
1daaf1829c
fix(tracker): ensure numVoices of loaded instrument is ok
2024-09-07 15:25:06 +03:00
5684185+vsariola@users.noreply.github.com
74972b5ff4
fix(tracker): ID collisions in ClearUnit and Instruments.unmarshal
2024-09-07 15:25:06 +03:00
5684185+vsariola@users.noreply.github.com
9da6c2216c
test(tracker): fuzz testing of ID collisions and file read/writes
2024-09-07 15:16:53 +03:00
5684185+vsariola@users.noreply.github.com
61e7da5dab
test(tracker): test loading presets in fuzz tests
2024-09-06 22:03:52 +03:00
5684185+vsariola@users.noreply.github.com
59fb39d9b3
fix(tracker/gioui): move alert popups north to not overlay buttons
...
Closes #142 .
2024-09-06 22:01:00 +03:00
5684185+vsariola@users.noreply.github.com
9cb573d965
feat(tracker/gioui): cursor indicates split bars can be resized
...
Closes #145 .
2024-09-06 20:29:33 +03:00
5684185+vsariola@users.noreply.github.com
d46605c638
fix: assign new IDs to loaded instruments
...
Fixes #146 .
2024-09-06 20:19:27 +03:00
5684185+vsariola@users.noreply.github.com
e09af5ab34
fix(tracker): loading preset did not update the ids
...
When a preset was loaded, its IDs were not updated,
causing ID collisions in the song and send targets
going wrong.
2024-08-10 15:20:25 +03:00
5684185+vsariola@users.noreply.github.com
beb84d7652
fix(tracker/gioui): deleting a cell in the order list did not work
2024-03-14 20:37:09 +02:00
5684185+vsariola@users.noreply.github.com
c55b27b23b
fix(tracker): recording creates empty track when no notes triggered
2024-03-10 20:01:13 +02:00
5684185+vsariola@users.noreply.github.com
e488cd391b
fix(gioui): scroll wheel works in tables, not just table row titles
2024-03-02 00:40:06 +02:00
5684185+vsariola@users.noreply.github.com
7f20bd8baf
fix(tracker): remember to tell player when m.d.Loop is updated
2024-03-01 23:54:19 +02:00
5684185+vsariola@users.noreply.github.com
07bf8f6cdf
fix(gioui): draw cursor in front of play marker in order editor
2024-03-01 23:31:05 +02:00
5684185+vsariola@users.noreply.github.com
f0f391356c
fix(gioui): arrow keys leave table row/col titles
2024-03-01 23:25:30 +02:00
5684185+vsariola@users.noreply.github.com
b18a284252
feat(gioui): + and - keys add/subtract elements in tables
...
Closes #65 .
2024-03-01 22:43:27 +02: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
edee3452f4
feat(tracker): load presets from os.UserConfigDir()/sointu/presets/
...
This is related to #125 , but is very crude way of implementing it.
2024-02-20 20:17:59 +02:00
5684185+vsariola@users.noreply.github.com
aa1b4d371b
fix(tracker): notify player that loop changed when resetting song
2024-02-20 19:28:59 +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
aa7a2e56fa
feat(gioui): flip the unit parameter slider scroll wheel behaviour
...
Closes #112 .
2024-02-19 21:49:51 +02:00
5684185+vsariola@users.noreply.github.com
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
5684185+vsariola@users.noreply.github.com
2b3f6d8200
fix(tracker): unit searching to work more reliably
2024-02-17 20:54:46 +02:00
5684185+vsariola@users.noreply.github.com
ca4a98eb50
fix(gioui): reduce the default height of popup menus so they fit
...
Closes #121 .
2024-02-17 19:03:49 +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
04fbc9f6a7
feat(vm): add dbgain unit, where gain is defined in decibels
...
Closes #78
2023-10-23 21:57:29 +03: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
6eb025d7ba
refactor(tracker): remove unused variable RECOVERY_FILE
2023-10-20 18:41:21 +03:00
5684185+vsariola@users.noreply.github.com
9ec8f48f82
feat(tracker): move unnecessary members from modelData to Model
2023-10-20 17:59:27 +03:00
5684185+vsariola@users.noreply.github.com
391b14493c
feat(tracker): undo entire modelData, not just Song
...
The modelData is moving towards clear meaning: it's the part of the
GUI state that is undone and also recovered from disk. This changes
the recovery data so that the undo and redo stacks are not undone,
but that is unlikely a good idea anyway, as it grows the recovery
data into unreasonable sizes.
This has also the nice benefit of undoing the cursor position, which
closes #64 .
2023-10-20 17:59:26 +03:00
5684185+vsariola@users.noreply.github.com
486bab4185
style(tracker): rename NUM_RENDER_TRIES to numRenderTries
2023-10-20 16:38:44 +03:00
5684185+vsariola@users.noreply.github.com
1e47c5004c
style(tracker): remove unused PlayerPlayingMessage type
2023-10-20 16:37:19 +03:00
5684185+vsariola@users.noreply.github.com
900f1611b1
docs(tracker): add go doc comments to GmDlsEntry/-Entries
2023-10-20 16:36:09 +03:00
5684185+vsariola@users.noreply.github.com
beb06727b0
refactor: move UnitNames to top level package
2023-10-20 01:59:30 +03:00
5684185+vsariola@users.noreply.github.com
b6ec5d1a04
style(tracker): group code into less number of files
2023-10-20 01:50:38 +03:00
5684185+vsariola@users.noreply.github.com
ff8e662857
refactor(tracker): move NoteStr and NoteAsValue to gioui package
2023-10-20 01:40:14 +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
0ce5ca3003
refactor(tracker): send Songs/Patches etc. from Model to Player
2023-10-20 00:54:03 +03:00
5684185+vsariola@users.noreply.github.com
14a0306064
docs(tracker): add go doc comments to Player
2023-10-19 23:28:57 +03:00
5684185+vsariola@users.noreply.github.com
d342fb860b
refactor(tracker): put all recording data into struct Recording
2023-10-19 23:28:57 +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
1a8a317464
docs(tracker): improve package go doc comments
2023-10-19 22:28:44 +03:00
5684185+vsariola@users.noreply.github.com
9073adadb3
fix(tracker/gioui): scroll bars move in sync with the cursor
2023-10-19 14:25:03 +03:00
5684185+vsariola@users.noreply.github.com
b772940b1f
fix(tracker/gioui): preset menu scrollbar fits on screen
2023-10-19 14:22:19 +03:00
5684185+vsariola@users.noreply.github.com
d6abb14b08
feat(tracker/gioui): add scrollbars to menus
2023-10-19 14:07:09 +03:00
5684185+vsariola@users.noreply.github.com
64270eaf68
refactor: rename FindSendTarget to FindUnit
2023-10-19 13:31:34 +03:00
5684185+vsariola@users.noreply.github.com
ff4155a08e
fix(tracker): notify player when recovery file is loaded
2023-10-19 10:59:07 +03:00
5684185+vsariola@users.noreply.github.com
b6815f70cb
feat: remove unreleased parameter from Play function
...
The VMs now release all envelopes by default, so this mechanism was
useless / did not actually start them as unreleased even when you
thought they did.
2023-10-19 10:42:20 +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
0187cc66ec
refactor: move Wav and Raw methods as members of AudioBuffer
2023-10-18 14:40:16 +03:00
5684185+vsariola@users.noreply.github.com
38e9007bf8
refactor: use [][2] as audio buffers, instead of []float32
...
Throughout sointu, we assume stereo audiobuffers, but were passing
around []float32. This had several issues, including len(buf)/2 and
numSamples*2 type of length conversion in many places. Also, it
caused one bug in a test case, causing it to succeed when it should
have not (the test had +-1 when it should have had +-2). This
refactoring makes it impossible to have odd length buffer issues.
2023-10-18 13:51:02 +03:00
5684185+vsariola@users.noreply.github.com
bb0d4d6800
docs(tracker): update comments
2023-10-17 20:31:57 +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
5684185+vsariola@users.noreply.github.com
97a1b2f766
perf(tracker): use json recovery files instead of yaml for less garbage
...
The yaml marshaling and umarshaling seems to allocate a lot of memory. When saving the recovery file, the memory use jumped up by hundreds of megabytes. Switch to using json marshaling for the recovery file, as it does waste memory so badly. Binary marshaling was also an option, but its nice in emergency situations that the user can glance the recovery file and perhaps, with some effort, recover stuff from it. Json is good enough for manual recovery during emergency situations.
2023-10-15 11:11:26 +03:00
5684185+vsariola@users.noreply.github.com
4899b027ff
perf(tracker/gioui): use pointer receivers in numericupdown to avoid garbage
2023-10-15 09:49:30 +03:00
5684185+vsariola@users.noreply.github.com
b455ef0f3c
feat(tracker): add reverb presets for delay unit
...
The options are stereo, left and right. Similar to oscillator sample settings, if you tamper with these, it starts to show "custom". Used some of the generic features of go1.18, so had to update go.mod to require go1.18.
2023-10-14 14:58:38 +03:00
5684185+vsariola@users.noreply.github.com
f5eeabe5f3
fix(tracker/gioui): respawn window if VSTI accidentally closes it
2023-10-08 16:27:17 +03:00
5684185+vsariola@users.noreply.github.com
61ebd89da0
fix(tracker): set PrevUndoType to "" when undoing and redoing
2023-10-08 15:59:33 +03:00
5684185+vsariola@users.noreply.github.com
7ee43f199a
fix(tracker): make sure undo & redo stack never grow beyond limit
2023-10-02 15:43:52 +03:00
5684185+vsariola@users.noreply.github.com
048de55f00
fix(tracker): save recovery in GUI thread and reduce recovery size&frequency
2023-10-02 13:40:26 +03:00
5684185+vsariola@users.noreply.github.com
ce7c8a0d3e
feat(tracker): add menu to load instrument presets
...
The presets are embedded in the executable, so there's no additional files.
Closes #91
2023-10-01 18:54:50 +03:00
5684185+vsariola@users.noreply.github.com
df2605fddd
feat(tracker): save recovery file regularly & load it on startup
2023-10-01 14:45:45 +03:00
5684185+vsariola@users.noreply.github.com
12f15d1066
fix(tracker/gioui): make VSTI close event wait that gioui actually quit
2023-10-01 12:42:12 +03:00
5684185+vsariola@users.noreply.github.com
00850c8001
code/text formatting and cleaning up whitespace
2023-09-24 10:47:54 +03:00
5684185+vsariola@users.noreply.github.com
14e548c4c1
fix(tracker/gioui): CopyUnitBtn marshaled unit incorrectly
2023-09-20 14:57:23 +03:00
5684185+vsariola@users.noreply.github.com
231e055faf
fix(gioui/tracker): song files were not truncated when opened for writing ( closes #103 )
2023-09-02 14:32:23 +03:00
5684185+vsariola@users.noreply.github.com
de3f4d987f
fix(tracker/gioui): hitting enter/return to focus on the instrument name editor
2023-09-01 22:51:59 +03:00
5684185+vsariola@users.noreply.github.com
c7d79035ce
fix: copying and pasting units messed selection and Ctrl-C actually cut
2023-08-27 16:05:11 +03:00
5684185+vsariola@users.noreply.github.com
c040bdedee
fix: when just saving a file, open the file in write mode ( fixes #99 )
2023-08-27 11:29:55 +03:00
5684185+vsariola@users.noreply.github.com
a0bcac3904
fix: check that MIDI triggered instrument is within patch limits ( #98 )
2023-08-27 11:10:54 +03:00