Disqus 404 page

Sun Jan 08 2017 08:07:09 GMT-0800 (Pacific Standard Time)

tags: html 404 disqus

I rather like the disqus 404 page:

(also if you refresh it, you'll get different backgrounds)

sub-zero synth

Mon Jan 02 2017 10:19:26 GMT-0800 (Pacific Standard Time)

tags: eurorack synth synthesizer noise sound audio

I made some textures with a synthesizer in sub-zero temperatures. Pretty fun, even with just a small number of starter modules...

amazing spam

Fri Dec 09 2016 23:07:22 GMT-0800 (Pacific Standard Time)

tags: spam email

Seems legit...


this gif

Thu Nov 17 2016 22:06:48 GMT-0800 (Pacific Standard Time)

tags: gif coil johnbalance

Trek horror

Fri Sep 30 2016 23:18:37 GMT-0700 (Pacific Daylight Time)

tags: trek startrek horror

I had forgotten just how dark and horrifying this show could be at times...

Building a bicycle...

Sat Jun 25 2016 00:14:02 GMT-0700 (Pacific Daylight Time)

tags: bike bicycles building

So my lovely 40+ year old Raleigh Record finally gave up and died a couple weeks ago.  :(


The fork developed a crack and probably caused the bend in the down tube.  Pretty unfixable.  FAREWELL to my first commuter in Portland...that $90 investment served me well over the last decade or so.

And now comes the time to figure out a new ride.  With the help of a friend, I've decided to do a custom build.


It's quite far from done...but what strikes me most is just how much this process feels exactly like the first time I built a computer from components!  Spending hours flipping thru parts guides, reading reviews, comparing specs, comparing vendor prices, trying to squeeze everything into some unrealistic/imaginary budget, stressing about forgetting some critical minutiae, discovering what parts are compatible with other parts (or not)...dreaming about what the finished thing will look like and fantasizing about how it may perform...

The process is so similar...and surprisingly rewarding.

I have lots to learn about the build itself, and it's exciting to be out of my element (and a little scary).

Lath and plaster...

Sat Mar 12 2016 16:29:07 GMT-0800 (Pacific Standard Time)

tags: lath plaster pain-in-the-ass homestuff

What's not to love about lath and plaster wall work?  Cut a simple hole and get all kinds of surprises...


accidental cutup of hilarity

Mon Jan 25 2016 02:05:21 GMT-0800 (Pacific Standard Time)

tags: mp3 collage sound audio cutup

I'm not entirely sure why this cracks me up so much, but I was cutting up some audio for a futel project and accidentally created this mess.  Enjoy my sloppy mistakes and giggle with me...


ALSA recording of device output

Sat Jan 02 2016 23:54:31 GMT-0800 (Pacific Standard Time)

tags: linux audio sound alsa looprec

On more than a few occasions, I've wanted to be able to software-record the sound coming out of my computer speakers.  Many users faced with similar problems resort to using pulseaudio as their sound system, which is reasonble, because it provides a very extensible/pluggable framework for sound.  Unfortunately, my experience with pulseaudio in the past has been "meh", probably due in large part to my heavy use of Pd.  So I've stuck with ALSA through the years when doing simple stuff, resorting to jack when doing more complicated routing between applications.  Simply recording what's playing seems simple enough...right?  Not so much...

I guess some (nicer?) sound cards provide a built-in hardware recording channel that can mix back in the currently playing audio.  Most built-in ones, like the one in my aging T410, do not.  After some sleuthing, I discovered that ALSA's plugin system does, in fact, provide a way to do this.  I'll describe the process here, but it's basically ripped from this thread where kokoko3k serves up the right approach:

There's an ALSA kernel module called snd_aloop that "provides a pair of cross-connected devices, forming a full-duplex loopback soundcard".  With just a little fiddling, you can create a "looprec" device that has loops back the audio output into a new recordable ALSA device.  The steps, just like in the above-mentioned post, are:

  1. $ sudo modprobe snd_aloop
    (this inserts the relevant kernel module into the kernel)

  2. create/edit ~/.asoundrc and paste in the following (a bit of alsa black magic):

    pcm.!default {
      type asym
      playback.pcm "LoopAndReal"
      #capture.pcm "looprec"
      capture.pcm "hw:0,0"
    pcm.looprec {
        type hw
        card "Loopback"
        device 1
        subdevice 0
    pcm.LoopAndReal {
      type plug
      slave.pcm mdev
      route_policy "duplicate"
    pcm.mdev {
      type multi
      slaves.a.pcm pcm.MixReale
      slaves.a.channels 2
      slaves.b.pcm pcm.MixLoopback
      slaves.b.channels 2
      bindings.0.slave a 0
      bindings.1.slave a 1
      bindings.2.slave b 0
      bindings.3.slave b 1
    pcm.MixReale {
      type dmix
      ipc_key 1024
      slave {
        pcm "hw:0,0"
        rate 48000
        #rate 44100
        periods 128
        period_time 0
        period_size 1024 # must be power of 2
        buffer_size 8192
    pcm.MixLoopback {
      type dmix
      ipc_key 1025
      slave {
        pcm "hw:Loopback,0,0"
        rate 48000
        #rate 44100
        periods 128
        period_time 0
        period_size 1024 # must be power of 2
        buffer_size 8192

That's it!  Your recording software should now have a device available called "looprec", and if you record from it you'll get whatever is playing on your speakers.  You can make this permanent by adding the snd_aloop module to /etc/modprobe.d/sound.conf.

Since you've made it this far, I'll share what I was trying to record: -- which is pretty much the raddest thing ever.

DTMF decoder in Pd

Wed Nov 25 2015 11:15:01 GMT-0800 (Pacific Standard Time)

tags: dtmf pd puredata dialing

I was doing some digital housekeeping recently and came across an unfinished DTMF decoder that I started in Pd.  DTFM is also commonly known as "touch tone" and is a signaling system traditionally used over telephony systems (and things like ham radio repeaters).  I opened up the patch and found that it wasn't working quite right, so I tinkered and made something usable/releasable.

The help patch above shows decoding from a recording, live from the computers audio input (mic), and also from a fake DTMF dialpad that I made (which also uses my [dtmf~] abstraction).  If you're watching a movie or listening to the radio and hear some gold old-fashioned touch tones, you can now decode the digits using this Pd abstraction.  Good times.

Back in the 90s, I built several DTMF decoder circuits by hand, some that even interfaced wiht the computer's parallel port for logging.  Wow, that was a long time ago.  If you hunt around, I suppose you can still find DTMF decoder ICs, but they're certainly becoming harder to find.  I guess these days, it makes sense to use the $2000 general-purpose computer on your desk/lap to do that work instead of $10 in parts.  :-)

You can download this DTMF decoder (as well as my other DTMF related pd abstractions) over at my github repo:  Let me know if you find them useful!