Friday, March 23, 2018

2018-03-22 status

Done

Administrivia

  • Requested suspension of TAA support until next January (for tax purposes).
  • Answered interview questions for College of Engineering story on Fifty for the Future award.

Model Building

  • Completed Sayegh implementation.
  • Learned how to modify TatSu AST. 
  • Implemented "pivot alignment" evaluation method.
  • Refactored code for better reuse in new models, especially for segmenting input.
  • Fixed how first and last fingering were being constrained to ensure model preferences for second and penultimate fingerings were not ignored.
  • Drafted ISMIR abstract.
  • Drew a diagram of the subproblems in the domain.

    Doing

    1. Writing up what we have done so far.
    2. Reimplementing Parncutt model in framework using networkx.
    3. Developing better test cases for Sayegh.
    4. Implementing crude automatic segmenter.
    5. Updating abcDE to support manual segmentation.
    6. Completing and polishing abcD for entire Beringer corpus.
    7. Defining initial benchmark corpora and evaluation methodology.
    8. Implementing convenience methods for reporting benchmark results.

    Struggling

    1. Sayegh model produces results that do not seem consistent with training data provided.

    In Scope

    1. Moving Beringer corpus to MySQL database.
    2. Enhancing Parncutt, following published techniques and pushing beyond them.
    3. Enhancing Hart and Sayegh to return top n solutions.
    4. Re-weighting Parncutt rules using machine learning and TensorFlow. (This seems like a good fit.)
    5. Adding support to abcDE for annotating phrase segmentation.
    6. Debugging Dactylize 88-key circuit.
    7. Collecting fingering data from JB performances in Elizabethtown.
    8. Completing Dactylize II circuit.
    9. 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).
    10. Defining procedure for sanity test of production automatic data collector (including Beringer data).
    11. Defining corpora for Dactylize data collection (WTC, Beringer, ??).
    12. Implementing end-to-end machine learning experiment, using Beringer abcD data.
    13. Submitting papers to TISMIR. 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.

    Thursday, March 22, 2018

    2018-03-01 status

    Done

    Administrivia

    • Talked through a few challenges with the NLP Lab.
    • Did a little forum shopping. As a backup plan for ISMIR conference, the TISMIR journal is accepting submissions. 

    Model Building

    • Completed "reentry" evaluation method for strike fingers.
    • Tested edge cases for evaluation and advising methods.
    • Rejected TensorFlow for Sayegh implementation. We just need a trellis graph, a nasty for loop for training, and Viterbi.
    • Stubbed in support for phrase segmentation in modeling framework.
    • Implemented Sayegh training algorithm.
    • Implemented methods to store and recall trained models for reuse.

      Doing

      1. Implementing Sayegh trellis-graph model from scratch, using Python's networkx.
      2. Defining initial benchmark corpora and evaluation methodology.
      3. Implementing convenience methods for reporting benchmark results.
      4. Completing and polishing abcD for entire Beringer corpus.

      Struggling

      1. 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.
      2. The Parncutt code is a disaster under Python 3. Lot of rework needed here.

      In Scope

      1. Reimplementing Parncutt model in framework using networkx.
      2. Moving Beringer corpus to MySQL database.
      3. Enhancing Parncutt, following published techniques and pushing beyond them.
      4. Enhancing Hart and Sayegh to return top n solutions.
      5. Re-weighting Parncutt rules using machine learning and TensorFlow. (This seems like a good fit.)
      6. Adding support to abcDE for annotating phrase segmentation.
      7. Debugging Dactylize 88-key circuit.
      8. Collecting fingering data from JB performances in Elizabethtown.
      9. Completing Dactylize II circuit.
      10. 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).
      11. Defining procedure for sanity test of production automatic data collector (including Beringer data).
      12. Defining corpora for Dactylize data collection (WTC, Beringer, ??).
      13. Implementing end-to-end machine learning experiment, using Beringer abcD data.
      14. 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.