No description
- Go 99.3%
- Makefile 0.5%
- Shell 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
CI / test (push) Successful in 1m24s
- Replaced RMS-based onset detection with pitch-change detection: notes are segmented when frequency jumps >60 cents, catching transitions between actual notes (B0↔E1↔G#1↔C1) instead of only loudness changes - FindPosition now tries octave-up when a note is below the lowest tuning string (e.g., B0 on a 4-string bass maps to B1 on A string fret 2) - This produces real varied bass tablature with notes on E, A, and D strings |
||
| .forgejo/workflows | ||
| cmd/autotabber | ||
| examples | ||
| internal | ||
| pkg/autotabber | ||
| scripts | ||
| testdata | ||
| .gitignore | ||
| .golangci.yml | ||
| .goreleaser.yml | ||
| go.mod | ||
| go.sum | ||
| Makefile | ||
| README.md | ||
| ROADMAP.md | ||
autotabber
Audio-to-guitar-tablature transcriber. Processes audio files or microphone input and outputs guitar tablature in Markdown format.
Quick Start
# Build from source
go build -o autotabber ./cmd/autotabber/
# Transcribe a WAV file
./autotabber -i solo.wav -o transcription.md --verbose
# Capture from microphone
./autotabber -i hw:0,0 -o riff.md
# Use alternate tuning
./autotabber -i drop_d.wav -t DADGBE -o output.md
# Quiet mode (file only, no stdout)
./autotabber -i chord.wav -o quiet.md --quiet
Usage
Usage: autotabber -i <input> [options]
Required:
-i, --input <file|device> audio file (.wav) or ALSA device (hw:0,0)
Options:
-o, --output <file> output markdown file (default: output.md)
-t, --tuning <preset> tuning preset: Standard, Drop D, Open G, DADGAD, etc.
--bpm <bpm> manual tempo override
--time-sig <sig> manual time signature, e.g. 4/4
--quiet suppress stdout tab output
--verbose show progress and debug info
--help display this help
Examples
Microphone capture:
autotabber -i hw:0,0 -o riff.md
File input with verbose output:
autotabber -i solo.wav -o transcription.md --verbose
Custom tuning:
autotabber -i drop_d.wav -t DADGBE -o output.md
Quiet mode (file only):
autotabber -i chord.wav -o quiet.md --quiet
Library Usage
package main
import (
"fmt"
"git.lan.thwap.org/thwap/autotabber/pkg/autotabber"
)
func main() {
cfg := autotabber.DefaultConfig()
src, _ := autotabber.NewFileSource("solo.wav", cfg)
defer src.Close()
fmt.Printf("Sample rate: %d\n", src.SampleRate())
}
Build
go build -o autotabber ./cmd/autotabber/
License
MIT