Skip to content

LeStahL/sointu-executable-msx

Repository files navigation

sointu-executable-msx

Easy-to-use tool to create executable music using Sointu (https://github.com/vsariola/sointu).

It downloads nasm, Crinkler and Sointu automatically and runs them to generate an executable from Sointu track YAML files. For this purpose, it contains a small x86 assembly player and wav writer.

Prequisites

You need a recent version of the Windows SDK installed. This can be achieved by installing either Visual Studio or MSVC build tools, and enabling the "Windows 10 SDK" workload in the installer.

Usage

usage: sointu-executable-msx [-h] [-b,--brutal] [-n,--nfo NFO] [-d,--delay DELAY] [-s,--sointu-compile SOINTUCOMPILE]
                             [-4,--4klang FOURKLANG] [--sample-type {float,pcm}] [--channel-count CHANNELCOUNT]
                             [--sample-size SAMPLESIZE]
                             input

Easy-to-use tool to create executable music using Sointu.

positional arguments:
  input                 Track file to compile.

options:
  -h, --help            show this help message and exit
  -b,--brutal           Use brutal Crinkler settings (takes much longer, but executable will be smaller).
  -n,--nfo NFO          Add a NFO to the release archive.
  -d,--delay DELAY      Add a delay in ms before starting to play the track (useful for computationally heavy tracks).
  -s,--sointu-compile SOINTUCOMPILE
                        Override the sointu-compile executable to use.
  -4,--4klang FOURKLANG
                        Use this 4klang.asm to pack a 4klang track.
  --sample-type {float,pcm}
                        Enforce the sample type for 4klang builds.
  --channel-count CHANNELCOUNT
                        Enforce channel count for 4klang builds.
  --sample-size SAMPLESIZE
                        Enforce sample size for 4klang builds.

Examples

For packing Sointu track example.yml into an executable, use sointuexemsx example.yml.

For packing a 4klang track file 4klang.inc using the 4klang version 4klang.asm into an executable, use sointuexemsx 4klang.inc -4 4klang.asm.

Build

Download and install Python 3.11 with pip (The official binary installer should do this).

Use pip to install poetry: python -m pip install poetry. Make sure that the Scripts subfolder of your Python installation is added to the system PATH. Then install the dependencies by running poetry install.

You can now debug the software using poetry: poetry run python -m sointuexemsx -h.

If you want to build the executable binary, do this by running poetry run pyinstaller pyinstaller.spec. The binary and release zip archive will be created in the dist/ subfolder of the repository.

Licenses

This program is (c) 2023 Alexander Kraus nr4@z10.info and licensed under GPLv3; see LICENSE for details. It downloads and uses (but does not repackage):