Thursday, October 19, 2006

MItAC update

- October 2006 progress update. Includes links to beta code for audio extraction
http://coltrane.music.mcgill.ca:16080/DDMAL/index.php/October_2006

- previous bug with parsing databases in flipped fashion fixed, updated Randparser on Wikipedia to 1.2.0

- Beinan is writing a program to replace "Bad" occurrences in ASCII datasets with 0 for the purposes of speeding up the textscan() parsing function in MATLAB

- extracted two grooves out of 01.asc. Testing and extraction work ongoing

TO DO:
- extract audio from all databases, stitch them together

Monday, October 16, 2006

MItAC update

- integrated groove tracing algorithm, radial differentiation algorithm, and random access parser. Some problems were found with the parser, and these corrections have been added to create version 1.1.0 of Randparser

- unlike Fribourg and LBNL, the data is presented to the CPU projected on its natural spiral axis without having been unwrapped. My method requires user to specify initial subarray within database containing first part of groove and also its direction. Radians per sample is fixed to the sampling rate and at each increment, we measure distance from intersection between groove and radial line to the center. As the angle falls out of the subarray, the groove tracer and random access parser extract the next subarray. Once these distances are found, we can remove the DC, remove the DC ramp (spiral), normalize, and differentiate.

- appears to work with limited tests on 01.asc. Difficulty is time consumption, the bottleneck is textscan(), a MATLAB function used to load text from an ASCII file. With homogeneous data it is faster, but since we use it with inhomogeneous data (floating points are intermixed with "Bad" data), it's slow. Most of the time is spent parsing subarrays as we move within database. Maybe we can just patch in a C++ parser in the future

- some final things with the parser need to be checked. I parsed subsections of 01.asc and it appears to be horizontally inversed from 01.jpg. Damon is going to see if he gets the same results with the original MITAC parser

- rough estimate is 10 hours to extract audio from 01.asc from top to bottom at 44.1kHz. Reducing sampling rate does not improve performance since bottleneck is the textscan() function in the parser. This is making testing very difficult and time consuming. Once I can confirm it is working with 01.asc, we can run several computers overnight and check the sound in a matter of days

TO DO:
- find out why databases appear reflected in Randparser. Is this in MITAC parser too? Manual inspection of database seems to indicate that Randparser is working correctly as I understood the database. This means I didn't understand the database - maybe it is flipped horizontally

- pick the exact groove in all databases, then distribute CPU load to others with MATLAB. Expected total CPU time is 320 hours for all 32 databases

- record this groove from a turntable so we have the audio we are aiming for

Thursday, October 05, 2006

MItAC update

- completed scripts that can traverse images of spirals and extract radial distance with respect to center. This is done in a block processing manner, where only subarrays of portions of the groove are extracted to work with. The angular spacing between radial distance measurements is controlled by a chosen sampling rate.

- currently I am integrating the MATLAB scripts for: random parsing, groove tracing, and radial differentiation so that I can start loading the databases and extracting audio

TO DO:
- Beinan has provided 32 databases. Need to reclarify the provided data before he leaves for ISMIR