SteveMCWin/ttune

A guitar tuner for your terminal

48

stars

81

commits

Go

primary language

Apr 14, 2026

updated

bubbletea
golang
lipgloss
music
tui
Browse cluster: Go TUI Applications with Bubble Tea

README

tTune

Cool banner :D

tTune is a stylized, extendable, keyboard oriented guitar tuning app right in your terminal!

Note: tTune is still actively developed. Future releases may be incompatible with configurations of previous versions due to my lack of foresight and poor system design skills. If you cannot run the program after updating, please back up and delete your ~/.config/ttune directory and try running tTune again.


Showcase


Tuning G string demo


Tuning view


Settings view

Features

  • Pitch detection based on the YIN algorithm
  • Modern terminal UI
  • Easily customizable settings
  • Batteries included

Dependencies

  • Go 1.24
  • Portaudio 19.7.0

Arch Linux

sudo pacman -S pkgconf portaudio go

Debian

sudo apt-get install pkg-config portaudio19-dev golang-go

Installation

Arch Linux

yay -S ttune

Build From Source

# get dependencies first
git clone https://github.com/SteveMCWin/ttune.git
cd ttune
go build

Customization

You can add your own options to custom_options.json as long as you follow the existing format. You can also override existing options by defining a custom option with the same name (the border styles cannot be overriden).

Note: If something breaks, back up and delete the edited files or the entire ~/.config/ttune/ directory - the defaults will be regenerated on the next run.


Ascii Art

Place your own ASCII art files in ~/.config/ttune/art/. To display a tuning alongside your art, insert %n% where you'd like the n-th note to appear ((see ~/.config/ttune/art/utf_guitar for reference)).

Recommended size: no wider than 24 characters and no taller than 20 lines. Oversized art will not render properly.


Border Style

Not extensible at the moment :^/

Want this to be moddable? Open an issue.


Color Theme

To add a new color theme, open ~/.config/ttune/custom_options.json and find the list of color themes. Add an entry with:

FieldDescription
nameName of the color theme
primaryHex color for borders
secondaryHex color for text
tertiaryHex color for selections

Note: Your terminal's background color will not be affected.


Displayed Tuning

To add a new tuning, open ~/.config/ttune/custom_options.json and find the list of tunings. Add an entry with:

FieldDescription
nameName of the tuning
notesList of notes it contains

Note: Each note must be exactly 3 characters long. Pad shorter note names with spaces (e.g., "E4 ").

Planned Features

  • Frequency detection
  • Customizable settings
  • Separate user settings
  • Scrollable settings options
  • Options for frequency detection
  • Improve pitch detection

Contributors

SteveMCWin

79 commits

cilginc

2 commits

SteveMCWin/ttune

A guitar tuner for your terminal

48

stars

81

commits

Go

primary language

Apr 14, 2026

updated

bubbletea
golang
lipgloss
music
tui
Browse cluster: Go TUI Applications with Bubble Tea

README

tTune

Cool banner :D

tTune is a stylized, extendable, keyboard oriented guitar tuning app right in your terminal!

Note: tTune is still actively developed. Future releases may be incompatible with configurations of previous versions due to my lack of foresight and poor system design skills. If you cannot run the program after updating, please back up and delete your ~/.config/ttune directory and try running tTune again.


Showcase


Tuning G string demo


Tuning view


Settings view

Features

  • Pitch detection based on the YIN algorithm
  • Modern terminal UI
  • Easily customizable settings
  • Batteries included

Dependencies

  • Go 1.24
  • Portaudio 19.7.0

Arch Linux

sudo pacman -S pkgconf portaudio go

Debian

sudo apt-get install pkg-config portaudio19-dev golang-go

Installation

Arch Linux

yay -S ttune

Build From Source

# get dependencies first
git clone https://github.com/SteveMCWin/ttune.git
cd ttune
go build

Customization

You can add your own options to custom_options.json as long as you follow the existing format. You can also override existing options by defining a custom option with the same name (the border styles cannot be overriden).

Note: If something breaks, back up and delete the edited files or the entire ~/.config/ttune/ directory - the defaults will be regenerated on the next run.


Ascii Art

Place your own ASCII art files in ~/.config/ttune/art/. To display a tuning alongside your art, insert %n% where you'd like the n-th note to appear ((see ~/.config/ttune/art/utf_guitar for reference)).

Recommended size: no wider than 24 characters and no taller than 20 lines. Oversized art will not render properly.


Border Style

Not extensible at the moment :^/

Want this to be moddable? Open an issue.


Color Theme

To add a new color theme, open ~/.config/ttune/custom_options.json and find the list of color themes. Add an entry with:

FieldDescription
nameName of the color theme
primaryHex color for borders
secondaryHex color for text
tertiaryHex color for selections

Note: Your terminal's background color will not be affected.


Displayed Tuning

To add a new tuning, open ~/.config/ttune/custom_options.json and find the list of tunings. Add an entry with:

FieldDescription
nameName of the tuning
notesList of notes it contains

Note: Each note must be exactly 3 characters long. Pad shorter note names with spaces (e.g., "E4 ").

Planned Features

  • Frequency detection
  • Customizable settings
  • Separate user settings
  • Scrollable settings options
  • Options for frequency detection
  • Improve pitch detection

Contributors

SteveMCWin

79 commits

cilginc

2 commits

Languages

Go

100.0%