Name | ipymidi JSON |
Version |
0.0.1
JSON |
| download |
home_page | |
Summary | Interactive MIDI in Jupyter |
upload_time | 2023-12-15 15:25:52 |
maintainer | ipymidi contributors |
docs_url | None |
author | Benoît Bovy |
requires_python | |
license | BSD-3-Clause |
keywords |
midi
jupyter
widget
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
![logo](https://user-images.githubusercontent.com/4160723/290532327-283f5234-2f8c-4b4e-9e59-79b9551f11d0.svg)
# IpyMIDI
_Interactive MIDI in Jupyter_
IpyMIDI exposes the Web MIDI interface ([Web MIDI
API](https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API)) to Python
as [Jupyter widgets](https://ipywidgets.readthedocs.io) via
[WEBMIDI.js](https://webmidijs.org/). Connect your MIDI devices (e.g., keyboards,
controllers, etc.) and start interacting with them in Jupyter!
**Note: this is very much work in progress (nothing much to see yet)!**
## Usage Example
Create a Jupyter notebook and import the library.
```python
import ipymidi
```
Get access to the Web MIDI interface.
```python
midi = ipymidi.get_interface()
```
Enable the MIDI interface (your Web browser may ask you the permission to access it).
```python
midi.enable()
```
Get the list of all connected MIDI input devices.
```python
midi.inputs
```
```
MIDI Inputs (2)
0:
id: 92212230
name: Virtual MIDI
manufacturer: Apple Inc.
connection: open
state: connected
1:
id: -1491552641
name: Arturia KeyStep 37
manufacturer: Arturia
connection: open
state: connected
```
Track a specific MIDI event emitted from one input device (e.g., the "noteon"
event emitted from a MIDI keyboard).
```python
ev = midi.inputs["Arturia KeyStep 37"].track_event("noteon", ["note_identifier"])
```
Use the `ev` object like any other Jupyter widget, e.g., to print in an output
widget the MIDI note that has just been played on the input device.
```python
import ipywidgets
output = ipywidgets.Output()
@ev.observe
def print_message(change):
output.clear_output()
with output:
print(f"Note {change["owner"].note_identifier} played!")
output
```
Raw data
{
"_id": null,
"home_page": "",
"name": "ipymidi",
"maintainer": "ipymidi contributors",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "MIDI,jupyter,widget",
"author": "Beno\u00eet Bovy",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/bc/22/391daed0e1d8eea2d5d21d46dc8a7559cddf285c731d8726e50ae4b7d7bc/ipymidi-0.0.1.tar.gz",
"platform": null,
"description": "![logo](https://user-images.githubusercontent.com/4160723/290532327-283f5234-2f8c-4b4e-9e59-79b9551f11d0.svg)\n\n# IpyMIDI\n\n_Interactive MIDI in Jupyter_\n\nIpyMIDI exposes the Web MIDI interface ([Web MIDI\nAPI](https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API)) to Python\nas [Jupyter widgets](https://ipywidgets.readthedocs.io) via\n[WEBMIDI.js](https://webmidijs.org/). Connect your MIDI devices (e.g., keyboards,\ncontrollers, etc.) and start interacting with them in Jupyter!\n\n**Note: this is very much work in progress (nothing much to see yet)!**\n\n## Usage Example\n\nCreate a Jupyter notebook and import the library.\n\n```python\nimport ipymidi\n```\n\nGet access to the Web MIDI interface.\n\n```python\nmidi = ipymidi.get_interface()\n```\n\nEnable the MIDI interface (your Web browser may ask you the permission to access it).\n\n```python\nmidi.enable()\n```\n\nGet the list of all connected MIDI input devices.\n\n```python\nmidi.inputs\n```\n\n```\nMIDI Inputs (2)\n0:\n id: 92212230\n name: Virtual MIDI\n manufacturer: Apple Inc.\n connection: open\n state: connected\n1:\n id: -1491552641\n name: Arturia KeyStep 37\n manufacturer: Arturia\n connection: open\n state: connected\n```\n\nTrack a specific MIDI event emitted from one input device (e.g., the \"noteon\"\nevent emitted from a MIDI keyboard).\n\n```python\nev = midi.inputs[\"Arturia KeyStep 37\"].track_event(\"noteon\", [\"note_identifier\"])\n```\n\nUse the `ev` object like any other Jupyter widget, e.g., to print in an output\nwidget the MIDI note that has just been played on the input device.\n\n```python\nimport ipywidgets\n\noutput = ipywidgets.Output()\n\n@ev.observe\ndef print_message(change):\n output.clear_output()\n with output:\n print(f\"Note {change[\"owner\"].note_identifier} played!\")\n\noutput\n```\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Interactive MIDI in Jupyter",
"version": "0.0.1",
"project_urls": {
"Repository": "https://github.com/benbovy/ipymidi"
},
"split_keywords": [
"midi",
"jupyter",
"widget"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f746c658a31296d569efca197c215a334b163c9d45a91460f58c530dd74cc77e",
"md5": "a65a60a68769927e3703149118a96004",
"sha256": "e7ccab80e043b61a7b595fd9d86626a2cf411c2b08a490e7620aec19a22dcaaf"
},
"downloads": -1,
"filename": "ipymidi-0.0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "a65a60a68769927e3703149118a96004",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 26942,
"upload_time": "2023-12-15T15:25:50",
"upload_time_iso_8601": "2023-12-15T15:25:50.994252Z",
"url": "https://files.pythonhosted.org/packages/f7/46/c658a31296d569efca197c215a334b163c9d45a91460f58c530dd74cc77e/ipymidi-0.0.1-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc22391daed0e1d8eea2d5d21d46dc8a7559cddf285c731d8726e50ae4b7d7bc",
"md5": "eadadff5a68cbfa8cef484d9c65e9bcb",
"sha256": "d64cb18a4895ab299442ebe196518ed03bcff78e5085a9bd926af4a2ed6b488e"
},
"downloads": -1,
"filename": "ipymidi-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "eadadff5a68cbfa8cef484d9c65e9bcb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25449,
"upload_time": "2023-12-15T15:25:52",
"upload_time_iso_8601": "2023-12-15T15:25:52.495033Z",
"url": "https://files.pythonhosted.org/packages/bc/22/391daed0e1d8eea2d5d21d46dc8a7559cddf285c731d8726e50ae4b7d7bc/ipymidi-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-15 15:25:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "benbovy",
"github_project": "ipymidi",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ipymidi"
}