Commit Graph

247 Commits

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