Saturday, March 31, 2012

Audio frequency response

Elsie receives sound in the frequency domain, similar in range to human hearing.  In other words, incoming sound is digitized and organized according to pitch.

It is no accident that Elsie's hearing range is similar to a humans.  After all, her hardware was designed for use by humans, and has been engineered to work well in the human range of frequencies.

Elise categorizes sound into 235 frequencies, from 27.5 Hz (a low "A" note) up to 23679.51 Hz.  The human ear can distinguish many more frequencies than 235.1  Specifically Elsie is tuned to the musical frequencies, at quarter-step intervals.


Wednesday, February 22, 2012

Rigging up the sound


For audio processing, Elsie will be using the audio library known as the Jack Audio Library.  This decision is based on allowing Elsie very low-level access to the audio, without requiring root permissions.  Also, Jack has a very flexible interface, allowing configuration changes to be made easily.

Thursday, January 12, 2012

Corpus

As of today, Elsie has a body.  It's a laptop, with all the modern conveniences.  Wireless internet connection, bluetooth, dvd, and integrated webcam, microphone and audio.

Here are the specifics for anyone interested:

ASUS U46E: i7 processor
Shrunk Win7 partition to a minimum, leaving 512GB remaining.
Debian with kernel 3.1.0







Wednesday, January 4, 2012

... and Elmer

While scanning the web for other instances of the name Elsie, I found an interesting pair of AI robots built around 1949.

Grey Walter built robot tortoises capable of seeking out sources of light sources.  They moved around obstacles to get closer to a light bulb.   The first two robots were named Elsie and Elmer.

You can see them in action by following their trails in time-lapse photography.

There is a history of these robots at The Walter Grey Online Archive.



Thursday, December 29, 2011

Can I haz root?

Free will gives people the highest authority over one's self.  In computer terms, free people are their own administrators.  This is also known as being the "superuser" or "root" user.

It might follow that Elsie be the root user.  With root permissions, Elsie can perform many useful tasks, and also many destructive ones.  These include access to the lowest levels of computer hardware, starting and stopping software, masquerading as other users, and changing a multitude of operating system parameters.

Human computer administrators tend to use root access only when necessary, and perform most actions as a non-root user.  This is done to limit the potential hazards that user error may cause.  Elsie could be modeled in a similar fashion, by starting the program as root, and immediately change to a normal user account (named "elsie" perhaps).

Without root permissions, Elsie might not be a free AI. The computer is like Elsie's body, hence the name "Living Computer".





(Git update: commit 3e1d66cfda to check for rudimentary root permissions)



Tuesday, December 27, 2011

Repository on GitHub

The code up to this point has been added to a git repository at:

https://github.com/levis501/Elsie--the-Living-Computer

Handling interruptions from the OS

Elsie is it's own program at this point. It detaches from its parent program.

With the following addition at the end of main:

while (1) {
  // TODO: Elsie processing loop
}

Elsie will not exit, and will run until sent an interrupting signal from the operating system (e.g. Ctrl-C)

Since Elsie is a free entity, it will have maximum control over how it handles interrupting signals. To this end, I've added code to listen for these signals.  For the time being, the signals will be ignored.

Note that some signals (SIGKILL and SIGSTOP) cannot be caught by the program. On *nix/OSX kill -9 should suffice to terminate the Elsie program.


#include <signal.h>
// ...
void install_initial_signal_handlers() {

    signal(SIGHUP, SIG_IGN); // terminal line hangup    
    // ...
}