Skip to content
 
 

Repository files navigation

Drum Tabs

Drum Tabs

Drum Tabs is an open source, web based, self-hostable guitar, bass, and drum tab viewer and player, similar to Songsterr.

Attribution

Drum Tabs is a drum-focused fork of It's MyTabs by Louis Lam.

Screenshot 2026-08-03 at 11-33-41 Drum Tabs exercises

Live Demo

https://its-mytabs.kuma.pet/tab/1?audio=youtube-VuKSlOT__9s&track=2

Features

  • Free and open source (MIT License)
  • Supports guitar tabs and bass tabs
  • Sync your tabs with audio files (.mp3, .ogg) or Youtube videos
  • MIDI Synth - able to mute tracks and solo tracks
  • Supports .gp, .gpx, .gp3, .gp4, .gp5, .musicxml, .capx formats
  • Converts Ultimate Guitar-style drum ASCII text to MusicXML from the New Tab page
  • Simple UI/UX
  • Mobile friendly
  • Offer different cursor modes:
    • No cursor (just auto scroll the tab) - You can use it to learn to coop with drums, not just following the cursor
    • Highlight the current bar
    • Follow cursor
  • Notes coloring
  • Dark/Light tab colors
  • Able to show the score view instead of tab view
  • Able to share tabs with others with a link
  • Built-in Ultimate Guitar search for highly rated Guitar Pro drum tabs and ASCII drum tabs

Ultimate Guitar search

On the New Tab page, paste the full Cookie header copied from an authenticated Ultimate Guitar browser session, choose a search mode, and search for an artist or song. Guitar Pro results are downloaded through the app and checked for a percussion track before import. ASCII results can be copied from the displayed text area.

The cookie is stored only in the browser's local storage and is forwarded only to Ultimate Guitar requests. It is not stored by the server or written to logs. Treat it like a password and clear it when finished. Ultimate Guitar may reject expired sessions, CAPTCHA-protected requests, or excessive traffic.

Installation

Support: x64, ARM64

Tip: Youtube videos may not work on a private ip address (e.g. 192.168.x.x), use localhost or a public ip/domain instead.

Docker Compose

Download the compose.yaml file and put it in an empty folder.

services:
    app:
        image: emanuelet/drumtabs:1
        ports:
            # Host Port:Container Port
            - "47777:47777"
        volumes:
            # Host Path:Container Path
            - ./data:/app/data
        restart: unless-stopped
docker compose up  # Run in foreground
# or
docker compose up -d  # Run in background

Go to http://localhost:47777 to access the web UI.

Local MCP Server

Run a local stdio MCP server for agents that need full control of this tab library:

DATA_DIR=./data deno task mcp

It provides tools to list, read, create, update, replace, and recoverably delete tabs, plus manage attached audio and YouTube sync records. It is a trusted local control surface: any connected MCP client can read and modify the complete library. The server accepts base64 file content, limits writes to 20 MiB, and requires explicit confirmation for destructive operations.

Cloudflare Deployment

Cloudflare deployment is optional and independent from the local Deno library. It uses Workers, D1, and R2; local MCP data is not kept in sync. Setup and one-time import instructions are in cloud/README.md.

Configure a local MCP client to start it from this repository:

{
    "mcpServers": {
        "drum-tabs": {
            "command": "deno",
            "args": ["task", "mcp"],
            "cwd": "/path/to/drum-tabs",
            "env": { "DATA_DIR": "/path/to/drum-tabs/data" }
        }
    }
}

Docker

docker run -d --name drumtabs -p 47777:47777 -v drumtabs:/app/data --restart unless-stopped emanuelet/drumtabs:1

Go to http://localhost:47777 to access the web UI.

Deno (Non Docker) (Linux/Windows/MacOS)

Requirements:

  • Deno 2.9.4 or above
  • Git
git clone https://github.com/emanuelet/drum-tabs.git
cd drum-tabs

# Check out the latest version from Release page
git checkout 1.X.X --force
deno task setup
deno task start

Go to http://localhost:47777 to access the web UI.

Screenshots

image image image image

Environment Variables

You can create a .env file to use these env vars.

# (string) Server Host (Default: not set, bind to all interfaces)
MYTABS_HOST=

# (string) Server Port (Default: 47777)
MYTABS_PORT=47777

# (boolean) Whether to launch the browser when starting the app (Desktop only) (Default: true)
MYTABS_LAUNCH_BROWSER=true

# (boolean) Disable new teacher and learner registrations after startup (Default: false)
MYTABS_DISABLE_SIGN_UP=false

Keyboard Shortcuts

Tab Player Keyboard Shortcuts:

Key Description Since Version
Space Toggle Play / Pause Initial
Arrow Left Move cursor to the previous bar 1.5.0
Arrow Right Move cursor to the next bar 1.5.0
Arrow Up Restart - Play from the start of the highlighted range 1.5.0
S Play from the first bar containing notes (-2 offset) 1.5.0

Motivation

A few months ago, I saw a music game called Rocksmith 2014 Remastered on sale on Steam. I bought it, grabbed my brother's abandoned bass, and started playing.

I had 100+ hours in the game, and I loved it. However, I started to realize that I was just following the screen and hitting notes, I cannot actually do anything outside the game. So I decided to actually learn to play bass, learn how to read the tab.

So I found many tools online such as MuseScore, Soundslice. Eventually, I subscribed to Songsterr, I absolutely love it, especial for its UI/UX. However, it is not perfect, many songs don't sync with youtube/audio source correctly, the cursor is confusing due to out-fo-sync issues. There is no manual sync feature. I have also looked into other tools like Soundslice, Guitar Pro 8, which offer sync tools, but they are hard to use. Since most of my favourite songs follow the bpm perfectly, I just want something that able to sync the first bar, and good to go.

Plus, I am not a fan of subscription models.

After searching, I could not find any open source projects that is similar to Songsterr, so I decided to make one for myself to learn bass.

Don't forget to ⭐ this repo if you like it!

Side Notes

The demo tab Hare no Hi ni (ハレの日に) by Reira Ushio (汐れいら), which is the ending song from the anime "The Fragrant Flower Blooms with Dignity" (薫る花は凛と咲く).

Beautiful song, and I love the bass line.

It was AI generated on Songsterr, and the bass tab was inaccurate, so I fixed it by my ear.

Since I am a beginner, I re-arranged some parts (fewer slide) to make it easier to play. Hope you enjoy it too.

Reddit post: https://www.reddit.com/r/selfhosted/comments/1nuisjc/i_built_a_selfhosted_guitarbass_tab_player

Free Resources

Special Thanks

Development

# Install backend dependencies
deno install

# Install frontend dependencies
cd frontend && deno install
cd ..

# Start development server (Hot Reload enabled)
deno task dev

About

drum-tabs is an open source, web based, self-hostable guitar, bass, and drum tab viewer and player, similar to Songsterr

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages