{"id":50916380,"url":"https://github.com/madisonrickert/abletab","last_synced_at":"2026-06-16T15:32:14.039Z","repository":{"id":363885571,"uuid":"1264516150","full_name":"madisonrickert/abletab","owner":"madisonrickert","description":"AbleTab: view any Ableton Live MIDI clip as guitar tablature, pick a tuning, and export PDF or ASCII tab","archived":false,"fork":false,"pushed_at":"2026-06-10T20:07:39.000Z","size":3788,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T20:19:53.342Z","etag":null,"topics":["ableton","ableton-extensions","ableton-live","guitar-tablature","midi","music-notation"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/madisonrickert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-10T00:34:01.000Z","updated_at":"2026-06-10T20:09:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/madisonrickert/abletab","commit_stats":null,"previous_names":["madisonrickert/abletab"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/madisonrickert/abletab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisonrickert%2Fabletab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisonrickert%2Fabletab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisonrickert%2Fabletab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisonrickert%2Fabletab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madisonrickert","download_url":"https://codeload.github.com/madisonrickert/abletab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisonrickert%2Fabletab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34412788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ableton","ableton-extensions","ableton-live","guitar-tablature","midi","music-notation"],"created_at":"2026-06-16T15:32:13.824Z","updated_at":"2026-06-16T15:32:14.033Z","avatar_url":"https://github.com/madisonrickert.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AbleTab\n\n[![CI](https://github.com/madisonrickert/abletab/actions/workflows/ci.yml/badge.svg)](https://github.com/madisonrickert/abletab/actions/workflows/ci.yml)\n[![Latest release](https://img.shields.io/github/v/release/madisonrickert/abletab?label=release)](https://github.com/madisonrickert/abletab/releases/latest)\n[![License: MIT](https://img.shields.io/github/license/madisonrickert/abletab)](LICENSE)\n[![Ableton Live Suite 12.4.5+](https://img.shields.io/badge/Ableton%20Live%20Suite-12.4.5%2B-black)](https://www.ableton.com/en/live/extensions)\n[![Stars](https://img.shields.io/github/stars/madisonrickert/abletab?style=flat)](https://github.com/madisonrickert/abletab/stargazers)\n\nView any MIDI clip in Ableton Live as stringed-instrument tablature. Pick an instrument preset or dial in a custom tuning, then export **PDF** or **ASCII tab**. Built on the [Ableton Live Extensions SDK](https://www.ableton.com/en/live/extensions) (beta).\n\n![AbleTab: see any MIDI clip as guitar tab, pick a tuning or instrument, and export PDF or ASCII tab](docs/social-preview.png)\n\n## Features\n\n- **Smart tab conversion**: Renders a selected MIDI clip as monospace tablature. Fingerings are chosen by [tutts](https://github.com/madisonrickert/tutts), an HMM/Viterbi engine that picks the easiest playable path across the whole clip.\n- **Instrument presets**: Standard Guitar, Drop D, DADGAD, Open G, 7-String Guitar, Bass, and Ukulele, plus a fully custom mode: 4 to 8 strings, any per-string tuning, configurable fret count.\n- **Quantize**: Snap onsets to a 1/4 to 1/32 grid, or turn snapping off.\n- **Octave shift with range detection**: When a part sits outside the instrument's range, an info bar offers the one-click octave shift that fits it best; or shift manually from the Tuning menu.\n- **Export**: **PDF** and **ASCII tab** (`.txt`, wrapped at a column width you choose).\n\n## Install\n\nDownload the latest **`.ablx`** from the [**Releases** page](https://github.com/madisonrickert/abletab/releases/latest), then:\n\n1. In Ableton Live, open **Preferences → Extensions** (with Developer Mode **off**, so Live manages the extension).\n2. Drag the `.ablx` onto that page.\n3. Right-click any MIDI clip → **Extensions → Show Tab**.\n\nRequires **Ableton Live Suite 12.4.5 or newer with Extensions** (currently in beta).\n\n![The AbleTab window floating over a Live Set, showing a MIDI clip rendered as tablature](docs/screenshot-live.png)\n\n### Limitations\n\n- The time signature comes from the first scene of the Set (the SDK does not expose the clip's own scene or the global signature); clips in other signatures render with the first scene's barring.\n- Tab is read-only: note edits happen in Live's piano roll.\n\n## Build from source\n\nThis project depends on the Ableton Extensions SDK, which is not published to npm and is not bundled here. Obtain it from Ableton, then:\n\n```bash\ncp .env.example .env          # set ABLETON_SDK_PATH to your unpacked SDK\nnpm run setup                 # vendor the SDK tarballs + install\nnpm start                     # build + run in the Extensions CLI\n```\n\n| Command | Purpose |\n|---|---|\n| `npm test` | Pure unit tests (CI-safe; no SDK needed). |\n| `npm run test:integration` | `tutts` pipeline + license-notice tests. |\n| `npm run typecheck` | Type-check the Node side + the webview. |\n| `npm run build` | Production build → `dist/extension.js`. |\n| `npm run package` | Build the installable `.ablx` into `release/`. |\n\n## Acknowledgements\n\nFingering algorithm is powered by [tutts](https://github.com/madisonrickert/tutts), a TypeScript port of [tuttut](https://github.com/natecdr/tuttut).\n\n## Other extensions by the developer\n\nAbleTab is my third extension. Go check out my others!\n\n- [Sheet Music](https://github.com/madisonrickert/ableton-sheet-music-extension): View an Ableton Live MIDI clip as sheet music\n- [AbleVSEP](https://github.com/madisonrickert/ablevsep): Separate any audio clip into stems with any of MVSEP's 100+ models, right inside Ableton Live \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadisonrickert%2Fabletab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadisonrickert%2Fabletab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadisonrickert%2Fabletab/lists"}