{"id":14971341,"url":"https://github.com/todbot/circuitpython_tmidi","last_synced_at":"2025-10-26T15:30:23.706Z","repository":{"id":238920578,"uuid":"797961169","full_name":"todbot/CircuitPython_TMIDI","owner":"todbot","description":"MIDI library for CircuitPython, inherits from Winterbloom_SmolMIDI","archived":false,"fork":false,"pushed_at":"2024-09-18T20:47:57.000Z","size":46,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T12:50:40.927Z","etag":null,"topics":["circuitpython","midi","usb"],"latest_commit_sha":null,"homepage":"","language":"Python","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/todbot.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-05-08T20:17:47.000Z","updated_at":"2024-08-05T17:26:00.000Z","dependencies_parsed_at":"2024-05-08T22:27:27.970Z","dependency_job_id":"cf65d7e1-ef60-45cf-aa40-319036fc9598","html_url":"https://github.com/todbot/CircuitPython_TMIDI","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"30633c343d7412f7e24798824bc76dcea9204171"},"previous_names":["todbot/circuitpython_tmidi"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todbot%2FCircuitPython_TMIDI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todbot%2FCircuitPython_TMIDI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todbot%2FCircuitPython_TMIDI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todbot%2FCircuitPython_TMIDI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/todbot","download_url":"https://codeload.github.com/todbot/CircuitPython_TMIDI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238347897,"owners_count":19457012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["circuitpython","midi","usb"],"created_at":"2024-09-24T13:45:03.428Z","updated_at":"2025-10-26T15:30:23.700Z","avatar_url":"https://github.com/todbot.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Introduction\n============\n\n\n.. image:: https://readthedocs.org/projects/circuitpython-tmidi/badge/?version=latest\n    :target: https://circuitpython-tmidi.readthedocs.io/\n    :alt: Documentation Status\n.. image:: https://img.shields.io/discord/327254708534116352.svg\n    :target: https://adafru.it/discord\n    :alt: Discord\n.. image:: https://github.com/todbot/CircuitPython_TMIDI/workflows/Build%20CI/badge.svg\n    :target: https://github.com/todbot/CircuitPython_TMIDI/actions\n    :alt: Build Status\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n    :alt: Code Style: Black\n\nMIDI library for CircuitPython\n\n\nDependencies\n=============\nThis library depends on:\n\n* `Adafruit CircuitPython \u003chttps://github.com/adafruit/circuitpython\u003e`_\n\nPlease ensure all dependencies are available on the CircuitPython filesystem.\nThis is easily achieved by downloading\n`the Adafruit library and driver bundle \u003chttps://circuitpython.org/libraries\u003e`_\nor individual libraries can be installed using\n`circup \u003chttps://github.com/adafruit/circup\u003e`_.\n\nInstalling from PyPI\n=====================\n\nOn supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from\nPyPI \u003chttps://pypi.org/project/circuitpython-tmidi/\u003e`_.\nTo install for current user:\n\n.. code-block:: shell\n\n    pip3 install circuitpython-tmidi\n\nTo install system-wide (this may be required in some cases):\n\n.. code-block:: shell\n\n    sudo pip3 install circuitpython-tmidi\n\nTo install in a virtual environment in your current project:\n\n.. code-block:: shell\n\n    mkdir project-name \u0026\u0026 cd project-name\n    python3 -m venv .venv\n    source .env/bin/activate\n    pip3 install circuitpython-tmidi\n\nInstalling to a Connected CircuitPython Device with Circup\n==========================================================\n\nMake sure that you have ``circup`` installed in your Python environment.\nInstall it with the following command if necessary:\n\n.. code-block:: shell\n\n    pip3 install circup\n\nWith ``circup`` installed and your CircuitPython device connected use the\nfollowing command to install:\n\n.. code-block:: shell\n\n    circup install tmidi\n\nOr the following command to update an existing version:\n\n.. code-block:: shell\n\n    circup update\n\nUsage Example\n=============\n\n.. code-block:: python\n\n    import usb_midi\n    import tmidi\n\n    midi_usb = tmidi.MIDI(midi_in=usb_midi.ports[0], midi_out=usb_midi.ports[1])\n\n    def send_midi_panic(midi_channel=1):\n        ch = midi_channel-1\n        msg = tmidi.Message(tmidi.NOTE_OFF, channel=ch)  # channels are 0-indexed\n        for notenum in range(128):\n            msg.note = notenum\n            msg.velocity = 0\n            midi_usb.send(msg)\n            time.sleep(0.01)\n    }\n\n    send_midi_panic()\n\n\nDocumentation\n=============\nAPI documentation for this library can be found on `Read the Docs \u003chttps://circuitpython-tmidi.readthedocs.io/\u003e`_.\n\nFor information on building library documentation, please check out\n`this guide \u003chttps://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/sharing-our-docs-on-readthedocs#sphinx-5-1\u003e`_.\n\nTesting\n=======\n\nInstall ``pytest`` with ``pip3 install pytest --upgrade`` and run ``pytest -v``\nTo build docs:\n\nContributing\n============\n\nContributions are welcome! Please read our `Code of Conduct\n\u003chttps://github.com/todbot/CircuitPython_TMIDI/blob/HEAD/CODE_OF_CONDUCT.md\u003e`_\nbefore contributing to help this project stay welcoming.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftodbot%2Fcircuitpython_tmidi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftodbot%2Fcircuitpython_tmidi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftodbot%2Fcircuitpython_tmidi/lists"}