02 June 2010

How to Get a Song Un-Stuck from Your Head

If you ever get an annoying song stuck in your head, it can be maddening, can't it? Like auditory hiccups, you just want it to stop. So I thought I'd share a trick that works, for me anyway.

First, find a source of music. Radio, iPod, Pandora, whatever, you just need some way to put other music in your ears. "But wait, I've already tried that", you say. But wait, there's more! Here's the trick: while playing the external music, try on purpose to recall the annoying song. It works best when the external, real music is kind of similar to, but distinctly different from, whatever's stuck in your head. By this I mean, if it's rock, go for different rock. If it's jazz, different jazz. In fact you can even use other songs by the same artist, but what really seems to matter most is that the tempo differs.

It's kind of a combination of two other tricks. One common cure is to find a copy of whatever it is, and play that, the other being to play something different and try to 'dislodge' the bothersome tune.

In the first approach, the idea seems to be "let's have it done with by hearing it end, in reality". Your mind is producing 'A', and you apply 'A' to your ears, and you hope to mesh up what happens at your ears with what happens in your mind, namely, that the song will stop.

The latter approach seems to hinge on the notion that, "if I hear something else, it will go away". Your mind is producing 'A', so you apply 'B' to your ears, and to really drive 'A' out, you focus your mind on 'B'.

The difference with what I'm advocating is that you actually try to mentally reinforce the annoying song while hearing something different. Your mind is producing 'A', you apply 'B' to your ears, but while hearing 'B', you really, really try to imagine 'A' some more.

Ok, hopefully it's clear what I'm describing now. Now you can be done with this post if you like.

Really? Still here? Ok, I think the deal is that, if annoying song 'A' is stuck in your head, you have this group of neurons that represents 'A', and that somehow a group like this can get in a pattern of activation that is self-sustaining. I think approach #1 seldom works, because it doesn't challenge the guilty neural assembly. If anything, it just encourages it. I think approach #2 works better, because at a higher level, you do make your brain switch the focus of attention to another, different neural grouping, one for some other song, but this doesn't necessarily mean that the 'A' group activity is disrupted. It's just a palliative for the consciousness, to divert attention. Once the substitute song is over, if group-A is still firing, you get the dreaded song back again. But if you try to recall 'A' while hearing 'B', this encourages group 'A' to try to assimilate the input from your ears, but the input from your ears is something else, doesn't match, and this disrupts the pattern of activity. If there is some specific quality of a pattern of activity that can make it self sustaining, this method stands a chance of driving the neural state off that self-sustaining track.

btw, had you guessed? I'm reading Oliver Sacks' "Musicophilia" right now.

robot update

Despite not having posted in about a month, there is some progress with the rolling robot:
  • the opto-isolators on the L298 solder-board all have all necessary pull-up resistors
  • the gearmotors and the caster wheel are mounted to the deck giving a close-enough approximation to level
  • i've co-opted my 7A-Hr SLB from r/c aircraft starting duties and strapped that to the chassis
  • the L298 board is mechanically affixed onto the chassis

    Now what remains to do is get the arduino physically mounted and do some wiring. I don't want to mount the arduino too permanently, as this is only a temporary controller just to prove out the motor driver board. To my way of thinking, the arduino is to control logic, as the breadboard is to circuit verification; a flexible, re-usable, temporary measure. Anyway, since it doesn't weight anything and there shouldn't be any strenuous accelerations, it's probably going to find itself tethered in place by the wiring.

    Also the 'duino needs a power supply. Originally, the entire point of creating the opto-isolated L298 board was to have the logic and the motors run off separate batteries. I'm thinking, since I have a pile of 'C' cells, and some battery holders for same, I might just rig a 6-cell, 9V source for the arduino, just so I can say the opto-isolated dual battery thing works. Then I fully intend to dispense with the logic battery and try running the 'duino from the same 12V battery as the motors. Ok, I'll put a serious filter in there, but if the AVR can run from the same battery, then in future, I can eliminate the bulky opto-isolator-and-extra battery setup.

    Now there's a little bit of design to deal with, even in this throw-away prototype configuration. The L298 has three control lines per H-bridge; each half of the H-bridge has a high/low drive and there's an over-all enable. I intend to apply the PWM to the overall enable, and drive the other controls Low/High or High/Low to make the H-bridge function like a big old DPDT switch. Then there need to be some pin assignments.

    Then there's a pinch of software necessary. For this round of tests, I intend to read control input from those paddle potentiometers. The AVR chip on the arduino reads these with 10 bits of precision, for a range of values of 0 to 1023. So the quick-n-dirty 'design' I have in mind is to cut this range in half (bit shift right 1), and treat it like a 9-bit 2's complement number. Input from 0 to +255 will translate to PWM values 0 to 255, with the other controls at Low/High. Input from 0 to -255 will also translate to PWM values 0 to 255, but with the other controls at High/Low. So I should get 255 speeds in both directions.