AngryBot - easier .NET app to IRC interface
So I’ve been working a bit on Angrybot recently. For those of you who don’t know, AngryBot is a wrapper around meebey.net’s smartirc4net IRC interface (which can be found at http://smartirc4net.meebey.net/jaws/ ). Anyways, the idea behind this wrapper was to provide a much simpler interface for people to use an IRC bot as a reporting tool, or as a method of communicating with the people that want to use it.
My view on it is that people are writing their own applications or deamons or services or whatever you want to call them, and want to call IRC functionality from that - they don’t want to be bothered with writing all the IRC handling stuff, (which to be fair, meebey’s code does a lot of it for you), but instead just has hooks into particular commands, or just has it sitting there as a class that they can call “send message” on.
Implementing a command at the moment requires a reference in the project to the Meebey dll, but I am wrapping around that soon.
Now I have a few bugs to fix, and I have to add the parrellism to the normal commands, but its certainly a good start to see it in a public place after sitting on my desktop for 2 years (in various states, including a poker playing bot).
In the mean time, I am currently trying to break/fix some stuff for a “top secret plan”…. mwhahaha haha haha haha ho ho.

Syndicated 2008-09-04 20:56:40 from Holding the Soldering Iron by the Cold End
Arduino as Digital Filter… Hopes downed, and then Revived
I had hoped in my previous post to sample the audio through the use of an analogue input pin on the Arduino, then do some bit manipulation in the form of a Digital filter before playing back. However, my hopes have been crushed with this system:
To test the feasability of this, the code was simple - define an int to store a sample in, call analogRead() to read a byte in, convert this value into a value suitable for the number of output pins, then pass it out.
AnalogRead reads in a value between 0 and 1024, which is a 10 bit number. Because I’ve only got a 6bit DAC, I decided to just take the top 6 bits (I should really try this again with scaling as opposed to just taking MSB).
Now, since starting to write this and battling with lots of media upload tools AND wordpress.com etc, I’ve realised two things. 1) I’m not actually taking the top 6 bits, I’m using the top 2 bits because of a stupidity. and 2) I should use Scaling instead of just using the top 6 bits. I have just tried it again using 6 bits and there is a large improvement, as for scaling, that will have to wait.
My code (which is BAD and WRONG):
void loop() {
buffer = analogRead(analogPin);
PORTD = (byte) buffer >> 4 ; // only use MSB 6 bits
}
The following is an MP3 hosted on SplashCast Here. The first sample is the sample I’m inputting into the arduino, the second and third is the output.
<embed src='http://web.splashcast.net/go/p/UQVA8175RX' wmode='transparent' width='440' height='330' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />

Syndicated 2008-08-28 22:35:53 from Holding the Soldering Iron by the Cold End
Arduino Audio Filter
Whats the difference between Noise Makers and Audio Filters - well, I would expect a level of control. A Noise Maker implies a lack of control - the difference between “din” and “music”. I’ll start this post off with this image, which is a Waterfall image. Waterfalls are spectrum over time - In this case, the frequency is up the side, and the time is across the bottom. The intensity of the colour indicates a voltage at that particular frequency.
What we are seeing is how the frequencies are changing over time when the dials on the board are swizzled, and by comparing this with other audio projects, we are able to see how various features and code changes change the output.
The next stage of the project is Filters - Filters are basically devices which limit frequencies that go through them - there are essentially two types of filters, High pass (which allow high frequencies to go through) and Low Pass (which allow low frequencies through). By combining these together, you can generate Band Pass filters and Notch Filters (although you might make notch filters in a different way).
By adding filters together, you can make filters which let multiple bands (a comb shape) or ban multiple bands. If you have control of your filters, you can change them and manipulate them over time, and apparently, if you generate white noise on one side, and use two bandpass filters, you can make sounds which sound like words - by moving the two filters in and out and widen and narrow.
Anyways, when I was at Uni, I learnt how to build Digital Filters, that is I learnt the electronics behind the DSP, and its quite simple - well, its a little tricky to get them efficient, but a problem that’s been solved time and time again. The system works by multiplying a set of samples in a fashion. Unfortuantly, my choice of modules (50% electronics or low level computing, 25% maths, and about 20% computing theory) means that… I didn’t do the Signals and Systems module because my Maths skills are troubled. I loose the decimal place ok?
So I’ve had a crash course in Fourier Transforms, which are the very basics behind working out the numbers that you need in the sample multipliers… Which is what I’m about to build on this new circuit. So far, I have an analog input (which is my sampling system) and an 6 Bit R2R DAC shield. The first test will be to act as a buffer. The second will to act as an Echo Box, and the third, to Filter.

Syndicated 2008-08-27 22:42:03 from Holding the Soldering Iron by the Cold End
Arduino Noise Maker
I’m so sorry that this blog does seem to be jumping around quite a bit at the moment - one moment its RFID / NFC reading and writing, the second its serial to eithernet connections, and the third its … digital synthesizers? And unfortunatly, this post will be soon followed by a post about IRC robots, when will the random jumble of stuff come together? Soon! Sooon I say SOOOON!
Basically David Reynolds and myself have been working on a Digital Synth on the Arduino board, and been set back by being unable to get components from local shops blah blah etc etc. But finally, tonight, we have had success in building a semi-clone of the Arduino Noise Maker, and this is where I post my Vimeo Video.
Before I do, I need to first apologise to anyone reading this on Advogato - last time I posted a Vimeo video, Advogato went mental and merged my post with the person who posted immediatly before (i.e. the post immediatly below mine). The RSS feed that wordpress generates does seem to be sane and ok, so it makes me wonder if its and Advogato RSS eating/spittingout bug?
So now we're doing a mail delivery order from RS - 4*£0.50 items and then £5 pnp. I dont mind this - apart from if I had known on wednesday that this would be the case, we would have done all our purchases this way, and have had them all ready to go for our build session yesterday.
Not. A. Happy. Bunny. Damn you Maplins. Damn you and your stupid online stock system.
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!