Category Archives: Apple and OSX

AlgoRhythmia Now Available for OSX

AlgoRhythmia was my first “complex” desktop app. By complex I mean difficult to build and with a deep interface that could be explored and tinkered with extensively.

It’s a drum machine that can generate random beats. It can also “mutate” existing beats and cause them to change over time.

This is the windows version, but the macOS version looks identical.

It started as a Windows app. It used DirectX, a very Windows-centric audio engine. Because of this, I never tried to build a version for another operating system. Well, now I have. And it is available for OSX.

You can get it here.

DrumPads Released for OSX

DrumPads is an app with 12 virtual drum pads that lets you use the keyboard, mouse, touchscreen, or an external MIDI device to play any of 100 high-quality drum sounds.

DrumPads for Windows. Looks identical on OSX.

It started as a webOS app. It was later ported to Ubuntu and sold via the Ubuntu Store. Then ported to Windows and ended up becoming my most popular app with 330,000 downloads of the free version. I spent some time porting it to OSX a while back, but never had a version in the App Store.

Now I do.

You can get it here.

Proxima Controller Released for macOS via the App Store

I just released my virtual MIDI controller app Proxima Controller for macOS via the App Store. It’s something that I ported to OSX a while ago but never posted to the app store.

It lets you use your mouse, touchscreen, or keyboard keys to play a virtual MIDI controller that can be used to control external devices such as drum machines, synthesizers, or samplers.

You can get it here.

And if you want the Windows version you can get it here.

SpaceTheremin and MIDIPlayer Available for macOS Again

Over the years I’ve struggled mightily with OSX development. It’s just hard if you want to do things your way. It’s far easier if you use Apple’s choice of tools and languages.

Since most of what I’ve worked on for Apple computers has been apps ported from Windows or Linux, there really hasn’t been the option of starting with their way of doing things in mind at the beginning.

Last time I was working on building things for the App Store, I had eight apps I was trying to publish. I only ended up getting two released before I gave up in frustration. Those two were SpaceTheremin and MIDIPlayer.

Well, given my lack of enthusiasm, it’s no surprise that I let my developer subscription lapse. A lot of people wonder what happens when you let your subscription expire but then renew it later (around two years later in my case). Well, your apps disappear from the app store but stay installed wherever people already have them. And when you renew, they magically reappear like they never disappeared without needing to be reviewed again, and any apps in progress will be exactly as you left them.

That’s the case with SpaceTheremin and MIDIPlayer, which are now both available for macOS again.

Here’s SpaceTheremin.

Here’s MIDIPlayer.

I also have some things that have made it farther than before that you should expect to be released in the near future.

Menu Bar with Quit for a wxDialog or wxFrame-based app on OSX

I have some apps that I’ve tried porting to OSX off an on over the years, but some of them have never been quite right.

They’re written with wxWidgets, which is a multiplatform application development toolkit. However, documentation and fine details for macOS specifics is generally lacking.

For instance, I had an ongoing problem with making the “Quit” function in a menu work in a single-dialog application based on the wxDialog class. I originally asked the question on the forums back in 2011:

I have a wxDialog-based application on OSX that shows a single modal dialog window.

My understanding is that a dialog-based app cannot have a menu bar. However, I do get the default system menu bar on the app.

The Cmd-Q option (Quit) shows up on the default system menu bar, but it is grayed out. How can I modify my app to bind to that Cmd-Q option so I can treat it the same as clicking the red button at the top right of my dialog (which exits the app)?

The original post is here.

The answer from Tierra about switching to a wxFrame instead of a wxDialog was a part of the puzzle (thank you!), but the quit item still didn’t work. Once I had a wxFrame I could then attach the default menu items (in the constructor where all the dialog controls are being created):

wxMenu* helpMenu = new wxMenu();
helpMenu->Append(wxID_HELP);
helpMenu->Append(wxID_ABOUT);
wxMenuBar* menuBar = new wxMenuBar();
menuBar->Append( helpMenu, "&Help" );
SetMenuBar(menuBar);

I also had to connect those buttons to my functions in the event table (my dialog class is called wxKeyboard):

EVT_MENU( wxID_EXIT, wxKeyboard::OnExit )
EVT_MENU( wxID_ABOUT, wxKeyboard::OnInfo )
EVT_MENU( wxID_HELP, wxKeyboard::OnHelp )

Once that was done, I had an about menu item, a help menu item, and the quit item magically appeared and worked as intended. In addition, the “About” menu entry appeared under the application menu and not the help menu, but I had to add it to a menu in order for it to show up.

Proxima Controller, a Virtual MIDI Controller

Back in 2008 I created an app called Proxima Controller. It’s a virtual MIDI controller that runs on Windows, OSX, and Linux.

I wanted an easy way to control external MIDI hardware (synthesizers, etc.) from my PC and there wasn’t an app that I liked available.

It started out as a Windows-only app. A few years later I ported it to Linux. And last year I ported it to OSX (but didn’t release it via the app store).

It’s been one of my more popular apps, with more than 70,000 downloads. I’m glad people have found it useful. It certainly made it easier for me to test sounds on my rackmount audio equipment without needing to shuffle full-sized MIDI keyboards around.

When I have time I’d also like to add an X-Y controller pad, something that can be used to transmit the same controller messages as the joystick on the Korg Wavestation and the Yamaha SY22/SY35/TG33.

You can get it here.