Tomorrow (Sunday 28, 2009) at 3pm, Jodie and I are giving a concert at St John’s Anglican Church, Halifax St, Adelaide City. It includes two voice a capella, jazz, art songs, gospel, early music, full choir (Prospect Singers), piano & cello (Tony Lillywhite & Claire Oremland), and some giant oratorio with organ. It’ll be awesome!

Here’s a recording we made a couple of hours ago. It’s surprisingly cool, have a listen.

Update: Direct link to mp3.

I don’t have a well formed idea for what I want to write in this post, but there’s something. This one’s going to be an interrupted kind of stream of consciousness I guess, what will be will be.

Interrupted because I’m typing on this tiny little asus netbook, which really has far too small a keyboard. Damn it’s so frustrating to use for this! But I’m sitting in bed next to my darling wife, so I’m not going to switch to another machine. I’ll just put up with the annoyance.

And, you know, this little machine has brought me a deal of happiness, even though it is irritating. Not because I needed another machine, far from it, it’s the ninth in the house, I have a giant beast of a notebook just in the other room to use whenever I like. But I’ve really wanted this thing for a while, because i had a vision of a tiny machine for reading books on and generally treating like a book, and going away from commercial tomes and toward free material, and I’ve realised it with this thing.

But otoh it’s just more stuff, isn’t it? Stuff is just a collection of anchors.

Rambling. What I’m trying to say is getting closer to beginning to come out. I’m getting a glimpse of the themes. They’re something about love, and about meaning, and how you can live inside this arbitrary thing we find ourselves in.

But it’s no clearer than that.

Ok, love. What’s that all about?

Ever since I can first remember thinking about anything, I’ve found myself in a meaningless universe. Most things are inconclusive to me, many possibilities, no clear lines. With meaning though, I’ve never been able to escape the clear absolute truth that there is none, at least in an absolute sense. There just can’t be, all arguments for it are circular. Absolute meaning can only come from outside the system, and as soon as it tries to intrude, it’s sucked into the milleau, losing its special status.

Related to this, is the problem of relative morality, the thing believers criticise us Atheists for. If morality is ungrounded, then you can just be for anything, can’t you? There’s no reason to hold one moral code or another, no reason not to go smashing stuff, and all the nihilistic crazy talk.

Actually, the sophisticated atheist will say, hey, wait, we evolved to do all this social stuff, and you know, evolution gives us our moral code. Which is the naturalistic fallacy. You can’t fall back on evolution, because you can’t get to aught from is.

And so I get lost in that stuff. There really is no ground. Why get up in the morning?

And yet I do. I live a moral life, and a happy one, and it’s a pretty standard one. Family is at the heart of things for me. How can that work?

I think what is central is that, when I think nothing matters, I just have to remember the people that I love, and who love me. Jodie, and my beautiful kids, primarily. Try as I might, there is no way for me to feel that they don’t matter, they just always do. And then from there everything else falls out, there’s my moral floor. For instance, it’s from reasoning based on these close relationships that I can see that each individual matters, is important, embedded as we all are in the web of social networks. So I come to my clearest basic universal moral tenet; it’s all about the people. People are a good, in and of themselves. That is my guide in all things.

I know this is still deep in the naturalistic fallacy, that, to quote a famous toon, it’s just the way I’m drawn. But I don’t think I can reason myself around it. I’m glad about that.

So I’ve been thinking about why I blog. Who the hell am I writing to? It’s not like anyone much really reads it after all (well, a few awesome people do, you guys rock, of course, but it’s no mass media publication is what I’m saying).

I’ve realised that it’s from a sense of deterioration with age. I look back on 37 years of life, and it’s hazy. What things have happened? When did they happen, and with whom, and it what sequence. I’ve noticed that I can’t answer that stuff anymore. Much of my childhood is just gone, I think, and my adult life too. I know I must have lived it, must have done stuff, but I couldn’t tell you what. Moreover, the things I do recall I often don’t trust. We make up most of our memories I think.

I lost a lot of those memories through lack of rehearsal. A lot of the past is painful, and I figured out at some point that it’s best not to keep on going over it. But, if you don’t take the old tapes out and play them once in a while, they degrade. I also think that the very requirement for rehearsing memory makes it suspect in any case. Iterative biases and reinvention must dominate over time. What’s left is barely a memory, it’s a fictional narrative of how each of us, as the main character of the universe, takes fates gifts and punishments.

So I’m really writing for me, and for those close to me maybe.

I guess I’m writing into the future. I’m writing to future Emlyn. Hey there future me, I hope that brain hasn’t gotten too much shakier, and I hope you got that neural internet interface we always wanted. I’m not editing this, so it’s real, you didn’t fabricate it. For what that’s worth.

Also, maybe my kids will read it one day? Hi you guys. I hope we’re still on speaking terms, families do fall out. More often than not, if my statistically insignificant experience is anything to go by (which it probably isn’t). Maybe I’m dead by the time you see this? Man, well, that’s a bit suck. I hope the future is working out. Maybe I screw shit up royally sometime between writing this and you reading it, I hope not. But I tell you what, I love you guys more than I can say. I can’t work out how I get the  privellege of being your Dad, it’s a hell of a good trick. I’m so damned proud of you.

(I can’t really write anything like this to my wife in the future because I know she reads this, but hey there love, you’re beautiful and you blow my mind every day, I love you!)

Anyway, how sooky! holy crap.

What I’m trying to say is, the meaning of life is other people, the people that you love. Everything else is bullshit.

That’s it, I’m really moving into the Cloud.

What am I moving from?

Currently, I have my website at emlynoregan.com . I rewrote it a year or two ago, after an earlier effort some years before that. It’s in C#, asp.net, database is SQL Server 2005. It’s hosted in a virtual host environment at webhost4life.com.

When I built it, it was to be my online home. I have 1 gb of online space, into which went all music and software I wanted to make available. The site has blogging type functionality (lists lists lists), which is used in various ways. Also, it has a secure part allowing me to admin the site, write articles, etc etc. It’s not very web 2.0 though, there’s nowhere for user comments and such. I did build a rudimentary user profile system, and users can sign up to it, but being a logged in user achieves nothing unless you are me.

Since then, the world has changed.

I think the most profound changes of the web 2.0 era are that you can do a lot more on the web, and the free services are no longer crappy substitutes for paid services. Ubiquitous streaming video blows my mind, google’s alleged ongoing losses from youtube notwithstanding. On the topic of video, who would you trust to retain your online videos safely into the future? Some paid service? Or youtube? The same goes for documents (google docs), email (gmail, yahoo), photos (flickr, picasa), blogs (wordpress.org, blogger.com), etc.

So, the purpose of my site is now no longer relevant. The point was to give me a place to present myself, to blog, to put music and software, to organise music and software properly, and to write web apps where appropriate. Now, though, I’m better off blogging in wordpress.org, much better tools, much more comprehensively set up, probably a lot more reliable than my payed my web host. Music can go in the internet archive, or in youtube, or both, and is much more likely to survive in the long term. Distributable software is better hosted in sourceforge (where the code is usually hosted anyway).

I also have email, documents, photos, and social networking requirements, but they are in the cloud already (gmail, google docs, picasa, facebook, twitter).

All that leaves is “presenting myself” (ie: having emlynoregan.com point at some coherent starting point), organising the various music, software, and blogs, and hosting web apps.

All the presenting and organising would be easily managed with a simplistic site structure. I could almost do it with static pages (and v1 might be just that), although there is enough music, and enough versions of software, that some basic data driven functionality would help (ie: a little catalog).

As to webapps, I never did a lot of that in the past, but I really want to in the future. I’ve been learning Python, and really want to work with it. Also, I’m keen to write some facebook apps, particularly games.

There is another reason that I want to replace my existing site, which is that it is written in c#. I love the language, but the whole Microsoft stack comes with it, and I really want to move away from it. I’ve been solely in that world for most of my professional career, and it’s time to broaden my horizons, especially since I suspect we could see a wholesale shift away from MS in the next five to ten years, a collapse of their network effect. Best to be ready for that.

Where I want to go to is a google app engine based site, written in Python, storing data in the app engine’s data store. All my big distributable content can go into free services as above. The site can use google authentication where auth is necessary, and I can just have simplistic code to let me maintain a catalog of that stuff, and keep basic pages up to date.

With google app engine I can also do web apps, and I can do facebook apps apparently.

The code can all go into a free subversion (svn) service (google code looks like a good contender, or else maybe sourceforge or one of the others). I’m using Ubuntu on my laptop these days, and I’d like to develop directly in it (not in a windows based VM as I have done in the past), but I think that’s easily manageable. I already have Eclipse with PyDev running on it, and I have the google app engine developer sdk going with that, and I’ve managed to get a hello world level of site going, so that stuff all seems to work well.

I think my plan then is:
- Get an extremely basic site going (probably a one page “hello world” site), with my local dev environment sorted out
- Get that into svn somewhere
- Get a workable first site going
- Get all my software and music off my existing site and into free services as above
- Redirect emlynoregan.com to the new site
- Turn off the existing site
- Cheer!

It occurs to me that if I were to design a robot to do all the things a human does, it’d have a control panel, or administration interface. This is the equivalent of the Settings menu or Properties page in various software. That control panel would likely be internal, operated by the robot’s mind, but it would be there.

I would do this because a general intelligence, being able to think about and plan for the future, can know in advance what capabilities it needs. For example, sometimes it’s good to store fat (because there could be food shortages ahead), so a “Store Fat Mode” would be nice. On the other hand, in modern western society, calories are abundant, and it would be better to stay at a particular desired weight / body shape / etc, so “Maintain Weight Mode” would be more appropriate. Or “Add Muscle mode”, or “Overclocked Metabolism mode”, etc etc. The possibilities are endless.

But humans don’t work that way. Watching “The Biggest Loser” a bit recently (yes that makes me the loser), it strikes me that we have made weight loss into a moral endeavour. “No pain no gain”. We invoke purity/sanctity, the message is “you have sinned, now you must do penance, and only then shall you be rewarded with weight loss”. It’s easy to just accept that, because it plays to our fundamental moral systems, but if you think about it rationally, it’s nuts. What’s really happening with weight gain is that we have a system (our bodies) with a regulatory mechanism adapted to calorie shortage, and no administrative override, no calibration features.

Separately, there’s this idea that we need to “burn off” those calories. It assumes this dumb system where calories go in, get used or stored, and the only way to remove stored calories is to use more than you consume, like we have all the systemic complexity of a bucket. If that were true, then seriously fat people could just not eat for a few weeks, and lose big weight, but it doesn’t work like that. I think what’s really going on is a little of this, but more important is that extreme exercise is communicating to the body “The new normal is massive amounts of physical work, so go into a mode where we can do this”. So the body drops the kilos, adds muscle, etc etc, to adapt to what it is being made to do.

And I guess it follows that the purity/sanctity morality is invoked as motivation to keep up the otherwise very unlikely behaviour of high level exercise.

The corollary of this is, I expect, that if you stop the penitential flagelation of the flesh, the body will change back into its “store fat” mode and you’ll be back to weight gain again.

That’s all by way of example. The point I want to make is that it shouldn’t be this hard. Exercise for weight loss is a hack, it’s tricking the body into doing what you want in an indirect way. If you were designing a human from scratch, it wouldn’t be necessary, you’d just go into Settings, and change metabolic modes.

However, if you were designing (or, heaven forbid, evolving) a body to be inhabited by a non-generally intelligent mind, one that can’t plan forward and can’t do meta analysis on its own goal system, you’d build something exactly like what we humans current are. There would be no possibility of intelligent control, so instead you’d have the body have a range of possible behaviours, and move between them in response to its activity and cues from the environment. Also, you’d have the same thing with the brain itself; emotions/moods/cognitive states would all change, not at the behest of the mind, but according to a pre-programmed regime based on physical and environmental cues.

For all the amazing abilities of our bodies, they are a fundamental mismatch for our minds. Even our mental architecture is a fundamental mismatch for the task of being a general intelligence; most of what we are is targetted at coping with a control system totally unlike what we actually possess.

No wonder it’s so weird being human.

This was a comment on Russell Blackford’s blog, Metamagician and the Hellfire Club. He was rather irritated about the internet censorship trial underway in Australia, and particularly about the minister responsible and his performance on an episode of the ABC’s Q&A program. I watched it and wrote the following:

I just watched that Q&A episode, and found it illuminating.

I think Steven Conroy believes in what he is doing, and not for weird right wing / religious reasons. If you listen carefully to what he says, you’ll notice that he is starting with different axioms than most of the rest of us are.

He was defending the filtering trials as just being the same as what we have for books, movies, etc, and pointed out that this blacklist is a pre-existing thing, part of our regular censorship process (previously unenforced/unenforceable).

Imagine you believed in the current censorship regime. Your premise is something like “there are bad things out there that decent people shouldn’t have to see, and it is part of the government’s job to sort that out”. It’s feels anachronistic now, but it’s a mainstream conservative position, that comes out of mainstream conservative values. It also relies on some related unspoken assumptions (part of that value system) relating to the importance of hierarchies, respecting authority, maintaining order, that kind of stuff. Jonathan Haidt explains this better than I ever will: http://www.edge.org/3rd_culture/haidt08/haidt08_index.html .

Saying that this is attacking free speech will not impress someone with this value system. You have to hold a politically small-l liberal set of values to care about freedom more than order. He will hear people saying “free speech” and just think “this person doesn’t know what is good for them”.

What no one articulated in that program were these things:

1. The problem that the government is trying to solve with censorship is indeed a problem, that is not disputed. Things like child pornography are truly bad and wouldn’t exist in a perfect world.

2. However, the only way the censorship solution can work is via an unaccountable body doing the censorship on everyone else’s behalf (Conroy: “If we published the list, it would defeat the purpose of the list”). We do not trust them to do that job. It’s not that we don’t trust Steven Conroy, or the current government bodies in this area in particular, it’s that no one can be trusted with that job in general. That is the fundamental premise of free speech; not that we want child porn, but that there is no way that we can guarantee censorship without abuse.

3. This censorship push is being partly justified by saying “it’s just more of the same, same as with movies, books, games”. What needs to be clearly articulated here is that we don’t believe in that, either. There is no more reason to trust censors with books and movies than with the internet.

So this, I believe, is an old-school liberal vs conservative clash. They believe we need to be protected from ourselves, we say no one can be trusted with that job, particularly anyone who volunteers for it! All the stuff about slowing down the internet, we’ll just be able to circumvent it anyway, etc etc, is a sideshow.

I’d like to see opposition to the filtering grow, knock out the filtering push, then roll on into knocking out censorship in this country altogether.

Esteso Voce Interface #1

I am in the process of inventing a new musical instrument, called the Esteso Voce.

In my previous post I talked about the conceptual path leading to the Esteso Voce. In this post, I detail my first concrete concept for the instrument. To the left is the first shot at the interface (think touchscreen), which I will explain below.

What I didn’t make clear in my previous post was the original inspiration for this instrument. My idea was to be able to extend the voice, using external equipment, such that a single singer could sing a motet or madrigal by themselves.

Now obviously this is not easily possible, in that the different lines generally have different rhythm and words. What I think is achievable via the Esteso Voce is singing homophonic pieces (eg: Taverner’s The Lamb) and pieces in strict canon, also allowing harmonic variation (eg: Byrd’s Non Nobis Domine, which includes canon-style repetition, with some lines in parallel organum fifth). Also a combination of canon and intricate harmonic transposition in realtime is achievable, but I don’t know of any existing music that does this.

(Incidentally, I just listened for the first time to that recording of The Lamb linked above, it’s the best choral singing I’ve ever heard.)

Esteso Voce Flow Diagram

Architectural Overview

The Esteso Voce is in essence a vocal harmoniser combined with delay functionality appropriate for singing in canon. It takes a single vocal input, copies it up to 3 times, delays those copies as desired by the player, and then transposes the copied voices up or down in pitch, as controlled in real-time by the player. The original voice signal and the copies are then recombined and output.

(I intend the singer and the player to be the same person, but they could of course be two different people.)

In the interface, sets of four vertical lines represent these voices. The bolded, or red line, indicates the source vocal (which is being sung by the singer directly).

Wherever there are three sets of controls in a row, these refer to the three copied vocal lines, not to the source vocal. Wherever the source vocal is, the control from such a set of three is affecting the voice on the opposite side of it from the source vocal. Where this effect is relative (eg: in the main harmoniser controls) the effect affects the voice on the opposite side from the source vocal, creating an effect relative the the voice on the same side as the source vocal (which may be the source vocal itself).

Primary Harmonizer Controls

Primary Harmonizer Controls

Primary Harmonizer Controls

The Primary Harmonizer Controls are the main controls for the player to control the transposition of the other vocal lines.

In the diagram, the source voice is the voice 2, the second vertical line (the red one). The line to its left is voice 1 and represents a vocal line which will sit below it in pitch. The two lines to its right (voices 3 and 4) represent two vocal lines; the leftmost of these sits above the source line in pitch, and the rightmost sits above that.

How far the lines are transposed is determined in real time by the circle touched by the player in the appropriate column. Voice 1 is controlled by the column of circles between it and the source voice (each represents a number of semitones to transpose the source down by). Voice 3 is controlled by the column of circles between it and the source voice (each represents a number of semitones to transpose the source up by).

Voice 4 is controlled by the column of circles between it and Voice 3, and the circles represent the amount to transpose Voice 3 by, in order to create Voice 4. This is the same as adding together the transposition amounts for the middle and right hand columns (for Voice 3 and Voice 4), and transposing the source voice by that many semitones.

These controls are intended to be realtime. So, the circle touched in any column has effect while it is touched, and ceases that effect as soon as it is no longer touched. If multiple circles in any column are touched simultaneously, only one is used (the most recently touched? the least recently touched? something else?). If no circle is touched in the column, then the assumed value to transpose by is zero semitones (as if there was a top most row of circles for zero, one of which was being touched).

Next blog, I’ll talk about the rest of the interface, including the Secondary Harmonizer Controls, the Auxilary Controls, and the Delay Controls.

I was having trouble at the start of the year figuring out what projects I’d do this year. So I just rambled back and forth amongst the ideas I had (I’ve posted about them previously here). Finally, obsession emerges from ennui, and I know what it is that I’m going to do.

The project is codenamed Esteso Voce (”Extended Voice”, italian speakers please correct me and I’ll fix it). The intent is to create an instrument which extends what a highly trained singing voice can do, allowing the singer (me!) to achieve sounds and music which could not be achieved unaided, but only including sounds which would be judged by an expert in voice as “authentic acoustic sounds”.

Some explanations to come, but first a little rundown of the history of this idea.

A few years ago (2006 it turns out) I had this idea for making the “poly voce”. I really didn’t know much about digital audio, so I conceptualized it from whole cloth.

Here’s the original document where I laid out the vision/requirements as I saw them.

Realtime Vocal Ensemble Instrument

I sent this to Tyrell Blackburn (a classmate of Jodie’s at the time at Adelaide Uni), and he gave me very interesting feedback, the most important of which was to point me at Max/MSP.

I was just going over the email exchange from 2006 (thank you gmail for remembering everything), and noticed that the day after he told me about Max/MSP, I sent him the first prototype working patches for the concept. It was a manic period.

Tyrell also warned me about the concept of using a midi keyboard for relative pitches, (I talk about it in Realtime Vocal Ensemble Instrument), that it would confuse people who were used to the keyboard mapping to absolute pitches (ie: everyone). It turns out that was absolutely true!

Where I managed to get to was that I made successive prototypes (thank you to Christian Haynes from the Adelaide Con Electronic Music Unit for introducing me to the poly~ object), but they had a lot of lag, and weren’t really ever going to be reliable. I didn’t have a decent laptop and audio equipment for the job at the time, so I was using an underpowered PC, which didn’t help (this stuff is CPU intensive).

I wish I’d made a recording of it in action, but I never did. What I have found are the first prototype patches that I sent to Tyrell, I probably have the others lying around.

Now, the main thing I found out from this process was that this has already been done, this kind of effect is called a Vocal Harmonizer. Christian sent me a link to this, for example. Really amazing stuff. So, I lost my head of steam a bit, thought about buying some off the shelf effects, but never got around to it.

What I also learned in the process was about the PSOLA algorithm (well, I learned only that it exists, and that it requires real-time pitch detection, so all my ranting about no pitch detection is somewhat nullified, but I’ll live). I used a free PSOLA implementation.

Some years passed. During that time I’ve done a few other related things. The most relevant has been a bunch of work with Ableton Live, which I used to make polyphonic music with only my voice, via recording samples in realtime and looping them. Some examples are here, here and here.

The Ableton Live thing shows promise, but honestly I just don’t like that software. It’s just not flexible. There is no user scripting or macros, not much customization for live performance. It has this crappy facility to map keystrokes to actions for using it live, and people go to town with midi->keystroke mapping software, and all kinds of funny stuff, to tie it to foot pedals and the like (and get great results, no doubt about it, eg: this).

And then, I moved to Ubuntu for my main notebook. No more windows only software like Ableton. I really want to embrace the free software scene anyway, and there’s a lot of stuff available for linux, so it’s all good.

And we come to the present. It grabbed me recently that what I want is more than a vocal harmonizer. A vocal harmonizer is an effect, a gimmick.  What it does is good, but the context is wrong.

What I want to build is an instrument, not a piece of software, not a set of effects, not a sound module. The aesthetic is that of a violin or a trumpet or a bassoon. Something acoustically rich, simple in concept. Something which you have to learn to play. Something you don’t particularly customize, rather you master it. An instrument is a musical paradigm in itself.

What does all that high faluting stuff mean though? Well, it means that it can be limited, not endlessly accomodating. So, if I want vocal harmonizer functions, I can have a limited number of voices (I’m thinking of 4). Also, an instrument should have its own unique control system, and I think I’ve invented something a little bit weird but cool for this (for next blog post). Finally, an instrument should sound excellent, and define its own sound, not try to sound like something else. In this, I’m bending things a little, in that the sound is the human voice, but I want to stick to the following principle. This instrument is not for making a mediocre voice sound better. It is for taking a great voice further than the human voice could otherwise go. If being easy to use and sounding beautiful conflict, then beauty wins.

The short list of functions this instrument will have are:

  1. A vocal harmoniser, optimising for excellent sound (they should sound like a plausible, unaltered human voice).
  2. Harmonised voices might support gender changes and other timbral modifications, probably this will involve fun with formants.
  3. Voices can be delayed by a multiple of a player chosen fixed interval (think roughly a “bar”).  This allows the player to sing in canon with themselves.
  4. Harmoniser functions and delay functions can be combined.
  5. May want support for just intonation or other non-even tempered tunings.

The devil will be in the details, but the core idea is combining a vocal harmoniser and a simple delay mechanism.

That’s all I’ve got the energy to write tonight. This will be continued.

Oh, the other important thing: I found the free software successor to Max/MSP, called Pd. Miller Puckette is a genius. It looks as though my first versions will be built in Pd.

Well, I went back to almost full time work (0.9 of full time) and my blogging went out the window. Crap.

I know exactly what caused it, too. I was working Monday afternoon, Tuesday, Wednesday, Thursday. That’s 0.7 . And, crucially, I had devoted Monday morning to blogging. So I had a set time each week to write something substantial.

Changing to 0.9 has meant I now work all business days except Friday morning. Friday morning is also booked up, because I sing in a choir which rehearses then (the Prospect Singers, a community choir run by my darling wife, lots of happy retired folk who own all of their own time, and me).

So, I have effectively sold my blogging time.

I’ve also noticed a massive hit to my personal projects; they just stopped. Full time commitment really hits my ability to do my own thing amazingly hard. And notice, I’ve only increased my work by 1 day per week, which you wouldn’t think was a big deal. But apparently it is.

I think it goes something like this: When I’m working full time, Saturday becomes a recovery day. That only leaves Sunday, and there’s not much of that because family commitments and preparing for the week ahead eat most of it. Also, it’s harder to get motivated at night, because paid work now is a much larger proportion of my waking productive hours, so it dominates my thinking; much more difficult to put work issues aside and do something unrelated.

If you divide the 7 days of the week into 14 half days, 0.7 paid work gives you 7 half days of paid work, 7 half days to yourself. Paid work doesn’t seem to dominate in the same way. I would find that firstly, the paid week was short, so on Friday I wouldn’t have much mental baggage to shed. What there was, would be vanquished by singing on Friday morning, and a leisurely Friday afternoon. Then Saturday, Sunday and Monday morning would be productive mixes of family stuff and my own projects. That turns out to be quite a lot of time, enough so that by Monday afternoon, I was actually looking forward to switching tasks.

I have to stay at this workload for now. But I think I’m learning some useful things. The lesson re: this blog is that it’s not going to work if I don’t schedule some time for it. I’ll do that.

The bigger story is that I need to schedule in time for doing my own thing. I can do it, too. I’ve been watching a lot of tv lately (watching lots of full seasons of really good shows actually), which is easy to slip into, and doesn’t really add to my life. So I think I need to grab a chunk of the cognitive surplus, and make time for my projects of an evening.

Also along with the telly is staying up too late every night, which becomes a vicious cycle. I watch telly until the wee hours, am tired the next day, by the evening am too tired to get it together to do anything useful, only can watch telly, but this is unsatisfying so I do it until late to feel like I have some command over my life, lather rinse repeat. So, the other unintuitive thing is to go to sleep earlier; on the same day as I woke up would be a good start!

It looks like I have a plan:

  • Stop watching tv
  • Start going to bed earlier
  • If I decide to do a project, I must explicitly schedule in time for it

I think these three things will get me back on the path that I want to be on.

update: It’s back, and has been for a while. I was sure I’d already updated this, but no. Anyway, message ends.

emlynoregan.com is currently down, because I haven’t paid my fees :-)

I’m on holiday, it can wait. It’ll come back up some time in January, after my next pay.

Really, I’d like to replace it (again). I’m thinking that something built in google app engine is what I’d like. I really want to get my hands dirty with that, and it’s free to boot. But, I’m not skilled enough in the required technologies yet. I’ll get there.

This was a post to the Open Manufacturing list

—–

This post is a bit long, but I’m going somewhere with it, please bear
with me :-)

Also, I assume before I start that this idea already exists, because
they always do. I’m sure Bryan will know who’s already doing it, if
anyone.

I’m trying to learn a bunch of new things at the moment.

One example: as some noted elsewhere, I’ve got some audio stuff in one
of my blogs. A project for the coming year for me is to learn digital
audio signal processing in some detail, enough to be usefully able to
contribute.

Now just being able to write that sentence has been some months in
coming. This is because, when I first knew that I wanted to learn
about digital audio signal processing, I didn’t know that it was
called digital audio signal processing.

What I knew was that I’d like to know the theory required for writing
plugins for digital audio workstations.

If I had a background in engineering, I would have immediately known
this, because I’d have studied digital signal processing, core stuff
in engineering. But I’m a compsci guy, never heard of it.

I went in the wrong direction to start with. My wife was doing some
study in electronic music at the local music conservatorium. I went to
chat to the most technical lecturer there about it, but he didn’t
really know much about it. They know lots about wiring up pre-built
“plugins” in all kinds of crazy ways, and about using standard
“plugins” to their full potential, all good stuff. But the plugins
themselves, they come down from the plugin gods. btw I don’t mean this
to be critical; these people do what they do extremely well, and have
deep knowledge of their own. But it’s about music and professional
sound design, not hardcore coding or maths. It’s like I went to the
professional graphics people to find out how to build a graphics
engine; not what they do.

By chance, a job came up at work to extend a package for modeling
acoustic properties in buildings. The package purely works with
numbers, but people thought it’d be nice to actually hear what the
model sounds like, in a preview kind of way. So, I chatted with an
engineer colleague, and voila! Digital Audio Signal Processing! The
incantation revealed.

So I found myself a book on digital audio signal processing. And
discovered that it requires knowlege of digital signal processing (a
more generic area).

So I found myself a book on digital signal processing, and a bit of
the way in realised that I need a working understanding of electronics
to take in a lot of the content (although I might be able to finesse
that).

I’ve gained some traction, and am making some ground on the area now.
But my point is that it took me a long time to figure out how to learn
what I wanted to learn, probably as long (although more porous :-) )
as it will take to do the initial learning.

Next example: Coding in a linux environment.

I’ve jumped headfirst into the linux world, backed only by a compsci
degree (which helps) and a decade and a half of commercial Windows
work (which helps less).

Again, I’m aware that I don’t even know how to phrase or even form
many of the questions that I need to ask. The phase I am in is one of
trying to discover enough structure to begin to feel the bounds of the
scope of my own ignorance.

So far, I’ve figured out that I need to brush up some languages I once
knew, and add some new ones. You communicate largely in code in this
world. I’m currently reading “Dive into Python”, and I’ve got pydev
going in eclipse, and I’ve been playing with little programs. (Cool
language! Dynamic types upset me a little, feels like the bad old
days, but there are so many other great things, and a method to the
madness, so I’m happy to persevere. But I digress.)

That’s all cool. But the point here is that, even in an area in which
I have formal training and experience, I can still end up in
unfamiliar territory and be grasping around for how to find the way.

What’s characteristic in both these examples is that my google-fu has
failed me, for a very good reason. I am in the territory of deep
learning.

Google is awesome when you need to know something specific. For a
commercial software developer, the job is mostly about that, so I’m
familiar with it. But there’s an invisible line in knowledge
complexity that you avoid in that style of learning. It’s always about
finding out just enough to do the job, but not enough to slow you
down, or confuse you, or to require you to pick up novel patterns of
thought.

I find that when you cross the invisible line, the internet can be
quite frustrating. It’s clear that all the information you need is
there, but it feels inaccessible, because everything is either too
superficial to be useful, or assumes background knowledge that you not
only don’t have but can’t know that you need.

The traditional route to go down for deep learning is the education
system. Some level of course or courses at some level of
sophistication will teach you what you need. Eg: I could do an
engineering degree, then steer into postgrad work in digital audio
signal processing. Or, I could find the right institution to do more
computing study, specifically based in linux culture. This has serious
drawbacks though. It’s a just-in-case model. I want to learn something
relatively specific, but it’s hard to get at that in the traditional
educational context without having to do a vast amount of other stuff
that I just don’t really need and don’t care about. Very costly in
terms of time, money and attention, and I’m likely to get bored and
stop anyway because of too much irrelevance.

Or, I can fumble along as I have, trying to self educate, but this
really does become difficult as complexity increases. There’s a reason
why people mostly stick to what they already know, after all!

There must be a better way.

So in my travels, I stumbled upon this list, and in particular Bryan’s
ongoing published thoughts about how to document manufacturing
processes in a precise manner, with respect to such things as inputs,
outputs, required tools, maintenance requirements etc etc.
Dependencies, generally speaking.

And it has occurred to me that you could apply the same approach to
deep learning.

It should be possible to categorise any chunk of knowledge as a set of
alternative recipes for acquiring it, including dependencies.

Eg:

<knowledge id="eng_dasp" desc="Digital Audio Signal Processing">
    <recipe>
        <steps>
            Tertiary Course X <course description, url(s)>
        </steps>
    </recipe>
    <recipe>
        <steps>
            Tertiary Course Y <course description, url(s)>
        </steps>
        <tools>
            Textbooks A, B, C <urls>
        </tools>
    </recipe>
    <recipe>
        <steps>
        Online course Z
        </steps>
    </recipe>
    <dependencies>
        <knowledge id="eng_dsp">
    </dependencies>
</knowledge>
<knowledge id="eng_dsp" desc="Digital Signal Processing">
    <recipe>
        <steps>
            Tertiary Course N <course description, url(s)>
        </steps>
        <tools>
            Textbooks P, Q <urls>
        </tools>
    </recipe>
    <recipe>
        ...
    </recipe>
    <dependencies>
        <knowledge id="eng_electronics">
    </dependencies>
</knowledge>

etc

It looks a lot like what Bryan’s been talking about with recipes in
open manufacturing. In particular, acquiring knowledge can be modeled
as a process, just like a process for making something. (In fact, it
could be integrated. After all, in many places in the manufacturing
models, the people involved are required to have certain knowledge,
why not model the knowledge chunks required in detail?)

So I think then, imagine an online service where you can explore these
recipes for learning, explore the larger graph, piece together your
own just-in-time curriculum from the parts available, or add new
recipes and maintain existing ones. Existing tertiary courses, open
course materials, text books, websites, all kinds of material could be
integrated into a usable whole via this approach.

Something like this could eventually turn the university system inside
out, allowing students to come for the specific pieces they want as
they want them, rather than having to take on the giant chunks that
are currently the norm.

Next Page »