Sign inSign up

durwasa/oto

By durwasa

Updated 11 months ago

Oto: A Source-to-Source Transformation Framework for Guitar Tablature

Image
0

257

durwasa/oto repository overview

Oto (音) - Guitar Tablature Compiler

A source-to-source transformation framework for intelligent lead guitar transposition using MLIR compiler infrastructure.

Overview

Oto addresses the complexity of lead guitar transposition, which unlike chord transposition, requires sophisticated analysis of:

  • Non-linear fretboard geometry
  • Anatomical constraints on finger positioning
  • Drone note resonance requirements
  • Position-dependent techniques (hammer-ons, bends, slides)

Features

  • Custom DSL with Flex/Bison parser for tablature notation
  • MLIR-based transformations for intelligent transposition
  • Tensor representation encoding tablature as 6×T tensors (strings × time positions)
  • Range analysis with string-hopping algorithm for pentatonic scales
  • Standard transposition with intelligent open string repositioning

Quick Start

# Pull the image
docker pull durwasa/oto

# Run with your tablature file
docker run oto ./bin/app ../test/example1.dsl --with-pentatonic

Input Format

tuning: E A D G B E
tabs:
E|---------------|
B|---------------|
G|---------------|
D|-2-7---8---13--|
A|---------------|
E|---------------|

Transformation Passes

  • Transpose Pass: Standard transposition with capo placement
  • Pentatonic Pass: String-hopping for playable fingering patterns (ε=4 threshold)

Technology Stack

  • LLVM 17 / MLIR
  • Flex & Bison for parsing
  • C++17
  • Ubuntu 22.04 base

Project Repository

Full source code and documentation: github.com/durwasa/oto

Citation

If you use Oto in your research, please cite:

Oto: A Source-to-Source Transformation Framework for Guitar Tablature
MLIR-based intelligent lead guitar transposition

Keywords: guitar, tablature, compiler, MLIR, music, transposition, DSL, LLVM

Tag summary

Content type

Image

Digest

sha256:38da20978

Size

509.9 MB

Last updated

11 months ago

docker pull durwasa/oto