I implemented ability to delete a selection, save, and playback audio with PortAudio.

At this point I had been using the default Unity Ubuntu user interface. I noticed that when vsync is on,
switching to another window or switching back was really laggy. This sucks.
I filed a bug for that, and then switched to
XFCE where I am now much happier, and the lag is gone.

I have some complaints about PortAudio. First of all, it spits out a bunch of garbage to stderr
that you can't do anything about. So I'm already biased against it. Secondly it does not give you
the low level control that you need for a DAW application. For example it doesn't have PulseAudio
support so I'm accessing the sound driver via Genesis to PortAudio to PulseAudio ALSA Wrapper
to PulseAudio to ALSA. And finally, I'm getting some crashes, and my favorite way to fix crashes
is to delete code.

So I'm turning to the PulseAudio API directly.
This means that when I want to support OSX I need to create a CoreAudio backend, and when
I want to support Windows I need to create an ASIO or DirectSound backend. I might also want to create
an ALSA backend for Linux installations that don't have PulseAudio. I haven't yet investigated what
the audio situation is for the various BSDs.

Oh yeah and a lot of linux audio community members say I should only support JACK because PulseAudio
will have too high of a latency. JACK support is planned but one of my design philosophies is that
Genesis should be easy to install and run right off the bat without having to separately set up and
run a JACK server. So the final strategy will be: try JACK, and then fall back to PulseAudio.

But for now, PulseAudio is a build requirement.

After I got zooming and scrolling to work, I decided that it was time to create the core audio
pipeline and start working on something that lets us create music rather than just edit audio files.