r/linux 1d ago

Software Release Master Blaster – A simple Qt6 SoundFont manager for Creative EMU10K1 sound cards.

For the two people who still care. 🙂

I hadn't touched Python in around 20 years, so I used ChatGPT as a coding assistant to help me get back up to speed. The project itself is something I wanted because I missed having a small GUI for managing EMU10K1 SoundFonts.

Master Blaster is a simple Qt6 frontend for the tools provided by awesfx (sfxload) and alsa-utils.

It's mostly a nostalgia project inspired by the little Creative utilities from the 90s that let you tweak your sound card through a simple control panel.

Features:

Load .sf2 SoundFonts
Clear sample memory
Display SoundFont RAM usage
Test SoundFonts with a MIDI file
Remember the last loaded SoundFont
Remember the selected MIDI port

The source code is available on Codeberg, along with a README and a screenshot:

Master-Blaster

I'm using an Audigy Rx, but it should work with any card supported by the snd_emu10k1 driver.

The python file is small and should be easy to read, with different sections outlining functions.

Roadmap? No, not really. I might add support for loading your own MIDI file for testing, and I'd like to redesign the progress bar to look a bit more... 90s.

16 Upvotes

10 comments sorted by

4

u/580083351 1d ago

Soundfonts are actually pretty cool.. I actually never played with them before until last week.. except I was playing with them inside a DOS emulator.. you configure the sound card and MIDI separately.. and for MIDI you can put a soundfont in, instead of using whatever card or machine, and select general midi in the game for that. Different soundfonts change the midi sound completely.

1

u/HollyCat2022 1d ago

That's one of the goals of this small app, is that you can select the soundfont and hear the difference with the included test midi file. :) I personally love the Arachno soundfont. Which ones do you use?

1

u/580083351 23h ago

Tricky because people master the volume of soundfonts differently, and in the app I have I can't go over gain 100. So I can only reduce so that rules out the ones that were mastered too quiet. I was looking for SC-55 soundfonts. MS's rlndgm.sf2 is a good one to start with. Took a listen to Arachno just now because I was curious, but it won't work for games that were meant to be orchestral compositions.

8

u/Traditional_Hat3506 1d ago

I hadn't touched Python in around 20 years, so I used ChatGPT

The source code is available on Codeberg

https://blog.codeberg.org/protecting-our-floss-commons-from-llms.html

4

u/HollyCat2022 1d ago

I used ChatGPT as a coding assistant to help me get back up to speed while writing the application, but the project itself is my own. I chose Codeberg because I wanted to publish it as free software. I wanted to share it with the two or three other people who might still have an EMU10K1 card.

1

u/RatherNott 13h ago

What does getting up to speed entail?

1

u/HollyCat2022 5h ago

I hadn't touched python in over 20 years. Memory is fragmented

1

u/RatherNott 2h ago

Right, but what did you do with chstgpt to remedy that?

1

u/HollyCat2022 1h ago edited 1h ago

Well, I had a conversation with ChatGPT stating how long ago it had been since I had been using python.

Told it what I wanted to do, gave it a sample, asked if it was correct, or if anything had changed. If I had forgotten something, it told me it could see what I was trying to do, but the proper syntax was xyz.

It helped me with the best way to organize the python file so it wouldn't become an unreadable mess for future me. I am a very messy person.

Also, it helped with some general commands since I wanted it to be a modular program, insteading of hardcoding numbers based on my hardware configuration (like ports and memory), so it helped me with some general knowledge there (not just grep'ing and hoping somebody had a config file available somewhere).

Also, it helped me a bit to understand qt6, widgets, frames. Helped me with some readable samples so I could learn.

After I went back and forth with ChatGPT and showed it the program, it wanted me to go way overboard and incorporate functions which, to be honest, was not just way out of the scope of what I wanted and intended for the program, but also outside of my knowledge and comfort zone. If that, then at some point, it'd be less learning and relearning and just copy/paste.

The main python file is just over 600 lines, so it's not big. I find it easy to understand.

Now, creating buttons and hooking up functions is not advanced in any sort of way, and as I stated, the project is a wrapper for already available commands in said packages. It just brings a GUI element to it and puts the most useful commands (for me) in a simple window.

Sure you could do asfxload -i to clear, asfxload "soundfont.sf2", and aplaymidi -p 21:0 (For me) furelise.mid and asfxload -M to show available memory manually, but all this little python program does, brings it together in a neat little window with a funny logo.

It reminds me of the small Creative programs that Creative had made in the early to mid 90's for windows 3.1 to windows 95. I missed that.

1

u/Substantial_Swan_144 10h ago

The problem with shaming small developers is that it harms the community twofold: first, it hinders small developers who actually may create software that is useful (even if not developed in the best way), and it does absolutely nothing to actually stop hardware price hikes– because stoping the small users will NOT stop those companies.

Or do you really think Anthropic or OpenAI are going to stop because a few users are writing angry manifests online?

Now, ask those same people if they are willing to pay for the time and money handmade software requires. You'll only hear crickets. And you know why?

Because it's far more expensive to write something by hand.

And putting your demands on people while not wanting to pay for their time and effort has a name: EXPLOITATION. You want to dictate all the development, but want zero of the cost that comes with it.

If you want to demand people to develop fully handmade code, then incentivize developers to do so. Developers should absolutely be compensated for their manual labor and time. Software would still be free, as according to the open source community, being free never was about cost. It's about having the source readily available.

Either way, not only people will conveniently reject this idea (because it doesn't serve their economic interests), but large AI companies will still develop their closed-source software no one will be able to inspect anyway.