Skip to main content

J-6 Chords

A lightweight desktop GUI that reads live MIDI notes from a Roland J-6 (or any available MIDI input), detects chord names, and displays both the chord and pressed keys on a piano-style keyboard.

Features

  • Auto-detects a MIDI input port (prefers names containing J-6/J6)
  • Real-time chord detection from held pitch classes
  • Displays:
    • detected chord name (for example: C maj7, D min9, G 13)
    • currently held note names (for example: C4 E4 G4)
    • an on-screen keyboard (range C3 to C5) with pressed-key highlighting
  • Auto-reconnects when the MIDI device is disconnected/reconnected

Requirements

  • Python 3.10+
  • A MIDI input device (Roland J-6 recommended)
  • OS MIDI support (CoreMIDI/ALSA/etc.)
  • uv package manager

Setup (uv)

# install dependencies from pyproject.toml
uv sync

Run

uv run j6-chords-gui

Backward-compatible launcher still works:

uv run python j6_chord_gui.py

Build package

./scripts/build_package.sh

Build artifacts are written to dist/.

Publish

Automatic publish is handled by GitHub Actions on each published GitHub Release:

  • Workflow: .github/workflows/publish-pypi.yml
  • Details and credential checklist: PUBLISHING_TODO.md

Manual publish fallback (token-based):

PYPI_API_TOKEN=... ./scripts/publish_package.sh

File Overview

  • pyproject.toml: project metadata, dependencies, and build configuration
  • src/j6_chords/app.py: main application (MIDI input, chord detection, GUI rendering)
  • j6_chord_gui.py: backward-compatible launcher
  • scripts/build_package.sh: local build and package validation
  • .github/workflows/publish-pypi.yml: CI build/publish workflow
  • PUBLISHING_TODO.md: required credentials and where to configure them

Notes

  • If multiple MIDI devices are connected, the app uses the first matching J-6 port; otherwise it falls back to the first available MIDI input.
  • Chord naming is pattern-based and focuses on common qualities/extensions.

Release files for j6-chords 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for j6-chords 0.1.0
File Size Uploaded
j6_chords-0.1.0.tar.gz 6.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for j6-chords 0.1.0
File Interpreter ABI Platform
j6_chords-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.8 kB

Release files / j6_chords-0.1.0.tar.gz

Download URL j6_chords-0.1.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
656118a875f31620f22c02e693adfff758314a6ed015f0fcaf2ce4bae6f9a074
BLAKE2b-256 checksum
How to use checksums
2aa2cc7460dd51d2889dcfd1080ad0e0ad3809ee9dada7a9f792a1e3e23a8cb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 17, 2026.

Transparency log

Release files / j6_chords-0.1.0-py3-none-any.whl

Download URL j6_chords-0.1.0-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d88fc4deeba94a604e4b1a48045990cead380a16e6152297dd7f9e54b046f466
BLAKE2b-256 checksum
How to use checksums
ad7dd7befb2da1c6f5f6bfec763a9f16a0600436cb6fdf15d441492fde4db96c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page