Tuesday, June 05, 2007

ISMIR code release, CAA prep, account problems

- getaudio-2.1.0, a cleaned up and fully documented version of the software used to extract the stereo sine waves for the ISMIR paper is finished and ready for submission

- prepping 250 word CAA abstract for June 8 with Beinan, awaiting metadata for stereo OPDs. Data is oriented in a new way and will require different method of traversing OPDs than in getaudio-2.1.0, so this will start a different branch (version 3)

- account has been deleted on coltrane and cannot find the Wiki page, so unable to publish software or do scp of *.opd files directly from coltrane. Also having problems with Borges! What in the world is going on in accounts administration over there???

Tuesday, May 01, 2007

preliminary analysis of achievable SNR

Problem:
Initial work indicates that using 10X magnification, we are able to achieve sampling frequencies of several hundred kHz and upwards. However, lateral resolution appears to be quite low and the question has been raised if whether the high sampling rate overcomes this quantization error in a manner similar to delta-sigma modulation.

Analysis:
Differential pulse code modulation and delta-sigma modulation operate using the following principles:
1) transmitter/ADC: Using a prediction method, the quantized value of the current input is estimated based on past values. The difference ("delta") between the predicted quantized value and the actual analog value is quantized and stored/transferred digitally.
2) receiver/DAC: Using an identical prediction method to the transmitter/ADC, the quantized value of the current output is estimated based on past output values. By adding these values ("sigma") to the difference values determined in (1), a quantized version of the original output signal is obtained.
3) Quantization noise is further reduced by noise shaping.

It is clear that DPCM or delta-sigma modulation work by attempting to transmit/store the derivative of the analog signal. Since OAR cannot make comparisons with the actual analog position of the groove with the quantized groove, (1) does not occur and the principles do not apply.

However, oversampling alone provides the benefit of lowering the average noise floor in the spectrum. The SNR is identical to a non-oversampled signal, but since the bandwidth is wider, the noise energy is spread out over a larger range. Therefore, LPFing the recovered signal to remove quantization noise outside of the bandwidth of interest increases SNR. With appropriate filtering, each time the sampling rate is doubled we will reduce the noise in the band of interest by 3dB, i.e. gain 0.5 bit of resolution in the band of interest.

There is a good online reference here:
http://www.maxim-ic.com/appnotes.cfm?appnote_number=1870&CMP=WP-10

Saturday, March 03, 2007

workflow out for comments, Langlois report completed

1) mitac_workflow-1.0.0 completed in Visio and sent out for comments

2) Langlois report completed

3) 3D groove tracing algorithm undergoing testing

Tuesday, February 27, 2007

workflow, Langlois report outline, VAS problem

1) Discussed workflow outline with Beinan and completed a draft and sent to Beinan for comments. Specifies expected metadata at the handoff of the OPD files, and the re-iterative communication between us. See below:


Expected with each OPD file:
i) vas_offset (see Glossary)
ii) vas_size (see Glossary)
iii) an indication of which groove I will extract data from. This
can be an image file of the VAS display that has been edited in Paint
with a mark on the groove of interest.

Simon's workflow:

a) Beinan does not logout of Vision, move the record or turn off the
computer until Simon has completed (4). After step (3), the data will
not be easily reproduced since the (0,0) stage position drifts upon
each initialization.

b) Retrieve OPD files, and metadata (i), (ii), (iii) from the
temporary data storage folder on the Wiki. http://132.206.14.10/mitac/data/mitac_data_table.htm

Time: 1 h


c) Check that the indicated groove in (iii) for each database lines
up accordingly when loading the images in a large array, each offset
by (i). If the passed off data is correct, we will see the grooves
indicated in (iii) touch each other perfectly between VAS's. If
problem is perceived, inform Beinan on which VAS's to re-measure.

Time: 1-2 h


d) Check quality of grooves within each VAS. If confident that
software will be able to handle it, inform Beinan to turn off machine.
After this point, new data cannot be easily re-measured.

Time: 2-3 h

e) Manually change variables in scripts to account for database
specific details: vas_offset, vas_size, and the specifications of the
initial subarray that will be analyzed by the block-processor. The
initial subarray begins on the groove described in (iii) and traverses
counter-clockwise. Save raw radial distances.

Time: >4 h, depending on amount of data and any troublesome erroneous
datasets that may disturb the groove tracing algorithm

f) Convert raw radial distances to audio and create presentables
(i.e. graphs, etc.) for discussion and analysis.

Time: 1 h


2) Rough Langlois report outline of accomplishments and future plans. Please provide feedback Ich/Beinan
Accomplishments:
- early testing and familiarization with Wyko NT8000 (bug reports, exploring capabilities and issues with sidewalls, data format export)
- resesarch into previous work and vinyl anomalies (Wiki page on Distortion and imperfections in stylus-based vinyl playback, take concepts from Haber and Fribourg to implement MATLAB software)
- software development, maintenance, and bug fixes (ASCII parser, groove tracing algorithm, radial distance extraction algorithm, block processing algorithm), works by differentiating the lateral undulations of a groove bottom
- audio extraction (<1s) from 78rpm laterally-cut Count Basie "The King" and monophonic sine tone from McGill Audio Test Record
- various anomalies observed and adjusted for during this process (erroneous data in grooves, missing bottom groove information, rising/falling trends, etc.)

Future Plans:
- publish findings to a MIR conference
- move software to version 2, completely 3D with scaleable robustness (tradeoff with speed) to deal with non-idealities in the data when tracing a groove or extracing radial distance
- software will extract 1D slices of height information across the groove at each sampling increment and project it onto a line and display the undulating groove as a 3D mesh
- should be able to extract data from laterally-cut and vertically-cut records as well
- should be compatible with workflow proposed above


3) Worked with Beinan today to explore a VAS stitching problem. We are not sure of the origin, but it may be due to a modification of the ConfigEditor.exe settings. There are several .cfg files - we are not sure which one loads the default factory settings.

4) getaudio-1.0.7 description on Wiki completed.
http://coltrane.music.mcgill.ca:16080/DDMAL/index.php/Audio_Extraction_Software_%28getaudio-1.0.7%29

5) Continuing coding work as discussed earlier

Friday, February 23, 2007

Haber document re-read, Wiki update, S/W update

1) Review all Haber documents new and old for method of obtaining radius. My comments on Haber's process for 78rpm lateral groove outlined below:

a) Illuminate and capture image such that groove bottom is sharply contrasted with sidewalls. Captured images show clear bright streaks and sharply contrasting sidewalls as dark streaks.

b) Program determines disk center and follows groove trajectory spiralling inwards in cylindrical coordinates (R, Φ)

c) Every 8 microns along groove, measure R of groove bottom by determing where the bright groove bottom streak transitions to the sidewalls. This leads to 2 R measurements every 8 microns (61.3 kHz @ 60mm radius), corresponding to the inner and outer light/dark transition of the groove bottom. Strong dependence on edge quality i.e. sharpness of contrast between groove bottom and sidewalls.

d) Take average of the 2 R measurements at every 8 microns

e) Find Ro, C, A, and Φo such that R’-R is minimized for the whole dataset where R’ = Ro + C*Φ’ + A*(sin(Φ’ + Φo))^2.
i. Ro fit eliminates DC bias
ii. C*Φ’ fit eliminates linear progressive bias. This results from constant steady pressure against the stylus as the groove pushes inward, thus there is no current-generating velocity of the stylus magnet in the inducting coil of the cartridge.
iii. A*(sin(Φ’ + Φo))^2 fit eliminates oscillating “wow” effect. This would be a low frequency modulation effect, with a frequency in the same magnitude as the disk revolution frequency. I missed this before - this acknowledges the existence of the sinusoid-ish rising/falling trends in the data we observed.

f) Once R’ is found to optimally fit R, R’-R is taken as the true undulation of the stylus magnet.


2) Working on Wiki update to fully document the software that was used for the extraction of the sine test tone in November. Will document each module separately.


3) Software update to version 2.0.0 moving along. Plan is to work in 3D, with more intelligent groove tracing algorithm. More details to follow.

Wednesday, November 15, 2006

MItAC update

- first audio extraction complete from 78rpm, see getaudio-1.0.6
- first extractions from 33rpm test record complete (1khz, 10khz)

TO DO:
- OPD parser data has incorrect orientation, waiting on fix to begin improving algorithm for audio extraction, since it virtually eliminates wait time on parsing
- investigate ways to include depth in audio extraction
- investigate non-unity pixel aspect ratio role in low frequency modulation observed in getaudio-1.0.6 results

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