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