Saturday, May 04, 2013

I'm hundreds of millions of years old

I woke up last night thinking about how comfortable I felt wrapped up in my blankets with my wife.  I thought about what it must have been like for my grandfather when he woke up at night with my grandmother in their little home in Ada, Oklahoma.  I wondered about my great, great grandfather before him, and for the countless generations before him and before the invention of the modern mattress set.

They're all me, and maybe some of you.  They're not the personal me, the me of my conscious mind, but nonetheless my life is their life.  My life is a continuation of their being through sexual reproduction.  If at any point in my lineage had one of my forefathers' life been cut short prematurely, before his opportunity to reproduce, I would not exist.

We're all unique, it's true, as our generics are a combination of two different lines of humans---lines that likely crossed many generations ago, perhaps many times.  But the resulting human, me or you, we are literally them.  Our traits, our personalities, our physical makeup---all born of lines of DNA passed from organism to organism for millions of years.

Sometimes I wonder if we overemphasize the importance of the individual human, the person we know ourselves to be.  After all, our consciousness is transient.  We live in one body so briefly.  It seems we barely have enough time to grow up before it's over.  In 70 to 100 years, we go from knowing nothing of the world to knowing much that a human can know before consciousness shuts off.  But, if we reproduce, we pass on the core of who we are, the recipe, literally the life, on to the next generation.

Some might argue that you pass on the blueprint only, and that each new life is "born", but I'm not sure I would agree.  From the moment my little swimmers left my body, they were alive.  The fought their way into an egg and from there life morphed and continued.  I have three kids walking the earth today carrying on my life force.  If I were to die today, this life of mine would be considered a success from a biological perspective.

So who are we?  Macro individuals or members of a micro collective?  Are we but mere vessels, an ark for microorganisms to ride upon through time?

And from a conscious level, how am I connected to my ancestors?  Is my consciousness an echo of theirs?  Do I have the same struggles as a distant forefather 1000 years ago?  Did his back hurt like mine does?  Did he have high blood pressure?  Did he struggle with depression?  Did he like spicy foods?  Did he lay awake at night, satisfied to be near his wife, wondering about what it really means to be alive?



Thursday, April 25, 2013

Low latency midi

This might be just about the only way to get decent latency performance out of midi (using external hardware):


devin@devin-OEM:~$ jackd --sync -Xalsarawmidi -dalsa -r48000 -p256

Or even more betta:

devin@devin-OEM:~$ jackd --sync -Xalsarawmidi -dfirewire -r48000 -p256

Starts up midi in raw midi and firewire for audio...still testing this out

Tuesday, April 02, 2013

Ardour 3.0 Notes

First off, I paid for the software.  Why?  Because I like it and I've been using it for years.  I thought now would be a good time to pay for a release.

I'm excited about using the midi features with my external keyboards. But the midi port setup has changed.

jack midi ports (virtual) can't talk to alsa midi ports (hardware cards) without a little help.  So after starting up qjackctrl, I must launch this daemon.


 a2jmidid -e

After running, hardware ports show up under an a2j node in the MIDI tab.

I want to connect my BCF2000 to Ardour and this process too has changed.

1. Map ardour MIDI control out to BCF2000 midi 1
2. Map a2j BCF2000 capture midi 1 to ardour MIDI control in

Using preset 2 on the BCF2000, I can then "Operate Controller Now" on a virtual fader and take control with a hardware slider.

But...PRESET 2, which with Ardour 2 was configured to control Ardour's transport controls, don't seem to have an affect.

After reading Paul's comment (https://community.ardour.org/node/4942), I'm about to try to map the MMC.

Yes!  That worked.  I simply had to map the MMC in and out ports to the same BCF2000 ports I used in steps 1 and 2 above.

Sunday, December 30, 2012

Alesis Perforamnce Pad midi clock sync

Just a quick note...it's not easy to get the Alesis Performance Pad synced up with your Linux system.  Jack and Ardour supports MTC, not midi clock (at least not yet).

My need was to sync all of my virtual stuff (seq24, Ardour) with my drum machine, the Alesis.  Unfortunately, no midi in on the Alesis, only midi out.  The Alesis will emit old school midi clock messages, and that's about it.

My hackish solution: use Rosegarden.

Under settings/midi/midi sync you'll find a MIDI Clock and System Messages option.  From the drop down select "Accept start, stop and continue."

Assuming your external synth or drum machine is connected via midi in to jack, pressing play on the external device will now start Rosegarden.  If synced to other Jack applications, this will also kick off your entire virtual orchestra.

Saturday, November 03, 2012

Multi-track export for LMMS

I wrote a new little feature for LMMS, the Linux Multi Media System (which also runs on Windows).  LMMS is an FLStudio-like product that I've been making music with for the last year or so.  One issue I have with it is that I can't do everything I need from within LMMS, like real-time recording or controlling an external midi device---the way that I would want to.  And in fact I'm not sure I would want to do everything in one program.

Instead I use LMMS as a tool.  For electronic beat-based music, it rules.  So I like to do the electronic tracks within LMMS.  But I also am into adding real vocals, or recording other non-sequenced sounds.

In the past I would do my sequence work in LMMS, then export the final mix as a wav file, and then pull it into Ardour as a stereo track.  (I'd like to just use jack to sync the two products, but this hasn't worked out---seems the support is not there.)  Then I add other tracks, and then do a final mix down.

But, this sucks as I sometimes decide I need to re-balance the LMMS submix, which meant going back into LMMS, mixing down there and then re-exporting.

So my solution was to add an "export tracks" feature to LMMS that exports each instrument or sample as it's own wav file.  Now I can import each sound as an individual track in Ardour.

I've submitted the patch to LMMS-dev but it has yet to be accepted, so I don't know if the feature will make it into the product or not.  But I hope it will!


Saturday, August 11, 2012

Mounting software raid devices on Linux

Just bought a solid state drive to replace two aging drives.  My two drives have appeared, for the last four years, as a single striped (Raid 1) drive to my system, via software raid.

After a fresh installation of UbuntuStudio 12.04 on the solid state drive, it's time to migrate data.  But how to mount the two old drives?

Turns out it was ridiculously easy.  I simply installed mdadm, rebooted, and there was my Raid 1 drive.


When did it get so easy?  I remember the good (bad?) old days when I'd be posting three pages of technical details to resolve such a problem.

Thanks to all of the open source contributers past and present for making our world a better place!

Friday, May 11, 2012

Jquery Mobile and rubber band drag effect


brokentoe 03:40:11 PM
Best way to eliminate rubber banding of entire page on touch drag?  Want header and footer to stay fixed.

pizthewiz 03:49:56 PM
if you are using PhoneGap on iOS, it has a config option UIWebViewBounce in Cordova.plist, if not you are left to your own devices to sort out (0:


In short, if you are using JQuery mobile as a webapp only, there is not a sanctioned way to prevent fixed headers and footers from bouncing when user attempts to scroll content area past bottom or top of page.  I've tried several posted workarounds, from iscroll.js to custom css and javascript hacks.  Still looking for the perfect solution.