pygt1000


Namepygt1000 JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/jdesfossez/pygt1000
SummaryLibrary to interact with a Boss GT-1000/GT-1000CORE over MIDI
upload_time2024-09-01 20:17:03
maintainerNone
docs_urlNone
authorJulien Desfossez
requires_python<4.0,>=3.10
licenseMIT
keywords midi boss gt1000 gt-1000 gt-1000core guitar bass
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pygt1000

pygt1000 is a Python library for interacting with the BOSS GT-1000 and
GT-1000CORE guitar/bass effects processors over MIDI. This library provides an
easy-to-use API for controlling and managing the settings of your
GT-1000/GT-1000CORE, enabling both real-time interaction and more complex
automation tasks.

## Features

- Send and receive MIDI messages to/from GT-1000/GT-1000CORE
- Manage and modify effect parameters
- Automate complex sequences of commands
- Retrieve and process device states and data
- Construct MIDI messages using option names instead of hexadecimal codes

## Installation

To install the pygt1000 library, you can use pip:

```bash
pip install pygt1000
```


Or for local development, use `poetry`:

```bash
git clone https://github.com/jdesfossez/pygt1000.git
cd pygt1000
poetry install
```

## Usage

Here’s a basic example of how to use the pygt1000 library to interact with your
GT-1000:

```python
from pygt1000 import GT1000

# Initialize the GT1000 object
gt1000 = GT1000()

# Open the MIDI ports
gt1000.open_ports()
# By default it looks for a MIDI port starting with "GT-1000:GT-1000 MIDI 1"
# But you can override the portname option here

# Send a command to the GT-1000
gt1000.send_command(...)

# Close the MIDI ports when done
gt1000.close_ports()
```
## Crafting messages

Most of the [MIDI specifications from BOSS](https://www.boss.info/global/support/by_product/gt-1000/owners_manuals/564517d2-518e-469e-b50b-2bdca359d24d/
) have been imported as JSON files in the specs/ directory. This allows the user to construct MIDI messages using option names rather than manually crafting hexadecimal messages. For example:

```python
gt = GT1000()
start_section = gt._get_start_section("fx", "1")
message = gt.build_dt_message(start_section, "fx1", "SW", "ON")
gt1000.send_message(message)
```

The JSON files are created by parsing the text from the specification (one text
file by table). Some consistency fixes are performed by the parsing
[scripts](./scripts/). There are still some unhandled cases like messages options
with a very wide range requiring multiple bytes to set the value, but most features
work with a single byte operation.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jdesfossez/pygt1000",
    "name": "pygt1000",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "midi, boss, gt1000, gt-1000, gt-1000core, guitar, bass",
    "author": "Julien Desfossez",
    "author_email": "j@jdfz.org",
    "download_url": "https://files.pythonhosted.org/packages/af/84/e23e9515ae5bb94a5cdda60d78e362b08274af90cde5f42da363c4acd45e/pygt1000-0.2.0.tar.gz",
    "platform": null,
    "description": "# pygt1000\n\npygt1000 is a Python library for interacting with the BOSS GT-1000 and\nGT-1000CORE guitar/bass effects processors over MIDI. This library provides an\neasy-to-use API for controlling and managing the settings of your\nGT-1000/GT-1000CORE, enabling both real-time interaction and more complex\nautomation tasks.\n\n## Features\n\n- Send and receive MIDI messages to/from GT-1000/GT-1000CORE\n- Manage and modify effect parameters\n- Automate complex sequences of commands\n- Retrieve and process device states and data\n- Construct MIDI messages using option names instead of hexadecimal codes\n\n## Installation\n\nTo install the pygt1000 library, you can use pip:\n\n```bash\npip install pygt1000\n```\n\n\nOr for local development, use `poetry`:\n\n```bash\ngit clone https://github.com/jdesfossez/pygt1000.git\ncd pygt1000\npoetry install\n```\n\n## Usage\n\nHere\u2019s a basic example of how to use the pygt1000 library to interact with your\nGT-1000:\n\n```python\nfrom pygt1000 import GT1000\n\n# Initialize the GT1000 object\ngt1000 = GT1000()\n\n# Open the MIDI ports\ngt1000.open_ports()\n# By default it looks for a MIDI port starting with \"GT-1000:GT-1000 MIDI 1\"\n# But you can override the portname option here\n\n# Send a command to the GT-1000\ngt1000.send_command(...)\n\n# Close the MIDI ports when done\ngt1000.close_ports()\n```\n## Crafting messages\n\nMost of the [MIDI specifications from BOSS](https://www.boss.info/global/support/by_product/gt-1000/owners_manuals/564517d2-518e-469e-b50b-2bdca359d24d/\n) have been imported as JSON files in the specs/ directory. This allows the user to construct MIDI messages using option names rather than manually crafting hexadecimal messages. For example:\n\n```python\ngt = GT1000()\nstart_section = gt._get_start_section(\"fx\", \"1\")\nmessage = gt.build_dt_message(start_section, \"fx1\", \"SW\", \"ON\")\ngt1000.send_message(message)\n```\n\nThe JSON files are created by parsing the text from the specification (one text\nfile by table). Some consistency fixes are performed by the parsing\n[scripts](./scripts/). There are still some unhandled cases like messages options\nwith a very wide range requiring multiple bytes to set the value, but most features\nwork with a single byte operation.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Library to interact with a Boss GT-1000/GT-1000CORE over MIDI",
    "version": "0.2.0",
    "project_urls": {
        "Homepage": "https://github.com/jdesfossez/pygt1000",
        "Repository": "https://github.com/jdesfossez/pygt1000"
    },
    "split_keywords": [
        "midi",
        " boss",
        " gt1000",
        " gt-1000",
        " gt-1000core",
        " guitar",
        " bass"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "61af23320bf6ca30167e79a0af6efd7f3374a7c71535148437dfae319d8ae0ee",
                "md5": "8cc116c7d5c73dc481872e6b9e0210b7",
                "sha256": "d839422dec516f4b42db8a9b0451d95b1e298b1721cc2e0106cfebb670bd76d9"
            },
            "downloads": -1,
            "filename": "pygt1000-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8cc116c7d5c73dc481872e6b9e0210b7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 75339,
            "upload_time": "2024-09-01T20:17:02",
            "upload_time_iso_8601": "2024-09-01T20:17:02.101787Z",
            "url": "https://files.pythonhosted.org/packages/61/af/23320bf6ca30167e79a0af6efd7f3374a7c71535148437dfae319d8ae0ee/pygt1000-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "af84e23e9515ae5bb94a5cdda60d78e362b08274af90cde5f42da363c4acd45e",
                "md5": "c38b011582f56b7944aa7e0d4a3582ab",
                "sha256": "4d33766142837c97821b38fa12876bc817fc45f51859afc3060ba048fc755bd0"
            },
            "downloads": -1,
            "filename": "pygt1000-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c38b011582f56b7944aa7e0d4a3582ab",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 43606,
            "upload_time": "2024-09-01T20:17:03",
            "upload_time_iso_8601": "2024-09-01T20:17:03.282933Z",
            "url": "https://files.pythonhosted.org/packages/af/84/e23e9515ae5bb94a5cdda60d78e362b08274af90cde5f42da363c4acd45e/pygt1000-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-01 20:17:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jdesfossez",
    "github_project": "pygt1000",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pygt1000"
}
        
Elapsed time: 4.31545s