Skip to main content

Korg™ nanoKONTROL Studio™ config tool

While there exists MIDI protocol specification for other Korg™ nano* products like nanoKONTROL™ or nanoKONTROL2™, we have nothing for the more modern nanoKONTROL Studio™ (and thus no tools like Nano-Basket for the nanoKONTROL Studio™

This project provides a CLI tool for reading and writing configuration from and to YAML based config files plus a basis for future nanoKONTROL Studio™ based projects which need to talk to the device using the proprietary MIDI based protocol.

Install and use

You can either install nanokontrol-config via pipx

# have pipx installed first
pipx install nanokontrol-config
nanokontrol-config ...

.. simply run it via uvx provided by the uv package

# have uv installed first
uvx nanokontrol-config ...

.. or checkout the project and run it via uv run

# have git and uv installed first
git clone https://github.com/frans-fuerst/nanokontrol-config.git
cd nanokontrol-config
uv run nanokontrol-config ...

If you are running into problems installing python-rtmidi, try to provide pkg-config and libasound2-dev (or similar) before installing nanokontrol-config.

With all approaches you get an entry point nanokontrol-config with the following syntax:

nanokontrol-config [<global-opts>] <CMD> [<command-opts>]

Exporting the config

Read the current config from your attached nanoKONTROL Studio™ device and save it to a YAML file.

nanokontrol-config e[xport] [-o|--output current-config.yaml]

Sending the config

Read a YAML file and push it to your (attached) device:

nanokontrol-config s[et] [-i|--input modified-config.yaml]

Patching the config

NOT YET IMPLEMENTED

Read just a sparse config (only implementing the modifications you need) and apply it to the configuration currently stored on your device:

nanokontrol-config p[atch] [-i|--input sparse-config.yaml]

Disclaimer

I'm not affiliated in any way with Korg™ and this project is solely based on reverse engineering MIDI I/O.

Of course using this tool is fully your own risk - I hereby refuse any responsibility for any damages.

License

See [License.md].

Contribution

Initialize

git clone https://github.com/frans-fuerst/nanokontrol-config.git
cd nanokontrol-config
uv run pre-commit install

Manually run checks and fixes

# run all checks which would be executed on commit, but on unstaged stuff, too
uv run pre-commit run --hook-stage pre-commit --all-files
# run all type checking (mypy) on current (unstaged) state
uv run pre-commit run check-python-typing --all-files
uv run pre-commit run check-python-linting --all-files
uv run pre-commit run check-python-format --all-files
uv run pre-commit run check-python-isort --all-files
uv run pre-commit run check-python-unittest --all-files
uv run pre-commit run check-python-doctest --all-files
uv run pre-commit run check-yaml-linting --all-files

uv run pre-commit run fix-python-linting --hook-stage manual --all-files
uv run pre-commit run fix-python-format --hook-stage manual --all-files
uv run pre-commit run fix-python-isort --hook-stage manual --all-files

implement -> uv run pytest -> commit -> repeat

Manually run checks and fixes

uv version --bump <patch|minor|major>
uv build
# manual tests
git push
uv publish --token <TOKEN>

Missing for a v1.0

  • info lists all devices and identifies Korg products
  • patch implemented
  • default values properly for all BaseModel instances implemented
  • proper documentation and comments
  • linter is satisfied

Troubleshooting

  • Reset to firmware defaults: SCENE + BACK + STOP + Turn on

Future

  • Graphical UI
  • YAML import/export file config supports comments
  • Support for importing/exporting the Korg™ proprietary configuration file format
  • Support for other Korg™ nano* products
  • Support for other MIDI controllers
  • Availability for MicroPython (i.e. no dependency to pydandtic or mido)

External sources

Metadata

Release files for nanokontrol-config 0.4.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 nanokontrol-config 0.4.0
File Size Uploaded Provenance
nanokontrol_config-0.4.0.tar.gz 33.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nanokontrol-config 0.4.0
File Interpreter ABI Platform
nanokontrol_config-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 46.1 kB

Release files / nanokontrol_config-0.4.0.tar.gz

Download URL nanokontrol_config-0.4.0.tar.gz
Size 33.5 kB
Tags Source
SHA-256 checksum
How to use checksums
acec3545fd7a134071020bdf55fd7260371297afef15f44d3c7c7b0bd86ba119
BLAKE2b-256 checksum
How to use checksums
70f1ed5f0e5c6ba423709000d5ddcda6332577337a2b08fc97684bef7da51974
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.1

Release files / nanokontrol_config-0.4.0-py3-none-any.whl

Download URL nanokontrol_config-0.4.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3efad52f8593eb4e6042fc6533df4df89874df734199a5a23b509bdd35d9fe3
BLAKE2b-256 checksum
How to use checksums
be4e49b3d2d9e769b2bccc862ee4c3c1daea2d9d176c0699e02db752b39c7512
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.1

Security for nanokontrol-config 0.4.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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