Soundra, a free modular synthesizer

User projects written in or related to FreeBASIC.
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Soundra, a free modular synthesizer

Post by Orgie2012 »

Hi!

I'm proud to announce that my project is now online! It is a free virtual modular synthesizer (written in FreeBasic, of course). It is still in the beta stage, but it seems stable and I'm close to a final release. It is available for Windows in 32-bit and 64-bit versions.

Website: https://jimmygervais.net/soundra
Facebook page: https://facebook.com/SoundraProject

I started this project about a decade ago, but until recently, I used to work on it only a couple of weeks or months every year. What actually took way too long was building the multi-thread audio-visual platform. I started from scratch and wanted to rely to as few external libraries as possible, which is quite a utopia. Multi-threading was also quite challenging.

I'm using OpenAL-Soft for audio capture and output streaming, FreeType for printing text and icons, and I've had to come to terms with using the Windows API for MIDI and a few functionalities like detecting the number of monitors and set thread and process priority, among others. I would have loved for my code to be easily portable to Linux.

My project is in 2 parts: the code library and the software. The code library is available on the website. It consists of 5 .bas files: Basics, Math, Audio, Graphics and Music. Those are the files I reuse for any other project. I hope it can be useful to someone else so that they don't have to start from scratch. There are over 7400 lines of code in those files. I don't expect everything to be easy to understand, (not because I'm a smart, but because I don't always comment or follow "good practice", but I comment more than I used to, especially if I think the code's purpose is not obvious.) I also have no pretense as to how things should be done. Nevertheless, I've done a lot of trial and errors and performance tests to come up with the solutions that I use and that work best for me. There's obviously always room for improvement.

I would love for this project to grow, so if you have an interest in synthesizers, sound, digital signal processing, electronic music or anything related, I invite you to follow my page. As for what relates to programming, I plan to make videos explaining what's behind the software, but my priority is making tutorials and demos. More code will be released eventually too.

I've not been really active on the forum over the years, mainly because I would usually find an answer before having to post a question, and didn't really feel competent enough to answer others. Now, you're welcome to ask me questions, offer feedback, bug reports or suggestions. I'll do my best to reply.

Side note: I've sent 2 emails to the admins over the last month and got no reply yet. Maybe they're too busy, I don't know. Anyhow, thanks for the FB Christmas update!
Imortis
Moderator
Posts: 1924
Joined: Jun 02, 2005 15:10
Location: USA
Contact:

Re: Soundra, a free modular synthesizer

Post by Imortis »

That is really cool! I know absolutely nothing about any of this stuff, so my testing would be a bit of a waste. However I see that you have a tutorial up on the youtube page. I will gladly follow along with those as more come out. Look forward to seeing how this all goes.
UEZ
Posts: 988
Joined: May 05, 2017 19:59
Location: Germany

Re: Soundra, a free modular synthesizer

Post by UEZ »

Looks great. Do you have some sample files which I can load to see what the tool can do?
I am absolutely not gifted to generate music...^^

Thx.
grindstone
Posts: 862
Joined: May 05, 2015 5:35
Location: Germany

Re: Soundra, a free modular synthesizer

Post by grindstone »

What about the FB sources? They seem not to be downloadable.
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

Imortis wrote: my testing would be a bit of a waste.
I don't think so. I've tested it on 3 computers and would be glad to know if it runs as well on other configurations.
However I see that you have a tutorial up on the youtube page. I will gladly follow along with those as more come out. Look forward to seeing how this all goes.
Great! Thank you! I should find the courage to make one today.
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

UEZ wrote:Looks great.
Thank you!
UEZ wrote: Do you have some sample files which I can load to see what the tool can do?
Unfortunately I do not own any samples. The ones that I use for testing come for an old version of Ableton, so I do not own the copyrights. It would also make the package too heavy. I have limited bandwidth on my server. I'd be happy to offer links to sample packages if I find good ones.
UEZ wrote:I am absolutely not gifted to generate music...^^
Haha! I don't think you have to be to have fun and experiment. ;) I, for one, should get back to practising piano if I want to make better demos lol

Thanks for your interest :)
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

grindstone wrote:What about the FB sources? They seem not to be downloadable.
They are for the code libraries I've build, which I've lazily called JiGsaw. (My initial are JG and wanted a nice sounding name for the package) That's a good start I believe. As I said, there are 5 files that include over 7400 lines of code.

I'm not ready to upload the whole software code. As soon as the final release of Soundra is ready, I'll see what I feel comfortable uploading, but I'd rather make a video series explaining key elements and then, uploading the files. I do not have the resources to protect my project otherwise. Soundra is all I have. Open Source is great, but from my point of view, that's not always the best option. I'm open to discussion about that.
Dr_D
Posts: 2451
Joined: May 27, 2005 4:59
Contact:

Re: Soundra, a free modular synthesizer

Post by Dr_D »

Hey, this looks really cool, but I'm not sure how to use it. Do you have any other tutorials besides the one on your youtube page? I have some FB projects that I'd like to make oldschool music/sfx for, and I think it would be awesome to use a FB project to do it... I just don't really know where to begin. I never did use any trackers or anything like that, so I really have no clue what I'm doing. Thanks.
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

Dr_D wrote:Hey, this looks really cool, but I'm not sure how to use it. Do you have any other tutorials besides the one on your youtube page?
Hi! Not yet, but it's coming ASAP. I recorded the second tutorial yesterday, but I was not satisfied with the result. Good practice though.
Dr_D wrote:I have some FB projects that I'd like to make oldschool music/sfx for, and I think it would be awesome to use a FB project to do it... I just don't really know where to begin.
Nice! What kind of projects?
Dr_D wrote:I never did use any trackers or anything like that, so I really have no clue what I'm doing. Thanks
What do you mean by trackers? Track editors?

Quick guide:
When you hover the mouse cursor over any control, its function will be displayed in the bar at the top right, so you can explore the interface and get your bearings.
Soundra is a modular synth, so you basically add modules from the catalog and interconnect them however you want by clicking on an input and then on an output, and vice versa. Repeat to disconnect. Feedback is supported. To connect a module to the synth output, click its output and then click the speaker button on the map. Clicking that button first disconnects the synth. The color of the connection indicates if the module is receiving sound or frequencies. Blue modules can output both, depending on what type of input you're connecting it to. When you select a module, its parameters are shown and can be adjusted, either as mono of stereo. Once connected, the value you set for the input won't affect the module except for volumes.
For the synth to play, the playback must be turned on with the power button at the top. You can choose your input and output devices in the settings. Buffersize will be chosen automatically after detecting buffer overruns, but can be adjusted manually.
You can connect a MIDI controller via USB and it will detect it and connect to it automatically. To associate a MIDI control, select what parameter you want to control, click one of the 3 MIDI buttons and use the control. The MIDI button will turn off meaning it's associated the control. That MIDI map will be saved in your synth file.
Since not everybody has a MIDI keyboard, I'll add a key editor in the next version.

Hope that helps! Thank you for your interest!
Dr_D
Posts: 2451
Joined: May 27, 2005 4:59
Contact:

Re: Soundra, a free modular synthesizer

Post by Dr_D »

Well... I guess they were called mod trackers? Normally, I use a program called Fruity Loops to make my game music. It's not exactly a mod tracker I guess, but you can place notes, add drum beats, reverb, etc... Maybe I'm confused, but does your program have these capabilities? As far as my projects go, I have quite a few. I just think it would be cool to use a FB project to make music for other FB projects. lol
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

Dr_D wrote:Well... I guess they were called mod trackers? Normally, I use a program called Fruity Loops to make my game music. It's not exactly a mod tracker I guess, but you can place notes, add drum beats, reverb, etc... Maybe I'm confused, but does your program have these capabilities?
I see! No it's very different from Fruity Loop. You can make beats though. I've been thinking about how I could design a function to facilitate that. Clicking boxes sure is a quick way lol There will be something in the next version without a doubt. For now, you can use the keyboard and the sequencer, or use an oscillator (or any signal) to trigger the sample.

There is a reverb module. The available effects are Delay, Reverb, Convolutive Filter with resonance (I've just designed a new fast filter and I hope it'll work :D ), Level which you can use for overdrive, and an Envelope follower. You can also control the balance to create spatial effects.
Dr_D wrote:As far as my projects go, I have quite a few. I just think it would be cool to use a FB project to make music for other FB projects. lol
I agree :D
DamageX
Posts: 130
Joined: Nov 21, 2009 8:42

Re: Soundra, a free modular synthesizer

Post by DamageX »

Just FYI, I tried out this program on Windows 2000 (w/ extended kernel). It took me a while to figure out that you have to click the 'copy' button to add a module. Then I connected a couple sawtooth waves and a keyboard input and played some notes. No problems so far. Then I clicked on 'new synth file' and it crashed. But when I loaded the program again with a debugger I couldn't reproduce the crash. *shrugs*
Unfortunately I do not own any samples. The ones that I use for testing come for an old version of Ableton, so I do not own the copyrights. It would also make the package too heavy. I have limited bandwidth on my server. I'd be happy to offer links to sample packages if I find good ones.
Amiga soundtracker sample packs were released with a public domain license. They are mostly 8-bit 8KHz but maybe you could find some useful examples within: https://archive.org/details/AmigaSTXX
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

DamageX wrote:Just FYI, I tried out this program on Windows 2000 (w/ extended kernel).
Thanks for trying it out! I didn't expect it to work on Windows 2000! Did you try the 32-bit or 64-bit version of Soundra?
DamageX wrote:It took me a while to figure out that you have to click the 'copy' button to add a module.
Actually, it works with both the 'copy' and 'load' buttons.
DamageX wrote:Then I connected a couple sawtooth waves and a keyboard input and played some notes. No problems so far. Then I clicked on 'new synth file' and it crashed. But when I loaded the program again with a debugger I couldn't reproduce the crash. *shrugs*.
Damn! Unreproducible bugs are the worst ... What version are you're using? I've been updating the package about twice a week. I've set the version format as 1.0.date for simplicity. It puzzles me that it would crash on that action, but I'll keep that in mind. Do you remember if the synth was connected and active? Did you notice which list was visible? (like 'catalog' or 'messages')

I'm amazed that sometimes, an error that should cause an issue doesn't ... until it does?! Like I use a list of MIDI device names that have a fixed length of 128 characters, which were initialized to 128 spaces (I shouldn't have done that), so that when Soundra's looking for a free slot and checks if device_name = "", it returns false ... but it used to return true. I still don't understand what changed. Compiled hundreds of times, always worked. Then someday I recompile and it doesn't anymore. I've corrected my mistake of course, but in fact, it should never have worked. I have the habit of trimming strings just to be safe and this time I forgot.
Unfortunately I do not own any samples. The ones that I use for testing come for an old version of Ableton, so I do not own the copyrights. It would also make the package too heavy. I have limited bandwidth on my server. I'd be happy to offer links to sample packages if I find good ones.
DamageX wrote:Amiga soundtracker sample packs were released with a public domain license. They are mostly 8-bit 8KHz but maybe you could find some useful examples within: https://archive.org/details/AmigaSTXX
That's cool! Thanks for the tip.
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

DamageX wrote:But when I loaded the program again with a debugger I couldn't reproduce the crash. *shrugs*
I've just successfully reproduced the crash! I'll be investigating the issue as a priority. Thank you again :)

Edit: it doesn't crash every time so it's pretty hard to pinpoint where it fails, but clearly it must be after all the modules are deleted since they disappear from the work plane. What's the debugger you use? I've never used any so I'm not familiar with that.
Orgie2012
Posts: 13
Joined: Dec 12, 2011 0:58
Location: Canada
Contact:

Re: Soundra, a free modular synthesizer

Post by Orgie2012 »

DamageX wrote: I clicked on 'new synth file' and it crashed.
I've just updated the software. The issue seems to be resolved, but only time will tell for sure. For now, I've ran lots of tests with no crash. Thank you for having notified me! Multi-threading really was my biggest challenge in this project...

I've also made available 2 more source files that are unlikely to change.
Post Reply