Open Source Synthesizer Audio Unit

Apple APIs and Mac audio software development
Post Reply
zibba
Posts: 8
Joined: 30 Jul 2007, 17:41

Open Source Synthesizer Audio Unit

Post by zibba » 05 Aug 2007, 02:43

Hi

Following from my first post last week, here is the second. I'm open sourcing a project I started earlier this year.

The Rham is a virtual analogue synthesizer in Audio Unit format. It models a wave table based dual-oscillator subtractive synthesizer. Several presets are also included.

The project started in April as a port of the Linux amSynth to Apple's Audio Unit format. It began with the Developer Tool's example SinSynth (hence the Xcode project name) and then grew to incorporate the wave tables from MonoWave II, a Moog style filter and a valve distortion unit from SonicBirth.

I wanted to write a nice Cocoa user interface but ran out of time, so it's now open source. Perhaps someone else will be willing. I use Plastic SCM to do source code management. If you'd like to contribute contact me and I'll accept your source changes in their entirety (no patches or diffs or strange CVS-ness) to build a new binary distribution.

Get the universal binary version and source code here:

http://www.twofloorsrecords.com/?page_id=74

cheers
peter

jackbyrnes
Posts: 7
Joined: 12 Aug 2007, 21:12

Post by jackbyrnes » 12 Aug 2007, 22:27

Hi Peter,

Just an idea, don't kill me.

Since you thought about releasing this as open source, what about making a project for it on, lets say sourceforge?

I'm sure you'd benefit from the tools there, and you could also make a "request for help".

Just think it'd give your project a bit more exposure that's all.

zibba
Posts: 8
Joined: 30 Jul 2007, 17:41

Post by zibba » 13 Aug 2007, 17:10

Hi, yeah you might be right, I'll look in to it. thanks

Kent Sandvik
Posts: 1094
Joined: 16 Sep 2003, 14:29
Twitter: kentsandvik
Location: N 37 17.244 W 121 59.510 Elev 201ft!
Contact:

Post by Kent Sandvik » 13 Aug 2007, 22:59

jackbyrnes wrote:Hi Peter,

Just an idea, don't kill me.

Since you thought about releasing this as open source, what about making a project for it on, lets say sourceforge?

I'm sure you'd benefit from the tools there, and you could also make a "request for help".

Just think it'd give your project a bit more exposure that's all.
Yes, I second that. Sourceforge is sometimes a little bit slow, but it's free, and most developers know how to use it, so you get more developers interested in the project if you place it on SoundForge. Hey, I might also take a look at it then! --Kent

zibba
Posts: 8
Joined: 30 Jul 2007, 17:41

Post by zibba » 16 Aug 2007, 03:33

Hi Kent

I've made a SourceForge project and uploaded the source code. The repository is working. Here's the page: http://sourceforge.net/projects/rhamsynth/

Please feel free to take a look.

cheers
peter

aaaidan
Posts: 3
Joined: 11 Apr 2008, 03:39
Location: Dunedin, NZ

no worky worky?

Post by aaaidan » 11 Apr 2008, 04:17

Hi Peter/zibba + all,

That's totally awesome. I signed up to say hi, and thank you for releasing rham, instead of letting its utility fade over the years. From what you've mentioned, it seems like it could be an excellent performance tool, as well as a helpful codebase to learn and steal from.

However... (here it comes)

I just checked out the CVS you set up (thanks, btw), and fired it up in Xcode. I can build it just fine, but none of my hosts (Live 6, Garageband 4) can get a squeak out of it. The default Xcode AU instrument project creates sound.

Frankly, I'm a bit of a noob with Xcode and AU coding. Could you (or anyone) suggest how best to debug an AU instrument? I was naïvely hoping that I could attach the debugger to the host process. I see DebugPrintf, but don't know what the std out is in the context of my hosts.

(Codebase looks tidy. Well done!)

Cheers,
Aidan

zibba
Posts: 8
Joined: 30 Jul 2007, 17:41

Post by zibba » 17 Apr 2008, 01:22

hi aidan,

thanks. it started as a port of amSynth and my intention was be just that: a code base for others to learn and steal from. i also made a few tweaks to the original amSynth DSP code but that was more of a learning exercise on my part.

i'll check into it. i've not looked at it for a while. i think i've only tried it with logic 8. i'll see if garageband can load it and can get back to you.

AU's can be tricky to debug. basically you have to create a custom executable in the xcode project and set that to AULab or garageband. then when you hit 'build and go' within xcode, the AULab app will start up. you then add your AU to a track which loads it into memory and xcode will recognise it's existence so you can start debugging.

there was a discussion recently on the core audio mailing list about how to get breakpoints to work. it starts here: http://lists.apple.com/archives/coreaud ... 00288.html

cheers
zib

zibba
Posts: 8
Joined: 30 Jul 2007, 17:41

Post by zibba » 17 Apr 2008, 06:05

hi

ok i think i've fixed the problem. i was overloading AUInstrumentBase::StartNote in the class SinSynth, but the signature has changed in Mac OS X 10.5, so it wasn't getting overloaded, hence no midi note on messages, hence no sound.

i checked the updated SinSynth.cpp into the sourceforge cvs.

cheers
zib

aaaidan
Posts: 3
Joined: 11 Apr 2008, 03:39
Location: Dunedin, NZ

Post by aaaidan » 26 Apr 2008, 03:00

Excellent. Will checkout! (in two senses of the verb)

Post Reply