Team Status Update 10/17

Model Updates:
Models both have results on songs, best for predictive is 59% and best for generation is 77.8%.

Risks are that 80% isnt reachable, so we either decide on changing target, or accept a lower threshold as more reasonable given typically playing habits.

Generation quality hasnt been tested either, just the next note prediction, so this has to be done manually by testers

Jai: Part B:
Culturally, there is an argument about not having generative AI inside of the arts. Just because generative tools like Suno already exist doesn’t mean making more is acceptable. However this is meant to be a tool which has human input which leads the song, rather than creating something purely for commercial gain, taking the human out of the music. The goal is for someone to play the guitar and be able to get a fuller experience as if they were in a band. It does not replace the band, and it doesn’t lead the experience. Rather is accentuates a guitar player’s own capabilities via the accompaniments.

Jai Status Report 10/17

For prediction model statistics

chords of history top-1 top-3 top-5 top-10 next-chord-change top-1
1 0.375 0.634 0.750 0.884 0.328
4 0.453 0.683 0.782 0.896 0.412
8 0.497 0.712 0.801 0.903 0.454
16 0.527 0.732 0.814 0.909 0.484
32 0.558 0.752 0.827 0.914 0.517
64 0.583 0.768 0.838 0.918 0.539
128 0.590 0.773 0.841 0.920 0.542
label classes top-1 repeat-last margin
full 49 0.590 0.289 +0.301
major/minor only 25 0.620 0.320 +0.300
root only 13 0.656 0.362 +0.294

The above chart is about removing complexities from the chosen chord and counting those as the same chord or separating them.

error type share of errors
predicted the previous chord again 33.4%
wrong root, unrelated 23.6%
right root, wrong quality (e.g. 7 vs major) 15.5%
root a whole tone away 10.2%
fifth or fourth away, same quality 9.1%
no-chord involved 5.0%
relative major/minor 3.3%

It is very possible that the 80% goal is unreasonable. In many songs at any given point, a player is strumming the same chord over and over again so it makes sense that this is a prediction error. Additionally adding more training data didnt help after ~60k.

Tested different model sizes for generations

size params nats/note (lower is better) top-1 clean top-5 clean top-1 with +/-30 ms jitter top-1 jitter + 80 ms sort p95 decode, ms/token train hours per epoch
XS 10M 1.665 0.748 0.923 0.490 0.730 0.90 3.6
S 26M 1.592 0.758 0.928 0.499 0.741 1.42 8
M 53M 1.521 0.772 0.934 0.512 0.754 1.85 14
L 114M 1.479 0.778 0.936 0.521 0.762 3.25 25
XL 207M 1.467 0.778 0.935 0.525 0.761 3.94 43
XXL 404M not trained – – – – 10.13 about 90

This metric is given the previous information, how accurate is the generated token given the prediction.

The largest model ran out of memory on the 32gb gpu so I couldnt train it

Behind on training the XXL model but most likely I’ll skip it. It’ll be slower based on the trend, not helping accuracy.

Next week i’ll do pretraining for M or L model. Measure latency on laptop(or just keep it and test on the lab device and try to sample input and output on it.

Do more chord evaluation and latency, including when paired with the predictive model

Tim’s Status Report (10/3)

MIDI Guitar Hardware Update

Donor guitar

  • Fender Squier Telecaster (25.5″ scale, 21 frets)
  • Chosen for its bolt-on neck, roomy control cavity, and low cost
  • An initial check showed 18″ from the nut to fret 21, which matches the theoretical 25.5″ scale layout

Fret sensing plan

  • A custom flex PCB overlay sits on the frets, with 126 pads (6 strings × 21 frets)
  • Each pad has its own trace, and the grounded string pulls a pad low when pressed
  • This lets us detect chords with several strings on the same fret

Measurements we’re collecting for the PCB layout

  • Nut-to-fret-crown distances, checked against the calculated fret positions
  • Fret crown width, height, and length
  • Fretboard width at the nut, fret 12, and fret 21, plus the fretboard radius
  • Each string’s lateral position at frets 1, 12, and 21, plus at the nut and saddle
  • String gauges and nut-to-saddle distance
  • Baseline string action, to plan for the overlay thickness

Pluck and velocity sensing: Roland GK-3

  • We selected the Roland GK-3 divided (hexaphonic) pickup, which gives a separate signal for each string
  • It mounts without drilling, so the stock bridge stays in place and each string’s ground path is preserved
  • It also makes the setup reversible, which suits prototyping
  • Our own ADC and firmware will read the six signals for pluck timing and velocity
  • Still to confirm: breakout box and cable, mounting position on the Tele, and ADC front end

Next steps

  • Finish the measurements and generate the pad layout
  • Order a test flex PCB, and prototype the scanning firmware on a bench board first

Aaqib Status Report (10/3)

  • Research more types of piezo devices for the guitar sensors.
  • Rationale: Pickups are currently more than a $100. Even though we have the budget for it, I want to ensure that the saddles are the only option before I move ahead.
  • Circuitry schematic in the works.
  • Looking into methods of testing without matrix PCB for rationalizing if current design choices will be viable.

Team Status Update 10/3

Trained and tested prediction model
Model Risks:
Next-chord prediction is way under the 80% top-1 target (best: 50.7%). Root-only accuracy is 58%, so the gap is probably mostly label noise, not model weakness.

Robustness to live timing jitter misses our target with a 29% relative accuracy drop vs. a 10% goal. We are considering ordering simultaneous notes deterministically before tokenizing, and training with more jitter variety.

Piezo Pickups:

Looking for a cheaper alternative to make an affordable product.
Piezo circuitry schematic close to completion.

Jai Status Report 10/3

Some results from what I tested
Transformer overfit test: loss 0.014, confirming the training loop and model heads are correct.

Short training run (25.9M-param model, 6,000 steps, ~200M tokens): next-note top-1 accuracy 67.7% on clean input, 46.1% under timing jitter.

LightGBM next-chord baseline on the full 409,936-song corpus: 50.7% top-1 on next-bar chord, 46.8% on next-chord-change

 

Progress is ahead. Next week I hope to see if 80% goal is actually reasonable given the current scores. If i can get it up to ~65 i’ll keep trying for 80%