Aurélien Gâteau

SFXR-Qt 1.4.0 is out!

written on Friday, January 14, 2022

SFXR-Qt screenshot

Last release of SFXR-Qt was in September 2019. I kept using it for Pixel Wheels, it had its quirks and bugs but I did not have the time and motivation to work on it, so the poor app was left on its own for more than two years.

Fast forward to November 2021: SFXR-Qt was added to Debian! It always feels good to see an app getting more widespread, with the minor issue that I learned about it because tests did not pass on big-endian machines... Working on that bug was a bit frustrating because I do not own a big-endian machine and failed to setup a working big-endian VM to test my changes on, but after a few blind fixes I eventually got it fixed. Kudos to Alex Myczko, the bug reporter, for the responsiveness in testing my changes.

Entering Debian probably gave a bit more exposure to the app, because I then received a bug report for that crash I had known for a long time but never got to fix... Now that someone else reported it, I finally fixed it.

Then I received a nice pull request from Linus Vanas implementing command-line export. After a few iterations it got merged, so you can now export sounds from your terminal:

$ sfxr-qt --export tests/fixtures/synthesizer/input/power-up.sfxj --help
Usage: sfxr-qt [options] sound_file

Options:
  -h, --help           Displays this help.
  -v, --version        Displays version information.
  --export             Creates a wav file from the given SFXR file and exits.
  -o, --output <path>  Specifies the path for the file created with --export.
  -b, --bits <number>  Specifies the bits per sample for the wav file created
                       with --export. Supported values are 8 and 16.
  -r, --rate <number>  Specifies the samplerate for the wav file created with
                       --export. Supported values are 22050 and 44100.

Arguments:
  sound_file           File to load.

$ sfxr-qt --export --bits 16 --rate 44100 --output power-up.wav power-up.sfxj

$ mediainfo power-up.wav
General
Complete name                            : power-up.wav
Format                                   : Wave
File size                                : 46.9 KiB
Duration                                 : 544 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 706 kb/s

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 544 ms
Bit rate mode                            : Constant
Bit rate                                 : 705.6 kb/s
Channel(s)                               : 1 channel
Sampling rate                            : 44.1 kHz
Bit depth                                : 16 bits
Stream size                              : 46.9 KiB (100%)

I also made some infrastructure improvements, mainly aligning the project structure with the way cookiecutter-qt-app generates projects, so that future improvements to the cookiecutter can be applied to SFXR-Qt as well.

Finally SFXR-Qt gained a "Randomize" button, based on the same feature from the original SFXR.

That's it for this release, sources are available here. There are also deb and rpm packages on the release page. I hope you enjoy creating fun retro sound effects with SFXR-Qt!

This post was tagged gamedev, pko, qt and sfxr-qt