Commit Graph

27 Commits

Author SHA1 Message Date
qm210
b255a68ebc fix: changes after review (see PR #176) 2024-11-10 00:02:13 +02:00
qm210
55c062a390 feat: highlight sliders that are controlled by a send, and add tooltip (over value) 2024-11-10 00:02:13 +02:00
5684185+vsariola@users.noreply.github.com
943073d0cc perf: do not use TotalVoices as it causes heap allocations 2024-11-02 20:44:45 +02: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
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
7b213bd8b0 feat(sointu): display compressor invgain and threshold in dB 2024-10-15 23:27:58 +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
ad5f7628a5 doc: improve filterFrequencyDispFunc comments 2024-10-08 11:45:27 +03:00
5684185+vsariola@users.noreply.github.com
b538737643 feat(sointu): show filter frequency in Hz
Closes #158.
2024-10-06 21:54:19 +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
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
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
beb06727b0 refactor: move UnitNames to top level package 2023-10-20 01:59:30 +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
e4a2ed9f32 style: group types into fewer, logical files 2023-10-18 15:02:25 +03:00
5684185+vsariola@users.noreply.github.com
8c8232f76e feat(vm)!: implement cross-instrument modulation of all voices
The "auto" was misleading, as it meant self modulation when targetting a unit within instrument itself and just voice 0 when cross-instrument modulation. This feature changes the "auto" meaning "self" for instruments self-modulating, and "all" voices for cross-instrument modulations. "all" is implemented by compiling a single send into multiple repeated sends, with only the last popping the stack (if necessary).

Closes #107
2023-10-07 14:07:39 +03:00
5684185+vsariola@users.noreply.github.com
7df8103bf9 fix(vm): change crush resolution to bits (closes #79)
BREAKING CHANGE: The problem with crush was that it had very few usable values. This changes the crush to map the value nonlinearly, so the crush resolution is bits. Still the upper portion of the values is not very usable (bits 12-24 i.e. hardly any crushing), but at least the lower portion is usable. But now crush resolution has slightly different meaning.
2023-09-23 21:23:05 +03:00
5684185+vsariola@users.noreply.github.com
8c59ea1b4c add ParamHintString for loadval.value showing range [-1,1] 2023-09-01 22:01:53 +03:00
5684185+vsariola@users.noreply.github.com
98fedd0ed2 make ParamHintString show range [-1,1] for send.amount 2023-09-01 21:54:55 +03:00
5684185+vsariola@users.noreply.github.com
dff484739c feat(sointu): add better ParamHintString for in and aux unit channels 2023-08-28 23:10:11 +03:00
5684185+vsariola@users.noreply.github.com
248ba483c6 feat: add ability to import 4klang patches and instruments 2023-07-06 23:47:55 +03:00
vsariola
eda48491e2 refactor(sointu): move engineeringTime helper function to the file where it is actually used 2021-08-30 22:27:38 +03:00
vsariola
a9b90c4db8 style: add comments to the public methods and members in the root package. 2021-08-30 20:34:56 +03:00
vsariola
99dbdfe223 feat: add the ability to use Sointu as a sync-tracker
There is a new "sync" opcode that saves the top-most signal every 256 samples to the new "syncBuffer" output. Additionally, you can enable saving the current fractional row as sync[0], avoiding calculating the beat in the shader, but also calculating the beat correctly when the beat is modulated.
2021-03-09 23:52:33 +02:00
vsariola
0f942f73d9 fix(sointu): NumDelayLines did not take polyphony into account, resulting in panic 2021-03-04 11:16:05 +02:00
vsariola
6d2b63a5e9 feat(sointu, vm): implement pure-Go interpreter for bytecode
The old "native" compiler bridged version is now started with cmd/sointu-nativetrack,
while the new pure-Go bytecode implemented bytecode interpreter is started with
cmd/sointu-track

Thus, you do not need any of the CMake / cgo stuff to run cmd/sointu-track
2021-03-03 23:55:58 +02:00
vsariola
adcf3ebce8 feat(sointu, tracker,...): restructure domain & tracker models
send targets are now by ID and Song has "Score" part, which is the notes for it. also, moved the model part separate of the actual gioui dependend stuff.

sorry to my future self about the code bomb; ended up too far and did not find an easy way to rewrite the history to make the steps smaller, so in the end, just squashed everything.
2021-02-28 14:24:54 +02:00