Your leaking thatched hut during the restoration of a pre-Enlightenment state.

 

Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").



links

decay & ruin
Biosphere II
Chernobyl
dead malls
Detroit
Irving housing

got that wrong
Paleofuture.com

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff


Like asecular.com
(nobody does!)

Like my brownhouse:
   strings in a hostile world
Tuesday, February 15 2011
Winter wasn't going to give up that easy, and today the cold temperatures were back as if yesterday had never happened. It was also windy due to the proximity of a powerful high pressure center (in the winter my analog barometer registers its highest pressures).

I spent most of the day trying to make a simple framework for sending text strings to the slave Atmega from the master Atmega on the new solar controller. This was so the main controller algorithm running on the master could post helpful information to be displayed on the 40 by 4 character LCD (which is exclusively controlled by the slave). Both the Atmegas are running an Arduino environment which is based on C, but my knowledge of how C works is rudimentary. Being something of a Javascript/PHP expert, I'm skilled with the basic syntax, but when it comes to dealing with pointers and strings, the fussiness and stone-age primitiveness can drive me to despair. And it's not always easy tracking down solutions to my problems with Mr. Google. Still, somehow I managed to develop the framework I needed. It actually borrowed techniques I'd originally developed for supporting databases without recourse to an actual database, including double-delimited strings to serve as quick-and-dirty "database tables" (in this case just a simple data format for transfering complex data in a way that could easily be parsed). Of course, I had none of the usual tools for creating or parsing such strings, and was forced to write a parser on the slave side that crept through the data one byte at a time, switching into different modes depending on whether or not it had just read a delimiter. (I even had to handcraft my own multi-character-to-integer algorithm.) And at some point I ran into another problem whose documentation was hard to scare up: I2C only accepts single data transfers of 32 bytes or less. 32 bytes is a pretty damn small database table, but then again, my data transfer needs are nearly that modest. If you came across this page via a Google search, I should do you the kindness of providing you the code I produced: workingmasterslave2.rar.

I drove down to the Old Hurley post office this afternoon to pick up another seemingly useless Arduino Ethernet shield, and on the drive home, I shot the following photos, a bunch of which I turned into the animation:



Hurley Mountain, viewed from Wynkoop Road across the Esopus Valley Plane, looking west. Click to enlarge.


Looking west on Wynkoop.


Looking south up the Esopus valley from Wynkoop.

From Wynkoop, the drive home.

Today as something of a birthday present to myself, I took delivery of a big 61 key Midi piano-style keyboard. I'd done some research and found an affordable velocity-sensitive one manufactured by M-Audio. Velocity sensitivity was the only real requirement (without it, it's impossible to change the volume of a note by striking the key harder or softer).
After hooking up the keyboard and installing all the drivers and software, I just wanted to play a little piano (or the harpsichord or perhaps the keyboard-flute intro to "Stairway to Heaven"). Because, well, that's what one does with a keyboard. But, as I learned today, nothing is simple with a Midi keyboard. The software (something called Live) was a hopeless complexity of controls and windows and lists. I could add my Midi keyboard to it somehow, but then what? I just wanted to play a keyboard, I didn't want to spend the evening learning the musical equivalent of Adobe Photoshop. This was an example of a learning curve so steep that it was essential a brick wall.
Never having worked with Midi in the past, I searched around the web for some other simpler Midi software. But even the simplest didn't provide a simple route to real-time keyboard use. Eventually I found what I was looking for, a program called MidiPiano, and other than attempting to install a Bing search bar on my browsers, it worked great. It allowed me to play my new keyboard as a piano, an electric guitar, or English Horn. The velocity sensitivity wasn't quite as sensitive as I would have hoped, but it did allow me to produce sounds from my computer almost as easily as sitting at a real piano, with the additional ability of doing things like recording sessions.


For linking purposes this article's URL is:
http://asecular.com/blog.php?110215

feedback
previous | next