ASCIIMath creating images

Saturday, June 16, 2012

Classic Computing Redux

When I accepted my current Postdoc position, knowing it would mean a move from Canada to France, I decided to all but completely dissolve my classic computer collection.  I just kept my Commodore 8-bitters, that are now in boxes at a friend's place in Pointe-Claire, QC.

However, here in Rennes (and probably everywhere else in France) there are a lot of "braderies", basically organized neighborhood garage sales; we have found these to be a great source of things we need.

And sometimes, one sees something that can't just be left.  Like this Commodore 4-op calculator (Model 776M).  For €1.  No, I won't hack it, it's just too damn cute.

Tuesday, May 22, 2012

Some new toys to play with

I have just finished up some work for a major deliverable at work; so I predict I have a little more time to work on more fun things.  In the last few weeks, I had some mail-order toys come in - this weekend I finally had some time to at least test them!

The first item is an Arduino Uno, to replace the Diecimila that got left in Montreal with the Laser projects. It's an Arduino - it works like Arduinos do.

The other thing I got though was a JY-MCU Bluetooth serial adapter, which promises to be a lot of fun to mess with.  First though, I wanted to make sure it works, so I need a simple USB TTL serial interface.  This is where the Arduino comes in handy, although in a slightly unorthodox fashion.

Arduino Uno without the chip but as a USB serial
adapter - however, in this picture I had Rx and Tx swapped
Rather than loading up a sketch that provides another serial port on other pins of the ATmega chip, I simply removed the chip and hooked the Bluetooth adapter up to pins 0 and 1.  So, I used the Arduino Uno board as just the plain USB serial adapter with TTL levels that I need.

With this setup I successfully managed to send data (using my Mac) from BT to USB and back; using screen as a terminal emulator.

I am looking forward to messing with all this again.

View of the labels for the BT adapter.

Other Projects

This being said, other projects are getting back on track, too. The (actually work-related) microphone array will get some well-deserved attention again.  And finally, I have been roped into helping out with the next edition of the Journée « Science & Musique » that is being organized here at IRISA/INRIA Rennes.  For now I am just helping out a little with the website (the old one can be seen here) but probably I'll get more involved with some of the exhibits as well. My atrocious french is a problem, but we'll see what happens.

Sunday, March 11, 2012

Building a Microphone Array

With all the holes drilled, the
microphone support rails are
being assembled here for the
first time.
METISS, the group I'm doing my postdoc with, does a considerable amount of research on signal separation and localization.  Given that I have some experience with hardware, I am now helping soon-to-be-ex Ph.D. student Nobutaka Ito (he should be defending soon!) with some work on a microphone array.  Once everything is finished and tested, we will be going out and doing some recordings as raw data to throw at algorithms.

Post-assembly checking for alignment,
and filing off of sharp corners. 
The support structure
Originally, we planned to to the construction rather ad-hoc with hand tools - but then I discovered that INSA/INRIA has a "Atelier Mechanique" that I can use - a nicely equipped workshop!  (There are a few tools that I'd like to use they don't have, but nothing critical.)
The array configuration is four offset linear strips of microphones, with 5 cm distance between microphones along each strip.  The distance between strips is such that 3 microphones (2 on one strip and one on the adjacent strip) form an equilateral triangle, that is each microphone is 5 cm to all of its immediate neighbors.

The array all wired up to the A/D converter and hooked
up to a laptop.  We are forced to use an older laptop
since the drivers don't work on a modern OS,
and the IT department doesn't install XP on new ones.
Fixing the microphones
One of Emmanuel's parameters for us building the array was that we couldn't affix the microphones (Sony ECM-C10) in a permanent fashion.  As a result, we are using sticky tack (the kind used to put posters on the wall).  This is less than ideal - it appears to hold reasonably well, but is not totally solid.

The A/D converter
The A/D converter we are using is a Inrevium (Tokyo Electron Device?) TD-BD-16ADUSB, in what looks very much like a homebrew enclosure (this may have been built in-house at IRISA before I got here).  We have encountered two problems with the setup: the first is the age of the drivers.  The CD provides drivers for Windows and Linux; however, the Windows drivers only work on XP, and the Linux drivers won't compile for a 3.x kernel.  I have attempted to fix the Linux drivers without success so far; the problem is that the driver uses old-style mutex locking, and I don't know enough about the "modern" locking mechanisms in the Linux kernel to replace those in the driver, nor do I have the time to dig deeply into kernel driver writing to do it properly.  If anyone is interested, there is some info on a different website.
Close-up of the microphone array. Note that the
microphones can be a bit hard to distinguish from
the bolts holing the support together.

For now, we are just using an old Dell laptop provided by the IT department that runs XP.  It works reasonably well, but initial tests show that the occasional packet gets lost (the converter pushes 4 ms of audio over USB per packet), rate of packet loss dependent on sampling rate.  We don't know (yet) if this is due to the speed of the laptop or simply a limitation of the USB bus.

Preliminary Evaluation
Given the construction and method to affix the microphones, the tolerances of the microphone placement is about 2 mm.  We are planning to use the array primarily for (wideband) speech processing, so with a sampling rate of 16 kHz.  With a max frequency of about 7 kHz (I should double check the antialiasing filter characteristics of the A/D converter), those errors should be tolerable.  At 16 kHz sampling rate, we also stop dropping packets from the converter.  However, before we go out and make actual field recordings, everything will be double- and triple-checked.

Update: See this post for the recordings we made with the array.

Sunday, February 5, 2012

Postdoc in Rennes

The INRIA building on the campus of Université de Rennes 1
As of mid-January I am a Postdoctoral Fellow with the METISS group at IRISA (Institut de recherche en informatique et systèmes aléatoires) one of the research institutes of INRIA (Institut national de recherche en informatique et en automatique).  Within the group, I will be working on multi-channel source separation - at the moment I'm working on some enhancements to the FASST package, in part to familiarize myself with the code.

En France
Adjusting to living in France has been taking a significant chunk of my time.  This was to be expected - moving to a different country is never a simple endeavor.  While my nationality makes it easy for me to live in France, relocating family is a bit more difficult.  The paperwork is mostly done now, so soon I should have some time again to spend on things like... Arduinos! FPGAs! MIDI!

For that to happen of course I need my equipment and parts.  That should, along with the rest of our furniture, arrive this week - as I'm writing this, our apartment has just one piece of furniture...

Friday, December 23, 2011

ICASSP 2012 paper(s)

View of the Kyoto Tower, image from
Wikipedia, by Bernard Gagnon
Well, the ICASSP 2012 reviews came in yesterday.  For me, there were mixed results: one paper accepted and one paper rejected.  The paper that got rejected I was really hoping for because it's my own idea and thus I would HAVE to present it (along with a brief vacation in Japan, of course!) while the other is a collaboration with a (now former) colleague, Mahmood Movassagh.  Hopefully we can both go to the conference, but we'll still have to fight it out who gets to present it. ;-)

The accepted paper is "JOINT ENTROPY-SCALABLE CODING OF AUDIO SIGNALS" by Mahmood Movassagh, Joachim Thiemann and Peter Kabal, an examination of a Huffman-coding like bit allocation that allows for scalable transmission and decoding. A key part is the joining of adjacent quantization regions which I talked about a bit in a previous post.

The rejected paper is on tonal perception applied to singing voice detection.  One positive note is that ICASSP reviews in general are very thorough and useful for making improvements.  I will continue working on the idea; perhaps ICASSP wasn't the best venue for that work anyways.  I'm now looking at ISMIR as a better place to submit the revised paper to.

Wednesday, December 21, 2011

LASERS!

Playing with Arduino and Lasers. This is part of a SUPER SECRET!! research project with Philip Roche of the McGill Photonics Lab.
Running at low power for alignment...
FULL POWER! FOR GREAT JUSTICE!
More on this as it develops...

Thursday, December 8, 2011

A view on the first year of my blog

It's now one year since I've started this blog.  I haven't done as much blogging as I set out to do, but that was to be expected; overall there are now 27 posts (28 if you count this one), 19 of which have actual technical content.  I consider this actually pretty good, for my standards.  The trick of course is to make next year better!  I'll have to juggle that with my new life in Rennes, but it's a challenge I can rise up to!

Popularity-wise this blog has not done too badly either.  Blogger reports about 1864 hits to date; the most popular article being about my Amiga 1000 mod - though if taken together, the SIDschield articles are the main draw (this is counting individual article hits only - blogger can't show tag requests AFAICT).  The SIDshield is something I definitively will continue working on, but I think I will focus more on VHDL once I'm in Rennes.  I think I will shift my focus on the research and MATLAB related content in the future.

Weirdly, I have only ever received one comment, on Further adventures with Mercurial, which is now effectively out of date (the relevant packages on the latest Ubuntu releases are at sufficiently high versions).  It's a pity; any blog writer really likes comments, it makes one feel relevant. :-)

Onwards to the next year of posting!