vsariola
a27494e17d
feat(tracker): implement alerts that display useful notifications / errors
...
In particular, we show notification after the user has copied something to clipboard (#34 ) and when there is a patch compile error (#38 ).
2021-02-17 23:30:07 +02:00
vsariola
319fc5e853
fix(tracker): stack labels display error whenever the stack is not exactly 0
2021-02-17 17:51:06 +02:00
vsariola
2f0c9a9f04
tracker: improve the layout of unit editing buttons
2021-02-17 17:42:21 +02:00
vsariola
692615c76d
feat(tracker): add scroll bars to lists
...
Closes #8
2021-02-17 17:10:38 +02:00
vsariola
12d5d392c5
tracker: only one "hex" checkbox in the tracker title bar
...
Closes #28
2021-02-17 17:10:38 +02:00
vsariola
da6cc0a2b8
fix(tracker): only add NoteOffs when keyjazz key is released during notetracking
2021-02-16 23:30:59 +02:00
vsariola
b095b799a0
feat(tracker): clicking on the parameter label when the parameter is already selected resets the parameter
...
Closes #17
2021-02-16 23:25:21 +02:00
vsariola
d49e0a6bc8
fix(tracker): accept '<' and '>' keycodes for changing octave too
...
Probably fixes issue #13 , but cannot test as I don't have a Mac.
2021-02-16 22:53:19 +02:00
vsariola
b21bade6b5
tracker: make key.DeleteForward & key.DeleteBackward do same thing
...
Closes #9
2021-02-16 22:45:30 +02:00
vsariola
c3788e1a24
feat(tracker): highlight beats / every second beat in the tracker
...
Closes #30
2021-02-16 22:42:32 +02:00
vsariola
2853509d1d
fix(tracker): CurrenParam / CurrentUnit were incorrectly updated
...
Closes #21 , #20
2021-02-16 22:04:15 +02:00
vsariola
09a9f072cc
feat(tracker): copy instrument to & paste from clipboard
...
Closes #25
2021-02-16 21:45:25 +02:00
vsariola
088bbc6c58
feat(tracker): add a rudimentary VU-meter to show master volume, peaks & clipping
...
Closes #16
2021-02-16 17:27:21 +02:00
vsariola
962d0f1152
fix(tracker): when the track editor was scrolled, the jump pointer event regions were wrong
2021-02-16 17:27:21 +02:00
vsariola
803184cbe7
feat(tracker): add step parameter to advance cursor after edit
...
The step is currently in the song panel; might consider putting it somewhere else.
Closes #6
2021-02-16 17:27:21 +02:00
vsariola
366a05c766
tracker: remove old unused code
2021-02-16 08:47:48 +02:00
vsariola
c781c24ae6
feat(tracker): add F1-F8 shortcut keys for changing editmode / playing
...
Related to #14
2021-02-15 23:57:35 +02:00
vsariola
25a4bfd5ac
tracker: adjust the default split ratio to be more sensible
...
Closes #23
2021-02-15 23:31:00 +02:00
vsariola
94205b9ab2
feat(tracker): implement more proper menus, with Undo&Redo
...
Closes #24
2021-02-15 23:05:06 +02:00
vsariola
a470452e99
feat(tracker): add menu button for Paste
...
Closes #26
2021-02-15 19:30:18 +02:00
vsariola
712a4c927b
fix(tracker): clicking anywhere outside a menu closes it but does not trigger other action
...
Closes #27
2021-02-15 19:21:54 +02:00
vsariola
070833ed9c
feat(tracker): shortcut-N starts a new song project
...
Closes #29
2021-02-15 19:15:05 +02:00
vsariola
83d6277ae6
feat(sointu, tracker): find the send targets ports easily and use this to figure slider maximums dynamically
...
There is a new helper function in Sointu to find the target of a send. In future, compiler and others should be refactored to use this function to find send targets.
Closes #31
2021-02-15 19:11:13 +02:00
vsariola
0f136d544c
fix(tracker): when instrument panel is clicked, only change EditMode when instruments
...
Changing to always EditUnits was causing unnecessarily going back from EditParameters.
2021-02-15 18:14:59 +02:00
vsariola
e93190892b
fix(tracker): reduce visual jitter when adjusting unit parameter sliders
...
The solution is not to force the slider value when the user is dragging it.
Closes #33
2021-02-15 18:11:36 +02:00
vsariola
024245b780
fix(tracker): the unit type chooser list expands to the right
...
Also add helpful title label to explain what the unit type chooser does.
Closes #35
2021-02-15 17:57:04 +02:00
vsariola
c60f6e0f0e
feat(tracker): make clicks change the focused panel
2021-02-14 21:32:27 +02:00
vsariola
07052f2530
refactor(tracker): delete unused constants from theme.go
2021-02-14 20:35:38 +02:00
vsariola
99d83472cc
refactor(tracker): remove panels.go; panels are not used anymore
2021-02-14 20:21:17 +02:00
vsariola
394e2834e9
refactor(tracker): make NumericUpDown use widgetForIcon instead loading icons by itself
2021-02-14 20:20:40 +02:00
vsariola
24ebc99b92
refactor(tracker): move instrument related stuff from layout.go to instruments.go
...
the code related to handling instrument button actions definitely should be in instruments.go, not layout.go
2021-02-14 20:13:15 +02:00
vsariola
7c810ac052
refactor(tracker): delete old unused code for making buttons
2021-02-14 20:10:02 +02:00
vsariola
e2fcfbbc4a
refactor(tracker): move C & D type shortcuts for layout.Context and layout.Dimensions to layout.go
...
layout.go is where the basic core of the layout should reside
2021-02-14 19:59:08 +02:00
vsariola
cece2d77d4
feat(tracker): go generate parses gm.dls and show slightly more sane gui for them
2021-02-14 19:54:30 +02:00
vsariola
4da225ec33
feat(tracker): allow copying and pasting songs to/from the window
2021-02-13 01:59:10 +02:00
vsariola
49456cb270
fix(tracker): update send targets when instruments/units are added/deleted/swapped
2021-02-13 00:28:06 +02:00
vsariola
4ed259ff17
fix(tracker): voices are now released when the synth is recompiled
...
fixes nasty noises from all voices being triggered with note 0
2021-02-12 09:14:57 +02:00
vsariola
d01657ab83
feat(tracker): add numeric up down to adjust number of voices per track
2021-02-12 08:43:27 +02:00
vsariola
10f53bdbf7
feat(sointu): rewrote sequencer to add support for keyjazzing
2021-02-11 23:20:13 +02:00
vsariola
b9c8218ca4
fix(tracker): numeric up down crashed when its height was small
2021-02-11 10:58:41 +02:00
vsariola
8cfd915311
feat(sointu): add functions to figure out the stack use and need of a unit
2021-02-10 22:39:08 +02:00
vsariola
35d2ff6308
feat(tracker): add panic button to quickly disable the sound & show when synth crashes
2021-02-10 21:59:29 +02:00
vsariola
33bf5ebd49
feat(tracker): make + and - adjust the note pitch also
2021-02-10 18:51:03 +02:00
vsariola
8f89bf7361
fix(tracker): show note octaves with letters in case the notes are out of numeric range
2021-02-10 18:44:29 +02:00
vsariola
38008bdb87
feat(tracker): implement edit modes, resembling tab stops
2021-02-10 18:26:58 +02:00
vsariola
de402eaece
make sequencer use up all space available
2021-02-08 19:07:24 +02:00
vsariola
bb43bf61a8
fix(tracker): the hit rects in Split had X and Y mixed up
2021-02-08 17:18:14 +02:00
vsariola
cc2a5f3ad9
fix(tracker): "send" was missing from defaultUnits
2021-02-07 23:26:04 +02:00
vsariola
4e1731f6e3
refactor(sointu): move parameter string conversion to song level
...
Some parameter values need the whole song or at least the unit to give accurate hint what the parameter means. For example: send needs to know the entire song to know what the target unit refers to.
2021-02-07 23:25:15 +02:00
vsariola
af52aa9e51
feat(sointu): add functions to convert unit parameter values into human readable strings
2021-02-07 19:57:01 +02:00
vsariola
56d8ca574e
feat(tracker): improve unit parameter sliders: align, scrollable list & show values
2021-02-07 14:28:57 +02:00
vsariola
5588d7ca7d
feat(tracker): make instrument name editable
2021-02-06 23:39:58 +02:00
vsariola
6c0cf6832e
fix(tracker): clamp CurrentUnit to valid values when instrument changes
2021-02-06 19:15:06 +02:00
vsariola
ef59c4a61a
feat(sointu): add instrument name field and use it to name more sensible defaults
2021-02-06 19:10:37 +02:00
vsariola
b34161b173
feat(tracker): make instrument names use draglist
2021-02-06 18:35:42 +02:00
vsariola
73cbc4314f
fix(tracker): clamp CurrentInstrument and CurrentUnit when song is loaded
2021-02-06 17:12:53 +02:00
vsariola
207ae5195d
feat(tracker): implement draggable list and make unit list use such
2021-02-06 16:28:32 +02:00
vsariola
c574b27d34
fix(tracker): when changing unit type, use tracker.SetUnit
2021-02-05 22:28:04 +02:00
vsariola
5e7bd75b36
feat(sointu): add SynthService for recompiling the synth when needed
2021-02-05 22:21:46 +02:00
vsariola
6307dd51de
feat(tracker): adding, setting, unsetting and deleting units
2021-02-05 21:32:21 +02:00
vsariola
29b289d2fb
refactor(tracker): remove Contents from PopupStyle; pass it to Layout instead
2021-02-03 16:34:22 +02:00
vsariola
21b620c824
feat(tracker): add numeric updown to choose number of voices for instrument
2021-02-03 14:53:12 +02:00
vsariola
e25015a60b
fix(tracker): update sequencer rowlength when entire song is set
2021-02-03 13:29:42 +02:00
vsariola
b0dac8454d
feat(tracker): add some shadow to popups
2021-02-03 13:25:45 +02:00
vsariola
fc9a6b6517
fix(tracker): remove unnecessary go func(){...}()
2021-02-02 22:56:23 +02:00
vsariola
14d4521f40
feat(tracker): move reset and load song into popup menu
2021-02-02 22:44:27 +02:00
vsariola
95054c1877
upgrade to latest gio
2021-02-02 21:42:18 +02:00
vsariola
3f494661e3
feat(sointu): add RowsPerBeat so non-power of 2 beat divisions are easier
2021-02-01 18:33:52 +02:00
vsariola
3cf2fc70a8
refactor(tracker): change so that all icon initialization is a lazy & cache in iconcache
2021-02-01 17:57:13 +02:00
vsariola
c667ffb4e1
feat(tracker): remove axis from NumericUpDown, allow dragging either Y or X
2021-02-01 13:53:10 +02:00
vsariola
98c8d18a3e
feat(tracker): add numeric updown to adjust RowsPerPattern
2021-01-30 23:22:31 +02:00
vsariola
f3b21cc75f
fix(tracker): update sequencer patch when instrument deleted
2021-01-30 23:03:44 +02:00
vsariola
22c433b3e4
feat(tracker): add button for deleting instrument
2021-01-30 22:55:27 +02:00
vsariola
6c97b5e736
feat(sointu): update synth instead of recompiling if no commands (units) change
...
this avoids the nasty clicking resulting from complete reset / recompilation of the synth, which was the previous case
2021-01-28 22:35:27 +02:00
vsariola
61437db0d6
refactor(sointu): add explicit RowsPerPattern to the song
2021-01-21 13:16:41 +02:00
vsariola
08dcbb9edb
feat(tracker): add semitone & octave up/down buttons
2021-01-17 17:13:42 +02:00
vsariola
eb36a96e29
feat(tracker): implement selecting a range in the tracker
...
also refactored a location in song to SongPoint, and a particular row in song into SongRow
2021-01-16 21:11:08 +02:00
vsariola
8f9bf75613
feat(tracker): move track editor controls to top of the track editors
2021-01-16 14:45:05 +02:00
vsariola
80d87dea8c
feat(tracker): implement a numeric up down widget and use that for the numbers
2021-01-16 13:05:40 +02:00
vsariola
f665a529e5
feat(tracker): add adjustable vertical split between top and bottom
2021-01-15 12:42:06 +02:00
vsariola
c90f8efbdc
feat(tracker): make clear song button to reset to default song
2021-01-15 08:17:10 +02:00
vsariola
2378be5021
feat(tracker): change unit list into labels
2021-01-15 08:17:09 +02:00
vsariola
a29f34734b
feat(tracker): move new instrument button to the top right
2021-01-14 00:44:33 +02:00
vsariola
5124e0bf74
feat(tracker): move song related buttons to top and make the panel sizes adjustable
2021-01-13 18:37:20 +02:00
vsariola
62ea87c709
feat(tracker): move the pattern sequencer to bottom left
2021-01-13 18:36:38 +02:00
vsariola
5a69c14f61
feat(tracker): only show either notes or hex for a track + checkbox to toggle
2021-01-12 18:52:15 +02:00
vsariola
dcb0877c71
feat(tracker): add buttons for increasing and decreasing song length
2021-01-11 21:19:27 +02:00
vsariola
8b666064b2
feat(tracker): implement saving and loading a song file
2021-01-10 17:20:42 +02:00
vsariola
5e76fabf21
feat(tracker): ctrl + number change the current pattern in sequencer
2021-01-10 16:38:53 +02:00
vsariola
33bd91764c
feat(tracker): make sequencer show properly cursor, current playing row & pattern marker
2021-01-10 16:11:29 +02:00
vsariola
37185c98b3
feat(tracker): add surface color to instrument editor
2021-01-10 15:24:20 +02:00
vsariola
fa893c94f1
feat(tracker): add simple instrument editor
2021-01-10 01:51:16 +02:00
vsariola
e62fe85867
feat(tracker): disable buttons when they are not clickable
2021-01-09 23:06:16 +02:00
vsariola
41cd1d21f6
feat(tracker): add thin line separating the controls from the tracker
2021-01-09 22:55:03 +02:00
vsariola
6bdd212336
feat(tracker): move octave buttons to the bottom right
2021-01-09 22:37:25 +02:00
vsariola
82771832ed
feat(tracker): change tracker to more material.io style
2021-01-09 21:26:40 +02:00
vsariola
eb25ddd864
feat(tracker): implement simple undo / redo
2021-01-08 22:00:15 +02:00
vsariola
cbf9d34738
feat(tracker): add new instrument & new track buttons
2021-01-08 18:55:02 +02:00
vsariola
e480622f57
feat(tracker): make color scheme dark gray
2021-01-08 16:11:18 +02:00
vsariola
92ab035101
feat(tracker): add row number markers to the left
2021-01-08 15:36:11 +02:00
vsariola
82d26b79a4
feat(tracker): add simple BPM & octave buttons
2021-01-07 19:25:16 +02:00
vsariola
1d524b5815
fix(tracker): deleting and note off keyevents trigger redraw
2021-01-07 15:05:47 +02:00
vsariola
148bea2827
feat(tracker): draw a slightly more reasonable cursor
2021-01-07 15:02:29 +02:00
vsariola
f8103af43c
feat(tracker): adjust color theme to purple
2021-01-07 14:31:50 +02:00
vsariola
804b4e9c50
feat(tracker): add some inset border around the whole GUI
2021-01-07 14:15:14 +02:00
vsariola
c032978f05
feat(tracker): make beveling follow tightly the edges of widgets, instead of maximum
2021-01-07 14:03:55 +02:00
vsariola
8b23fb5c05
feat(tracker): hide playing row indicator when not playing
2021-01-07 13:15:57 +02:00
vsariola
e7cd1b295b
feat(tracker): allow user to move rows through song using arrows
2021-01-06 18:50:07 +02:00
vsariola
492b2252bf
feat(tracker): add pattern marks to tracker
2021-01-06 16:45:26 +02:00
vsariola
91766e198d
feat(tracker): show currently active pattern notes with lighter text
2021-01-06 15:35:14 +02:00
vsariola
12e1bde2a2
feat(tracker): show notes for whole song, instead of single pattern
2021-01-06 15:14:48 +02:00
vsariola
76dfd103e7
feat(tracker): ctrl + arrow move cursor entire pattern
2021-01-06 15:04:32 +02:00
vsariola
37c09030bc
feat(tracker): add dark lines separating UI elements
2021-01-06 14:52:36 +02:00
vsariola
2b38297da2
feat(tracker): layout patterns in the top left
2021-01-06 14:25:17 +02:00
vsariola
5dd81430b7
feat(sointu): make patterns local to track
...
The global pattern table is constructed only during compilation. At this point, we can do also all sorts of optimizations / changes e.g. remove unnecessary releases and reuse patterns if there's a pattern already that could be used.
2021-01-03 01:06:59 +02:00
vsariola
06c006086b
feat(tracker): Add a matrix showing track sequences
2021-01-02 17:40:53 +02:00
vsariola
1d91603e36
feat(tracker): add keys to adjust current octave
2020-12-31 00:01:54 +02:00
vsariola
2e2b5261ae
feat(tracker): indicate release and hold with better symbols
2020-12-30 23:32:20 +02:00
Veikko Sariola
a69f0a1924
feat(tracker): Add keys for holding & releasing a note
2020-12-29 16:32:14 +02:00
Veikko Sariola
29ba6b3658
feat(tracker): use slightly more interesting default instruments
2020-12-29 16:31:28 +02:00
Veikko Sariola
cd498e775b
refactor(tracker): Rewrote the sequencer loop to use simple mutex
2020-12-29 16:30:44 +02:00
Veikko Sariola
224b8dcb70
refactor(go): Move everything from go4k to root package sointu
2020-12-16 21:35:53 +02:00