mirror of
https://github.com/vsariola/sointu.git
synced 2025-05-28 03:10:24 -04:00
Update README.md
This commit is contained in:
parent
b2b15f825d
commit
15cf8a750c
40
README.md
40
README.md
@ -262,12 +262,12 @@ New features since fork
|
||||
used.
|
||||
- **Songs are YAML files**. These markup files are simple data files,
|
||||
describing the tracks, patterns and patch structure (see
|
||||
[here](tests/test_oscillat_trisaw.yml) for an example). The sointu-cli
|
||||
compiler then reads these files and compiles them into .asm code. This has
|
||||
the nice implication that, in future, there will be no need for a binary
|
||||
format to save patches, nor should you need to commit .o or .asm to repo:
|
||||
just put the .yml in the repo and automate the .yml -> .asm -> .o steps
|
||||
using sointu-cli & nasm.
|
||||
[here](tests/test_oscillat_trisaw.yml) for an example). The sointu-compile
|
||||
then reads these files and compiles them into .asm code. This has the nice
|
||||
implication that, in future, there will be no need for a binary format to
|
||||
save patches, nor should you need to commit .o or .asm to repo: just put the
|
||||
.yml in the repo and automate the .yml -> .asm -> .o steps using
|
||||
sointu-compile & nasm.
|
||||
- **Harmonized support for stereo signals**. Every opcode supports a stereo
|
||||
variant: the stereo bit is hidden in the least significant bit of the
|
||||
command stream and passed in carry to the opcode. This has several nice
|
||||
@ -278,7 +278,7 @@ New features since fork
|
||||
stereo opcodes usually follow stereo opcodes (and mono opcodes follow mono
|
||||
opcodes), the stereo bits of the command bytes will be highly correlated and
|
||||
if crinkler or any other modeling compressor is doing its job, that should
|
||||
make them highly predictable i.e. highly compressably.
|
||||
make them highly predictable i.e. highly compressable.
|
||||
- **Test-driven development**. Given that 4klang was already a mature project,
|
||||
the first thing actually implemented was a set of regression tests to avoid
|
||||
breaking everything beyond any hope of repair. Done, using go test (runs the
|
||||
@ -317,19 +317,19 @@ New features since fork
|
||||
hand-written assembly code by sointu compiler, but with this, the tracker is
|
||||
ultraportable and does not need cgo calls.
|
||||
- **Using Sointu as a sync-tracker**. Similar to [GNU
|
||||
Rocket](https://github.com/yupferris/gnurocket), but (ab)using the tracker
|
||||
we already have for music. We use the Go "rpc" package to send current sync
|
||||
values from the new "sync" opcode + optionally the current fractional row
|
||||
the song is on. The syncs are saved every 256th sample (approximately 172
|
||||
Hz). For 4k intro development, the idea is to write a debug version of the
|
||||
intro that merely loads the shader and listens to the RPC messages, and then
|
||||
draws the shader with those as the uniforms. Then, during the actual 4k
|
||||
intro, one can get the sync data from Sointu: if the song uses syncs,
|
||||
su_render_song writes the syncs to a float array. During each time step, a
|
||||
slice of this array can be sent to the shader as a uniform float array. A
|
||||
track with two voices, triggering an instrument with a single envelope and a
|
||||
slow filter can even be used as a cheap smooth interpolation mechanism,
|
||||
provided the syncs are added to each other in the shader.
|
||||
Rocket](https://github.com/rocket/rocket), but (ab)using the tracker we
|
||||
already have for music. We use the Go rpc package to send current sync
|
||||
values from the new SYNC opcode + optionally the current fractional row the
|
||||
song is on. The syncs are saved every 256th sample (approximately 172 Hz).
|
||||
For 4k intro development, the idea is to write a debug version of the intro
|
||||
that merely loads the shader and listens to the RPC messages, and then draws
|
||||
the shader with those as the uniforms. Then, during the actual 4k intro, one
|
||||
can get the sync data from Sointu: if the song uses syncs, su_render_song
|
||||
writes the syncs to a float array. During each time step, a slice of this
|
||||
array can be sent to the shader as a uniform float array. A track with two
|
||||
voices, triggering an instrument with a single envelope and a slow filter,
|
||||
can even be used as a cheap smooth interpolation mechanism, provided the
|
||||
syncs are added to each other in the shader.
|
||||
|
||||
Future goals
|
||||
------------
|
||||
|
Loading…
Reference in New Issue
Block a user