Skip to content

Releases: white-axe/determination

v2.1.3

25 Sep 12:55
015f7a9
Compare
Choose a tag to compare
  • Updated Faust from 2.74.6 to 2.75.7.
  • Updated LLVM from 17.0.6 to 18.1.8.
  • Disabled LLVM fast-math in Faust's generated LLVM IR. This changes Mephisto's outputs slightly, but should significantly reduce the chances of Mephisto's outputs changing after updating Faust or LLVM again.

Full Changelog: v2.1.2...v2.1.3

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:e9730e3b5d1db41523cb8f4b41b0a5c393a98e439c21a7799f8fed0ea784b678

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:f1ab9a7ee6d61a4cc280011c893349b4ade55d98b9f7e9f70288947ad242aa83

SHA-256 hash of container-image-determination.tar:

sha256:902d250b93351ef6fa825f583a76ff93763eb199c2ae8837e6f9c65b12f054cf

SHA-256 hash of closure-determination.tar.zst:

sha256:03b65042cab3ec615f7042644435355ef6a0141bc6852f8b9775f3b2f8a6d841

v2.1.2

02 Sep 17:36
f817089
Compare
Choose a tag to compare

Updated Mephisto from version 0.19.127 to version 0.19.159. Also improved determination-renderer's concurrency handling and slightly optimized the build process for the image.

Full Changelog: v2.1.1...v2.1.2

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:32233f17ebcb7e2d5c6957080961751d52903ca567d64275a2ca158e5f69b1ee

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:c7c7f7ee5c58c26b1f968f8be4817cfb1eca07d32bba08d025fd2223d6878c7b

SHA-256 hash of container-image-determination.tar:

sha256:2b92ab7fec464812ceca15abf3287de936f92a473de93e8be5eedee2e41557a0

SHA-256 hash of closure-determination.tar.zst:

sha256:735e1669bf108d6b642ad2280bfdfe98b278bdea305a436157b535b40230bf4a

v2.1.1

30 Aug 15:35
b587cc9
Compare
Choose a tag to compare

Fixed a bug where ZynAddSubFX sometimes crashes with a segmentation fault.

Full Changelog: v2.1.0...v2.1.1

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:2f33d7409fadc4ffa71ab0bd61b8ea0184feac5b96857e86d434aef7d5c41569

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:33629a529e1aad6894115286662dec9c9926701c106d1ba4e37f579946daa318

SHA-256 hash of container-image-determination.tar:

sha256:fd8a5a486cb678b885f107ab08b5708036fba56cf429a186128168246fd21d51

SHA-256 hash of closure-determination.tar.zst:

sha256:6b04fc2c3428dd67540b7c84871b336c3f6a36d0997d9310f12226e09aa2440d

v2.1.0

29 Aug 19:45
4f47241
Compare
Choose a tag to compare

Replaced Calf Studio Gear with Mephisto, an LV2 plugin that allows you to make your own synthesizers and effects in the Faust programming language. Mephisto can replicate all of Calf Studio Gear's effects and much more if you know how, so I cut out the middleman.

The -s and -e flags of determination-export have been changed to take sample numbers instead of BBT numbers to make it easier to deal with projects that have tempos and time signatures that change throughout the project.

The default buffer size has been changed to 128 (was 256).

Some other changes:

  • Added better help text to determination-export when you use the command determination-export --help. It now explains in detail how to set up a project for rendering and what you can and can't use.
  • determination-export should take less time to load projects now.
  • Removed a lot of warnings that show up when running determination-export.
  • The determination-export command now prints the rendering progress to the screen every 10 seconds in case you have a really slow computer. This delay time is adjustable using the --log-interval flag.
  • The sample rate and buffer size used when rendering are now adjustable using the -r/--rate and -b/--buffer command-line arguments to determination-export.

Full Changelog: v2.0.1...v2.1.0

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:9fe4fed944f91c1cacc429f37d9c47028ea872b5c75f4af9035655ea1b212d9b

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:709290d5a318f3d53e48d0783ce9434b82431479f0fecae735d6bd7d32d086f3

SHA-256 hash of container-image-determination.tar:

sha256:53161aa76ec652860f8c57f641c50d66e68367000c79aa71d78f98cd620d460c

SHA-256 hash of closure-determination.tar.zst:

sha256:78d1c26d305bb792b741630a5eeb9c880546764d1f86b7ea03da1cf02b9f6b6e

v2.0.1

21 Aug 16:51
65b2061
Compare
Choose a tag to compare
  • Fixed a problem where Calf Studio Gear produces nondeterministic results if there are multiple Calf Studio Gear plugins in the same project that use randomness.
  • Reduced the uncompressed size of the image from 147 mebibytes to 73 mebibytes by removing all locale files other than those of the C locale as well as Calf Studio Gear's documentation and GUI skins and ZynAddSubFX's presets.
  • Improved the robustness of determination-renderer's sample conversion algorithm and concurrency handling.
  • Silenced a vague warning that appears in red text when a Carla internal plugin is initialized. It has to do with us not setting a resource directory for Carla to use, but it's totally fine to silence it because Carla works fine without a resource directory.
  • The named pipe that determination-renderer outputs the rendered raw PCM data to is now located at "/.determination-renderer-pipe" instead of "/determination-renderer-pipe" so that it isn't visible in ls's output.

Full Changelog: v2.0.0...v2.0.1

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:6eb9015b96cb8aa405e5dac7c96316600e2c8f0b3786783c3334c1750a50ecfa

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:dd5f89fb52caab8deb9a0d7d675a7a3754647cdc76006f908a150c866dd7bb1a

SHA-256 hash of container-image-determination.tar:

sha256:9b5cec2b7bc8f6b260a33e34950fbfd1029a5444c84a5c35625dab58041debe4

SHA-256 hash of closure-determination.tar.zst:

sha256:ad702f126486ca49dec8b3a6d120ff03932d6c027eee80cf485a33e3f25c944e

v2.0.0

18 Aug 19:21
4d7daa9
Compare
Choose a tag to compare

Replaced the previous Ardour-based audio renderer with a new Carla-based one that's more featureful, much lighter (about 6 mebibytes including all dependencies other than the system libraries), less prone to segmentation faults and more resilient against nondeterminisms. Also removed Krita because Krita is really large and it doesn't really suffer from nondeterminisms like audio programs do anyways.

Added Calf Studio Gear as a new set of LV2 plugins. ZynAddSubFX might have some nice effects, but Calf's effects are just that much better and it was really easy to get it to behave deterministically.

Thanks to the new renderer, we no longer need to make significant changes to ZynAddSubFX to get it to behave deterministically now, so we now use the regular ZynAddSubFX codebase instead of a fork.

The new renderer requires around 256 mebibytes of shared memory. That means you now need to pass --shm-size 256m to the docker run or podman run command if you're using Docker or Podman, or else you'll probably encounter a bus error (the default value of --shm-size is 64m at time of writing in both Docker and Podman).

Full Changelog: v1.3.2...v2.0.0

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:785eefed5bdb01139044c034aef3cfce0838188d132d6dcd9a5f59256ff8317a

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:94865e013df743cdbc7b6a18c52bbb379c714c91cd19caf7696608faa26adb40

SHA-256 hash of container-image-determination.tar:

sha256:2cb03bb0bd9ec01dcf0b478efa06529f2c1d9143829cb910d4e38b9c542e9847

SHA-256 hash of closure-determination.tar.zst:

sha256:fc3ed2a89141acf3dadddfdcf66e97abf5a45aa51d48841ade2f7d013852e945

v1.3.2

27 Jun 21:05
e336b63
Compare
Choose a tag to compare

Updated ZynAddSubFX from 3.0.6-determinism0 to 3.0.6-determinism1 to fix nondeterministic behaviour of ZynAddSubFX at runtime. See the changes between these two ZynAddSubFX versions here: white-axe/zynaddsubfx@3.0.6-determinism0...3.0.6-determinism1.

Specifically, this fixes nondeterministic results when exporting an Ardour project containing a ZynAddSubFX instance that uses LFO in ADsynth or PADsynth with "sync" enabled, since that option causes the LFO phase to be calculated based on global time instead of time since the note started playing. The problem was that the global time for the LFO was being calculated based on the time since the synthesizer was initialized. It's now the time since the first note was played.

Full Changelog: v1.3.1...v1.3.2

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:0ef8d6806617765b05fbb0099232423bdfe2257bf0b6ff349adfe06b5c5fc41a

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:2ad4518f640d590de0771e3dce358d4e15e12354dd692610833d4e3236d8afb8

SHA-256 hash of container-image-determination.tar:

sha256:ba4e3db736cee38e2c1cfac99600d0c889f4d0a5bb0d50a3cdb332867ed2e6da

SHA-256 hash of closure-determination.tar.zst:

sha256:3588665bf1470edd3b911e042d97b54e7e879cd40407dd937cf5a3e365ebed26

v1.3.1

18 Jun 17:31
b3b7efa
Compare
Choose a tag to compare
  • Deduplicated some files that were present in more than one layer of the container image.
  • Fixed a warning about not being able to load MP3 formats that appeared every time determination-ardour-export was used.

Full Changelog: v1.3.0...v1.3.1

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:83b0c3119392e3af1f002a589398b4da144c763bdfc18bc0494d11acef681901

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:e7df57801851b175efb0489ca9414ebdd89fd66824289521aa98a33cb99fd081

SHA-256 hash of container-image-determination.tar:

sha256:efabd60a7c0daefa33b356b78c696d989646be37f86a8ac801701a83b2ab01bd

SHA-256 hash of closure-determination.tar.zst:

sha256:39ca4f548da68355ec00f894c4830d9d176204cb1e335d8d80c61bd545fd02c3

v1.3.0

31 May 21:53
f2e4824
Compare
Choose a tag to compare
  • Updated Nixpkgs from 23.11 to 24.05.
    • Also removed the additional dependency on the unstable version of Nixpkgs since Nixpkgs 24.05 has all the packages and functionality we need.
  • Updated Ardour from 8.4 to 8.6.
  • Updated Krita from 5.1.5 to 5.2.2.
  • Removed runtime dependency on GNU AWK.
  • Removed build-time dependency on KVM (Kernel-based Virtual Machine).
  • determination-ardour-export now prioritizes searching for LV2 plugins in /lib/lv2 over the paths in the LV2_PATH environment variable instead of the other way around.
  • Elaborated a little more about reproducibility in the README.

Full Changelog: v1.2.0...v1.3.0

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:6e2cd71fc08c03808e27aee085db65ae5879fe9b31742727d9bcf6d96c706c3b

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:19d51d06a6810fa0e5c0d702ecc46dd8494e6ffda081207e89fdea35866a66c1

SHA-256 hash of container-image-determination.tar:

sha256:e63e6556bdb6f2817f9ada6887e98a338947aefce3dedb1c5e45a3832dfe4f11

SHA-256 hash of closure-determination.tar.zst:

sha256:f17bc0d5f93fa5cfcd84518eb5afe074121bc8a387253bcc77ae406194d0363a

v1.2.0

21 May 02:52
ab4041e
Compare
Choose a tag to compare
  • Removed the image's runtime dependency on libcamera and pipewire, two packages that are known to have build reproducibility problems. With that, I'm confident the image now builds reproducibly, even if you build everything from source without using Nix's binary cache. Be warned that some of the image's build-time dependencies are known to not build reproducibly; only the image tarball (and the image on ghcr.io) is reproducible.
  • The PATH environment variable is now explicitly set in the image configuration and in the determination-ardour-export and determination-krita-export shell scripts instead of relying on the container runtime to provide a sane default.
  • The image now uses a custom image builder that builds a layered image, which improves development speed and the speed at which new updates to this image can be downloaded by container runtimes.

Full Changelog: v1.1.3...v1.2.0

Image digest (skopeo inspect oci-archive:container-image-determination.tar | jq -er '.Digest'):

sha256:de9293eec1bf7b69bb407aed86d669af8acca80e30bfffb5bde6161142519359

Image ID (skopeo inspect --raw oci-archive:container-image-determination.tar | jq -er '.config.digest'):

sha256:0fd0595075fdd1514cb925680dc5918dffb14c33a48ca816fdeaa5762402dffd

SHA-256 hash of container-image-determination.tar:

sha256:ce9c2c3192c3685f3c38a1ff8b6037b21533cd83ed3adf9b3679c609ce75a6fd

SHA-256 hash of closure-determination.tar.zst:

sha256:39f4099d77b3e8aa169e958458fe29adbdd118675afa6f5abaf4340276bea90b