My First App: How I built BitSynth

My First App: How I built BitSynth

  • Comments 10
  • Likes

[People create apps for lots of different reasons. For some, it’s serious business. Others do it as a hobby, the big kid equivalent of building Legos. A few folks even make them for the same reason they run a marathon—just to prove they can. Have a first Windows Phone app you’re proud of? Email us about it (include “My First App” in the subject) and maybe we’ll spotlight your app and story next. –ed.]

I love making things, particularly things related to music. As an electronic musician, there’s nothing I enjoy more than building my own, weird instruments—circuit-bent keyboards, modified Game Boys, what have you—then watching them come to life in a song. It’s a strange hobby, I know. But I’m passionate about it, and it’s brought me many hours of enjoyment.

A few months ago, after noticing a lack of 8-bit synthesizer apps for Windows Phone (not surprising, given their niche appeal), I felt inspired to try and make my own. I’d never built an app before. Could I really do it? I had very little programming experience, and the few times I’d tried to learn in the past, it didn’t go so well. But I started sketching out some ideas anyway, and before I knew it, I was hopelessly attached to the idea. There was no turning back. It simply had to be built, and I had to figure out how to do it.

Reality bytes

At the beginning, I dreamt big. I wanted to create an epic synthesizer app. It would have a dozen or so preset sounds, a range of at least three octaves, tons of knobs and sliders to adjust every imaginable parameter, recording, sampling, accelerometer control…the works.

Sketch of BitSynth
Back of the napkin: Before sitting down at my PC, I made this little sketch of my future app.

But as it turns out, building an app takes time—particularly if you’re like me and have no idea what you’re doing. It quickly became clear that if I ever wanted my app to see the light of day, I would need to scale it back considerably.

So I simplified. I decided to focus on just a few features, and try to make those features awesome. For the keyboard, I created three simple sounds on my Game Boy and recorded each note as an individual WAV file. (That’s one note per sound, per key, which—as you’ll see below—equates to quite a few WAV files!) These samples would become the building blocks for my app. Press a key, and a sample plays.

BitSynth sound files

Old school grooves: I used my vintage Game Boy to record the sounds I ultimately used in my app.

Adventures in programming

A few months—and lots of confusing questions and cups of coffee later—I actually finished and published my first (and only) app. It’s written in the programming language XNA and called BitSynth. (Why that name? I just thought it sounded cool.)

BitSynth 1.0 was pretty stripped down compared to my original vision. It had just three different sounds, across a one-and-a-half octave keyboard. But I found that once I had the framework in place, it was a lot easier to add features to my app. So I kept working on it, and in another month or so, I published BitSynth 2.0, which is closer to what I had originally intended.

The latest version lets you switch between four sounds, play across almost three octaves, choose whether you want a sound to play briefly or continuously when you tap a key. It even uses the phone’s built-in accelerometer for some awesome special effects. Download it and give it a try.

You might be wondering: Can anyone build an app? I now believe the answer is yes, although it started an interesting discussion with my wife, who initially disagreed. She’s pretty smart—a lot smarter than me, honestly—but she hates math. She just couldn’t fathom that someone with an aversion to numbers could ever in a million years program anything. It’s true that math skills are important to programming—particularly if you want to build a game (which I’m hoping to do someday).

How the finished BitSynth looks

8-bit heaven: : Here’s what the finished version of BitSynth looks like.

But there’s still a lot you can do. I hear stories all the time of young kids building amazing apps. I’m no math expert myself—and definitely no young kid—but I think part of the reason I was able to finish this project is because there really are great tools and resources out there for people of all different skill levels (like these videos).

That’s not to say that learning how to program will come easy for everyone—it definitely didn’t for me. Building BitSynth took a lot longer than I expected, and in the end, I had to scale down my ideas considerably. I hit roadblocks, and more than once I had to ask a programmer friend for help. I even had to start over from scratch at one point.

Still, I finished it. More importantly, I had fun the entire time and learned a lot.

7000 downloads and counting

My download stats

So how did the world react? As of this writing, BitSynth has been downloaded over 7,000 times. I have a blast checking the Windows Phone Dev Center every week or so to see the latest stats and comments on my app from across the globe. It’s crazy to think that anyone can get on the Internet, download some free tools, and create something that thousands of people around the world use each day.

Programming an app was a stretch for me, just like writing a song might seem like a stretch for a professional programmer. But it’s good to step out of your comfort zone and try new things. I’m glad I did.

Have any questions for Andy? He’s happy to answer them in comments.

10 Comments
You must be logged in to comment. Sign in or Join Now
  • Rik
    0 Posts

    Love Bitsynth and it has given me an incentive to start learning programming my Windows 8 Phone :) Thanks :)

  • tutati
    0 Posts

    I made this account so that I could comment here and say that this was such an inspiring article. Im also a beginner and I'm struggling with an application. However, this article just gave me the strength to keep pushing forward! thanks :)

  • @djmikebrady Thanks! I appreciate that.

    @apper Yes, I built this app in Visual Studio 2010. I started out in Silverlight, but eventually switched over to XNA. However, I'm really glad I started with Silverlight. It's a lot easier for beginners, I think. I read two different books during this process--one focused on Silverlight, then another on XNA--but I didn't wait to start building the app. I just jumped right in, and learned as I went along. I'm planning to cover more of these details in a follow-up post... stay tuned!

  • @ djmike

    Funny that they made that post because I sent WPCentral a email yesterday asking them if they had any information about AV out in WP8. I wonder if that email encouraged them to make that post.. Oh well, I guess we'll just have to wait until September 5 to find out more about WP8.... So at this event are they going to outline more WP8 features, and reveal some new Nokia devices? I don't know, but that sounds a little to good to be true. Thats a awful lot to hit the tech world with in one day.. Maybe that's the plan.

    Either way, I just can't wait to see what's going to happen on 9/5!!!

  • Well Rodney, looky here!

    www.wpcentral.com/developer-investigates-video-out-windows-phone

  • I haven't heard anything about that either, Rodney...  It's not a big deal for me personally, but I completely agree that at this point in the Smartphone game, it should be a given, like a front facing camera, and BEING ABLE TO CONNECT TO MICROSOFT EXCHANGE SERVERS, EVEN WHEN ENCRYPTION IS REQUIRED.

    Hopefully my next phone will be wp8, but after taking a chance on wp7/7.5/7.8 because of the great UI, while being fully aware that there were things that weren't "done" yet, and nearly two years later, STILL finding those things not "done" I don't think I'm willing to take that same chance again on my next phone.  At least the wait is almost over before we start seeing actual devices roll out with the actual software.

    Of course, my moving to wp8 will also  hinge on Sprint picking up an actual wp8 device...  so I guess it's a good thing I'm not in a hurry, and my current contract isn't up until next March...

  • @ djmike and anybody else WTMC

    One thing that I noticed thats missing from all this WP8 talk is the ability for new devices to have AV out, or HDMI out. HDMI out is something that's really important to me, and I think that in order for WP8 devices to be seriously competitive with Android they must have some type of HDMI out.

    Not that the rumored Nokia Phi device is positively final hardware, but the leaked pictures don't show an HDMI out slot. Could it be that WP devices will use the USB slot for HDMI with a adapter cable? I hope there will be some solution. Does anybody have any information on this subject??

  • apper
    1 Posts

    Did U create this app through Visual Studio 2010? How long it took to learn? I am beginner, I want to create a simple app of images n sound, like someone click on animal pics It will sound, so how do i add images and sound behind it?

  • I downloaded BitSynth a few months ago, and love playing around with it!  Now that I know what went into it, I love it even more - thanks for sharing!!