Done
Administrivia
- Found ISMIR LaTeX template.
Model Building
- Modified music21 code base to ignore ornaments and had pull request accepted.
- Moved to the alpha release of music21 (with some trepidation)
- Set up grammar, parser, and convenient Abstract Syntax Tree (AST) for fingering language (abcDF) in Python.
- Leveraged new parser to implement evaluation methods.
- Implemented Hamming evaluation method for strike fingers.
- Implemented "natural" evaluation method for strike fingers.
- Implemented "pivot" evaluation method for strike fingers.
- Implemented first (striking) finger constraint for Hart model.
- Drafted "reentry" evaluation method for strike fingers.
Doing
- Debugging and testing "reentry" evaluation method.
- Creating more test cases for "infrastructure" code.
- Studying TensorFlow paradigms for connectionist models.
- Implementing Sayegh model (via TensorFlow or from scratch).
Struggling
- The otherwise slick parser module I am using (TatSu) produces an immutable AST. This is cramping my style and promises to get worse as we move along.
- The Parncutt code is a disaster under Python 3. Lot of rework needed here.
- Generally pulling hair out debugging the "reentry" code, which should be trivial. I am doing something stupid.
In Scope
- Re-implementing Parncutt model in framework. (The graph class I was using does not seem to exist in Python3, so this needs to be reworked.)
- Debugging Dactylize 88-key circuit.
- Collecting fingering data from JB performances in Elizabethtown.
- Completing Dactylize II circuit.
- Developing method to align performance data with symbolic data. I think this is going to be essential if we are to use Dactylize data moving forward and a key part of its proof of concept. I plan to have something for this at the ISMIR demo session (September 22 deadline).
- Creating abcD for complete Beringer corpus.
- Moving Beringer corpus to MySQL database.
- Enhancing Parncutt, following published techniques and pushing beyond them.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining corpora for Dactylize data collection (WTC, Beringer, ??).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
- Submitting papers to ISMIR 2018. Abstracts due March 23. Papers due March 30. Ideas: a follow-up demo paper describing Dactylize data collected; a full-length paper describing application of evaluation method to models developed; a full-length description of enhanced and/or novel models, demo of method to align collected performance data with symbolic score.
Done
Model Building
- Refactored Python algorithm ("Dactyler") architecture.
- Implemented unit test framework.
- Migrated Hart algorithm to new framework.
- Enhanced Hart model to support repeated notes with same pitch.
- Put announced ISMIR 2018 deadlines (March 23 and March 30) on NLP calendar.
Doing
- Revamping my corpus module to deal with multiple voices and polyphony in abc/abcD input.
- Supporting first-note fingering constraint in Hart model to enable the "auto-correcting" or "re-entrant" evaluation method suggested by CR.
- Implementing DValuation base class to support evaluation methods.
- Implementing DHamming edit-distance evaluation method.
- Implementing DNatural edit-distance method.
- Implementing DPivot edit-distance method.
- Implementing DReEntry evaluation method.
In Scope for Semester
- Re-implementing Parncutt model in framework. (The graph class I was using does not seem to exist in Python3, so this needs to be reworked.)
- Debugging Dactylize 88-key circuit.
- Collecting fingering data from JB performances in Elizabethtown.
- Implementing Sayegh model.
- Completing Dactylize II circuit.
- Developing method to align performance data with symbolic data. I think this is going to be essential if we are to use Dactylize data moving forward and a key part of its proof of concept. I plan to have something for this at the ISMIR demo session (September 22 deadline).
- Creating abcD for complete Beringer corpus.
- Moving Beringer corpus to MySQL database.
- Enhancing Parncutt, following published techniques and pushing beyond them.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining corpora for Dactylize data collection (WTC, Beringer, ??).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
- Submitting papers to ISMIR 2018. Abstracts due March 23. Papers due March 30. Ideas: a follow-up demo paper describing Dactylize data collected; a full-length paper describing application of evaluation method to models developed; a full-length description of enhanced and/or novel models, demo of method to align collected performance data with symbolic score.
Struggling
- music21 support for abc is either buggy, or I can't read. Having a hard time splitting an abc file into right- and left-hand parts, something that should be trivial.
- The Parncutt code is a disaster under Python 3. Lot of rework needed here.
- Contemplating using Hart as one of the two proof-of-concept models for the methodology paper. I might even be planning on it at this point.
Done
Administrivia
- Secured $3000 Elizabethtown College Faculty Grant award with JB in late April.
- Successfully defended prelim proposal in June.
- Got a full-time job in September at UIC CCTS.
Data Collection
- Repaired original Dactylize circuit damaged in move from NLP Lab.
- Installed Dactylize system in JB's studio at Elizabethtown College in October.
- Prototyped new glove assembly for Dactylize.
- Obtained parts for repair and new Dactylize II system with grant funds and started circuit assembly.
- Successfully loaded Survey III data from Qualtrics to new MySQL diii2 schema.
- Loaded missing Survey I and II data in MySQL to new didactyl2 schema, so we can now perform queries across both data sets, as originally envisioned, and all of our fingering data are now in one place.
- Defined procedure for data collection from performances using GitHub.
Doing
- Updating Didactyl framework to recognize abcD format.
- Completing Parncutt model implementation in framework.
- Debugging Dactylize 88-key circuit.
- Collecting fingering data from JB performances in Elizabethtown.
- Implementing Sayegh model.
- Implementing "autocorrecting" evaluation method suggested by CR to compare models head to head.
In Scope
- Completing Dactylize II circuit.
- Creating abcD for complete Beringer corpus.
- Enhancing Parncutt, following published techniques and pushing beyond them.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining corpora for Dactylize data collection (WTC, Beringer, ??).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
- Submitting papers to ISMIR 2018 (deadline not yet announced, probably in March). Ideas: a follow-up demo paper describing Dactylize data collected; a full-length paper describing application of evaluation method to models developed; a full-length description of enhanced and/or novel models.
Struggling
- Getting reacquainted with Python and music21.
Done
Data Collection
- Created initial table of contents for prelim proposal.
- Debugged LaTeX conflict between color package and uicthesi class. Short answer: don't use color.
Doing
- Drafting early chapters of prelim proposal.
- Drafting Elizabethtown College grant proposal, dove-tailing with Dactylize chapter in prelim proposal.
- Strategizing initial constraints for system--start with finger legato? Outlining planned evolution of model.
- Strategizing enhanced similarity measure. Minimum edit distance with all (weighted) substitutions? Pivot detector?
- Legato detector? "Phrase" detector?
- Debugging, and defining test cases for, post-processing code (dactylizer.pl).
Back-burnered
- Creating abcD for complete Beringer corpus.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining procedure for initial data collection sessions (including Beringer data).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
Struggling
- So much grading, so little time.
- Refinancing house?
- Get a job, hippie.
Done
Administrivia
- Massaged resume.
- Interviewed with Bank of America Merrill Lynch. It went okay, I think.
Data Collection
- Conducted two initial automatic data collection sessions with advanced pianist.
- Identified key wiring connection problems, which we are attributing to non-conductive adhesive in aluminum foil tape.
- Removed tape connections to 48 keys and cleaned key surfaces with Goo Gone.
- Applied new copper tape substrate to posterior section of aluminum tape on white keys.
- Rewired 48 keys with soldered connections to copper tape subsequently physically attached (taped) to copper substrate with conductive adhesive.
- Identified further problems that appear to be primarily post-processing (software) issues.
Doing
- Ordering fans and coffee for the lab from Amazon. Deliver to Department?
- Assembling materials for Chancellor's Graduate Research Award.
- Defining test cases for post-processing code (dactylizer.pl).
- Drafting email to invite Survey II subjects to participate in on-campus sessions.
- Creating abcD for complete Beringer corpus.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining procedure for initial data collection sessions (including Beringer data).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
Struggling
- Need to work on my interviewing skills, which are quite rusty.
Done
Administrivia
- IRB approved protocol amendment #4.
- Submitted $400 ISMIR 2016 registration for reimbursement from BDE's ICR fund.
Data Collection
- Confirmed automatic data collection Oct 1 at 10 a.m.
- Transcribed left hand notation for arpeggios and broken chords in Beringer (technical exercise) corpus.
- Produced abcD to capture right and left hand fingerings for arpeggios and broken chords in Beringer corpus.
- Produced abcD to capture right and left hand fingerings for major and minor scales in Beringer corpus.
- Mounted Dactylize circuit boards on back of piano and removed excess wiring.
- Constructed more finger assemblies.
- Performed initial sanity test with beginning and intermediate pianists.
- Reproduced "slow start" problem in Dactylize system, where initial 50 or so notes in "monitor" sessions all have large numbers of missing or incorrect fingerings assigned. Then the system stabilizes and behaves perfectly. This needs to be debugged, but for the first session, we will just include a 50-note "preamble" for each session.
Doing
- Assembling materials for Chancellor's Graduate Research Award.
- Drafting email to invite Survey II subjects to participate in on-campus sessions.
- Creating abcD for complete Beringer corpus.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining procedure for initial data collection sessions (including Beringer data).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
Struggling
- Focus has been difficult this week, as I was laid off from my job on Monday after almost 17 years. The way forward is suddenly somewhat dim.
Done
Administrivia
- Submitted protocol amendment #4 to IRB on Sep 7. No word yet.
Data Collection
- First automatic data collection scheduled for Oct 1.
- Transcribed left hand notation for Beringer (technical exercise) corpus.
- Transcribed harmonic minor scales for Beringer corpus.
- Implemented Dactylize circuit on breadboards for debugging.
- Constructed more finger assemblies.
Doing
- Assembling materials for Chancellor's Graduate Research Award.
- Drafting email to invite Survey II subjects to participate in on-campus sessions.
- Contemplating supporting multiple "tunes" in abcD. This would complicate abcDE.
- Creating abcD for Beringer corpus.
- Defining procedure for sanity test of production automatic data collector (including Beringer data).
- Defining procedure for initial data collection sessions (including Beringer data).
- Implementing end-to-end machine learning experiment, using Beringer abcD data.
Struggling
- Waiting for IRB approval to pull data from Survey III (WTC).