acoustic-solo-dadaGP
A modification of DadaGP tailored for acoustic solo guitar workflows. It supports alternative string tunings and multi‑track acoustic/clean guitar parts, with a simple CLI and a small public Python API.
Table of Contents
- Background & Attribution
- What’s Changed
- Features
- Installation
- Quick Start
- CLI Reference
- Python Reference
- Contributing
- License
Background & Attribution
This project is a fork of dada-bots/dadaGP. Credit to the original authors for the foundational GP↔︎token pipeline.
What’s Changed
- Enhanced Acoustic Support — optimized defaults and checks for acoustic/clean guitar usage.
- Compatibility with pyguitarpro — works with
pyguitarpro>=0.9. - Alternative Tunings — supports non‑standard tunings (drop D, Celtic, etc.).
- Multi‑track Handling — process up to 3 acoustic/clean tracks; optional merge‑down to one.
- Refined CLI — ergonomic
asdadagptool for encode/decode/process/info. - Token Utilities — helpers for measure splitting, repeats/alternatives, and tuning extraction.
Features
- Convert
.gp3/.gp4/.gp5/.gpx⇆ token text files - Optional track merge: keep only the first acoustic/clean track and strip
cleanX:prefixes - Measure & repeat analysis helpers (playing order, measure objects)
- Basic file validation / info summaries
- Small Python API for scripting
Installation
From PyPI (recommended)
pip install acoustic-solo-dadaGP
From source
git clone https://github.com/austinliu05/acoustic-solo-dadaGP.git
cd acoustic-solo-dadaGP
pip install -e .
Python >=3.8 is required.
Quick Start
# Encode a Guitar Pro file to tokens
asdadagp encode song.gp5 tokens.txt --artist "John Doe"
# Decode tokens back to Guitar Pro
asdadagp decode tokens.txt song_out.gp5
# Process tokens: merge to single acoustic track
asdadagp process tokens.txt processed.txt --merge-tracks
# Process tokens with structured measures JSON (includes tuning & playing order)
asdadagp process tokens.txt processed.json --merge-tracks --measures
# Inspect file info (works for both .gp* or token files)
asdadagp info song.gp5
asdadagp info tokens.txt
CLI Reference
The package installs the asdadagp command.
encode — Guitar Pro → tokens
asdadagp encode INPUT.gp[3|4|5|x] OUTPUT.txt [--artist NAME] [--tuning]
INPUT.gp*— Guitar Pro file to encodeOUTPUT.txt— destination token file (one token per line)--artist NAME— optional first‑line artist token (default:"Unknown")--tuning— if set, append tuning info to note tokens; otherwise only string tunings in the header
decode — tokens → Guitar Pro
asdadagp decode INPUT.txt OUTPUT.gp5
INPUT.txt— token file produced byencode/processingOUTPUT.gp5— Guitar Pro output (GP5 format is typical target)
process — transform token streams
asdadagp process INPUT.txt OUTPUT.(txt|json) [--merge-tracks] [--measures]
--merge-tracks— Merge all tracks into 1 (otherwise it keeps only the first acoustic/clean guitar track) and removecleanX:prefixes (e.g.,clean0:note:s6:f0:D3 → note:s6:f0:D3)--measures— output a JSON object with:tokens— index→token map (all processed tokens)measures— list of per‑measure token listsplaying_order— measure indices in actual playback order accounting for repeats/alternativestuning— string tuning extracted from tokens
If
--measuresis used,OUTPUTmust end with.json.
info — summarize a file
asdadagp info INPUT.(gp3|gp4|gp5|gpx|txt)
- For
.gp*files: prints title/artist/album/track count/measure count/tempo + per‑track tunings - For token files: prints token counts and rough token‑type histogram
Python Reference
Import from the top‑level package asdadagp:
from asdadagp import (
__version__,
# main conversions
asdadagp_encode, guitarpro2tokens,
asdadagp_decode, tokens2guitarpro,
# processing helpers
get_string_tunings, tracks_check, tokens_to_measures, measures_playing_order,
# utilities
get_tuning_type, get_fret, convert_spn_to_common,
# constants
instrument_groups, supported_times, wait_token_list2,
)
Conversions
asdadagp_encode(input_file: str, output_file: str, note_tuning: bool, artist_token: str) -> None
Encodes a Guitar Pro file into a token text file.
- input_file: path to
.gp3/.gp4/.gp5/.gpxfile - output_file: path to write tokens (one per line)
- note_tuning: if
True, append tuning to note tokens - artist_token: first‑line artist token (e.g.,
"John Doe")
Related lower‑level function:
guitarpro2tokens(song: guitarpro.Song, artist: str, verbose: bool, note_tuning: bool) -> list[str]
Converts an in‑memory guitarpro.Song into tokens.
asdadagp_decode(input_file: str, output_file: str) -> None
Decodes a token text file back into a Guitar Pro file.
Related lower‑level function:
tokens2guitarpro(all_tokens: list[str], verbose: bool = False) -> guitarpro.Song
Builds an in‑memory guitarpro.Song from tokens.
Processing
get_string_tunings(tokens: list[str]) -> list[str]
Extracts per‑string tunings from a token list.
tracks_check(tokens: list[str], merge_track: bool) -> list[str]
Optionally merges to the first acoustic/clean track and removes cleanX: prefixes.
tokens_to_measures(tokens: list[str]) -> list[TokenMeasure]
Parses tokens into measure objects (repeat/alternative markers retained in structure).
measures_playing_order(measures: list[TokenMeasure], tokens: bool = False) -> list[int] | list[list[str]]
Computes actual playback order considering repeats and alternatives. If tokens=True, returns the measures’ token lists in order rather than indices.
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit:
git commit -m "feat: add your feature" - Push:
git push origin feature/your-feature - Open a Pull Request
License
Released under the MIT License. See LICENSE.
Original project dadaGP by dada-bots is MIT as well.
Metadata
Release files for acoustic-solo-dadaGP 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| acoustic_solo_dadagp-0.1.0.tar.gz | 54.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acoustic_solo_dadagp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.0 kB
Release files / acoustic_solo_dadagp-0.1.0.tar.gz
| Download URL | acoustic_solo_dadagp-0.1.0.tar.gz |
|---|---|
| Size | 54.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d3c19265ebb8427b1c8312b8bcb74b02a93a309e3f6d792a384d927ea0b577bb
|
|
BLAKE2b-256 checksum How to use checksums |
2ed5c0de362119e2b5771e75ce791888dd07f9d4dbdb7ae8e6379b723c8b37db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|
Release files / acoustic_solo_dadagp-0.1.0-py3-none-any.whl
| Download URL | acoustic_solo_dadagp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 54.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d84b34bfa63257d0416816b7d17c27733b881e052ccf0ad7291a0aecd0efb6b
|
|
BLAKE2b-256 checksum How to use checksums |
5583c0e12b4da8742630d6b28cdf341bfef8555ddba7a7904178a54dcdbb218c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|