Views
No views yet
[N, 6, 21], class 0 = string silent/closed, class k = fret
k−1 (class 1 = open, class 20 = fret 19).onnx_runtime_dart
runtime (no native ORT / FFI, web-capable), but it's standard ONNX.| File | Variant | Best for | EGSet12 (real electric) | Front-end |
|---|---|---|---|---|
tabcnn-gpfx.onnx ⭐ | GuitarProFX-augmented (Pedroza et al., DAFx-24) | electric guitar, effects, real tones | F1 ≈ 0.59 | CQT → dB → [0,1] |
tabcnn.onnx | vanilla (trained on GuitarSet) | clean / acoustic-ish | ~0.45 zero-shot | CQT → raw magnitude |
tabcnn-cqt.bin | — | the shared 192-bin CQT filterbank both need | — | — |
tabcnn-gpfx.onnx unless you specifically want raw-magnitude features —
it's the robust variant (the vanilla model collapses on distorted/electric tones).tabcnn-gpfx.onnx — sha256 8d9ce59157bdab37fb4816d32d7f29f3da0cdbf3c7876707c819af4d1f88e6b7, 833,982 paramstabcnn.onnx — sha256 15c58000ed2d1deb3d3fc07581aa1823482dad91d913399dc0209ef240ad8a51tabcnn-cqt.bin — sha256 4e5dfa1f10f76545a30cbfd3224431503dbad943b1def78624632284e6df597ainput : float32[N, 192, 9, 1] — per frame, a 9-frame context window
of the 192-bin CQT (bins × context × channel). N = a batch of windows.output : float32[N, 6, 21] — per string, a LogSoftmax over 21
classes; class 0 = closed, class k = fret k−1.tabcnn-cqt.bin is that 192-bin filterbank
precomputed (banded, n_fft 32768, boxcar STFT) for a librosa-free front-end —
it matches librosa.cqt at cosine 0.999947 / median magnitude ratio 0.9999.1import librosa, numpy as np
2C = np.abs(librosa.cqt(y, sr=22050, hop_length=512, n_bins=192, bins_per_octave=24)) # [192, frames]
3
4# tabcnn-gpfx.onnx (GuitarProFX — recommended): per-clip dB, then [0,1]
5feats = librosa.amplitude_to_db(C, ref=np.max) # [-80, 0], per clip
6feats = (feats - feats.min()) / (feats.max() - feats.min() + 1e-9)
7
8# tabcnn.onnx (vanilla): RAW magnitude, no log/norm
9# (peak-normalize the *waveform* first: y = librosa.util.normalize(y))
10feats = C
11
12repr_ = np.swapaxes(feats, 0, 1) # [frames, 192]; window = pad 4 each side, [f:f+9] -> [192,9,1]tabcnn-cqt.bin, magnitude = |Σ band·boxcarSTFT| / √length (the blob's
mean/std header fields are 0/1 and unused). Apply the per-variant
normalization above to that magnitude.tabcnn-gpfx.onnx: EGSet12 (12-track, frame-level tab F1) = 0.59 micro / 0.55
macro — MEASURED here (per-track 0.30–0.80), matching the paper's reported
0.585 for this model; on clean GuitarSet it reaches ~0.77. A big lift over the
vanilla model's ~0.45 EGSet12 zero-shot.tabcnn.onnx: held-out GuitarSet tab F1 0.745 (paper 0.748).onnx_runtime_dart faithfully vs the reference (per-string argmax
agreement; standard ops only — Conv/MaxPool/Relu/MatMul/LogSoftmax + a class
reorder for gpfx).amt-tools) model natively uses class 20 = silence, class k =
fret k. The export remaps that to the shared contract above (class 0 =
silent, class k = fret k−1) with a roll, so both .onnx files present the
identical [6,21] layout to the decoder.best_TabCNN_tablature_trancription_model,
CC BY 4.0), the DAFx-24 GuitarProFX model, built on Cwitkowitz's
amt-tools (MIT). Attribution to
GuitarSet + Pedroza et al. required.1@inproceedings{xi2018guitarset, title={GuitarSet: A Dataset for Guitar Transcription},
2 author={Xi, Qingyang and Bittner, Rachel M. and Pauwels, Johan and Ye, Xuzhou and Bello, Juan Pablo}, booktitle={ISMIR}, year={2018}}
3@inproceedings{wiggins2019tabcnn, title={Guitar Tablature Estimation with a Convolutional Neural Network},
4 author={Wiggins, Andrew and Kim, Youngmoo}, booktitle={ISMIR}, year={2019}}
5@inproceedings{pedroza2024guitarprofx, title={Leveraging Real Electric Guitar Tones and Effects to Improve Robustness in Guitar Tablature Transcription Modeling},
6 author={Pedroza, Hegel and others}, booktitle={DAFx}, year={2024}}onnx_runtime_dart/tool/tabcnn/.tabcnn.onnx (vanilla) was trained here on GuitarSet (CC BY 4.0), while the GuitarProFX weights were re-exported from Zenodo record 11406378 (Pedroza et al.). Attribution obligations differ between them and are set out above.cstr/* repositories are conversions where the upstream research team
remains the provider of the model. That description is only half true here, and
a blanket "format conversion only" statement — of the kind added across the
conversion repos in this review — would have been inaccurate for this one. It is
deliberately not made.