First Proof of Concept Complete
As previously mentioned, I've been working on a simple proof of concept for cross platform audio application development. I've just completed this. It's simply a sine wave player. Press the play button and it plays a sine wave tone that can be adjusted in realtime with a slider control.
A trvial and simple application? Yes. But behind the scenes is a well layed out framework for a consistent UI look across all platfroms (Mac, Linux and Windows). This can be seen in the screenshots below.
The audio support is consistent across all platforms as well. I have a high level of confidence in both of these frameworks serving as an excellent foundation for building more complex, interesting and useful audio software applications.
As mentioned in the earlier blog post, I'm really pleased with how well the design has worked out. In that post I mentioned how I implemented the bridge pattern very similar to how it's used in the classic software engineering book Design Patterns.
I originally did a lot of the development work in Linux (mainly Lubuntu). Moving it to OS X and Windows was mostly a matter of simply filling out concrete implementations necesssary for those operating system UI and audio particulars. After doing this, it "just worked" on these OS's. As Bertrand Meyer and Bob Martin say, "design your interfaces open for extension, but closed for modification". Pretty awesome.
If you're interested in giving the Sine Player a try yourself on your favorite OS please feel free to download any of the three installers below. They're all 64 bit builds and have been tested on OS X (El Capitan), Ubuntu and Lubuntu Linux distros, and multiple versions of Windows.
Keep in mind that this is just a proof of concept and not designed to be an actual product. However, I have found it a bit entertaining to use to make fake electric guitar feedback sounds.