Skip to main content

Configuration tool for Korg nanoKontrol Studio

Project description

Korg (TM) nanoKONTROL Studio (TM) config tool

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

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 (TM) 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://projects.om-office.de/frans/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 (TM) 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 (TM) 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://projects.om-office.de/frans/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>

Troubleshooting

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

Future

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

External sources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nanokontrol_config-0.2.0.tar.gz (33.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nanokontrol_config-0.2.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file nanokontrol_config-0.2.0.tar.gz.

File metadata

  • Download URL: nanokontrol_config-0.2.0.tar.gz
  • Upload date:
  • Size: 33.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.8

File hashes

Hashes for nanokontrol_config-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b90d4f521bc6d1e9599c0b395079d31f8ec061bba72549abb069a0c69cc252ef
MD5 7c0ad8187f7ff7d1c6422ed32f8e4213
BLAKE2b-256 4095318b1feaaf2723a7387b3830bbbd9bdd3f65b59d36a63ad27ea111633d65

See more details on using hashes here.

File details

Details for the file nanokontrol_config-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nanokontrol_config-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a0de0dd570363816d078e5dce57f70477c13eb2028105b87c8795c4ba68c4dd
MD5 2280b6beb35e29683aba5e1ebde77cb1
BLAKE2b-256 d86c03f1f344c01de7fe89a7b1256109e8ac1ddb697c2367f9add0a8828097c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page