Commit Graph

27 Commits

Author SHA1 Message Date
5684185+vsariola@users.noreply.github.com
554a840982 refactor(tracker): new closing mechanism logic 2025-05-01 10:20:41 +03:00
5684185+vsariola@users.noreply.github.com
8074fd71d3 refactor(tracker): split NewModelPlayer into NewModel, NewPlayer 2024-11-02 23:58:38 +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
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
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
qm210
8dfadacafe feat: midi note input for the tracker 2024-10-22 07:56:36 +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
81a6d1acea feat: upgrade oto and output float audio 2024-10-06 18:58:08 +03:00
5684185+vsariola@users.noreply.github.com
aec756f921 feat(sointu-track): accept filename as command line parameter
Closes #122.
2024-02-17 19:17:47 +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
d342fb860b refactor(tracker): put all recording data into struct Recording 2023-10-19 23:28:57 +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
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
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
1a256b1f01 feat(cmd/sointu-track): add command line parameters for cpu & mem profiling 2023-10-15 09:07:22 +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
cd700ed954 feat!: implement vsti, along with various refactorings and api changes for it
The RPC and sync library mechanisms were removed for now; they never really worked and contained several obvious bugs. Need to consider if syncs are useful at all during the compose time, or just used during intro.
2023-05-13 17:56:13 +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
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
a035845b81 reorganize things into different packages 2021-03-02 17:19:45 +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
vsariola
5e7bd75b36 feat(sointu): add SynthService for recompiling the synth when needed 2021-02-05 22:21:46 +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
7f049acf88 feat(cli): Re-engineer CLIs, split play & compile
Play depends on bridge and compile on compiler package. Before, the compiler depended on bridge, but we could not use the compiler to build the library, as the bridge depends on the library. Also, play can now start having slightly more options e.g. wav out etc.
2020-12-18 20:25:49 +02:00