{ "info": { "author": "jayferg", "author_email": "john@ferguson.net.nz", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 3.6", "Topic :: Multimedia :: Sound/Audio :: MIDI", "Topic :: Scientific/Engineering :: Human Machine Interfaces", "Topic :: Software Development :: User Interfaces", "Topic :: System :: Hardware :: Hardware Drivers" ], "description": "# faderport\nAn abstract class to interface with a Presonus FaderPort device.\n\nThe Presonus FaderPort is a USB MIDI controller that features a\nmotorized fader, an endless rotary controller and a bunch of buttons.\nThis class will handle the basic interfacing to the device. You\nwrite a concrete subclass to implement your application specific\nrequirements.\n\nThis subclass must implement the following methods:\n\n* `on_open` \u00e2\u20ac\u201d Called when MIDI port has opened,\n* `on_button` \u00e2\u20ac\u201d Called when button is pressed or released,\n* `on_fader_touch` \u00e2\u20ac\u201d Called when fader is touched or released,\n* `on_fader` \u00e2\u20ac\u201d Called when fader is moved,\n* `on_rotary` \u00e2\u20ac\u201d Called when the Pan control is rotated,\n* `on_close` \u00e2\u20ac\u201d Called when MIDI port is about to close.\n\nThe `fader` property allows you to read or set the fader position\non a scale of 0 to 1023.\n\nYou can turn the button lights on and off individually using\n`light_on` and `light_off`.\n\nYou can display hexadecimal characters (0-9, A-F) using `char_on`.\nThis will use the button LEDs in a dot matrix style.\n(Extending this to the a full alphanumeric character set is an\nexercise left to the reader).\n\nThere are some methods for 'fancy' display effects, because why not?\nCheck out: `countdown`, `snake`, `blink` and `chase`\n\n> **IMPORTANT NOTE** - There is a 'feature' in the FaderPort that can\n> cause you some problems. If the 'Off' button is lit the fader will\n> not send value updates when it's moved.\n\n# Installation\nYou'll need Python 3.6 or later.\n\nThen:\n```sh\npip install faderport\n```\nshould do the trick.\n\nThis will also install the\n**[mido](http://mido.readthedocs.io/en/latest/index.html)** package and\n[**python-rtmidi**](https://pypi.org/project/python-rtmidi/) backend.\n\nCurrently this has only been tested on Windows with a single FaderPort\nbecause that's all I have access to.\n\nThe adventurous can read the mido docs and try alternative backends.\n\n# Testing\nMake sure your FaderPort is installed and connected and then:\n```sh\nfrom faderport import test\ntest()\n```\n\nThis will instantiate a derived 'TestFaderPort' class, which also serves as\nan example implementation, and then run through some of it's features.\n\nIt will display some light patterns and move your fader and then monitor\nyour actions until you hit the *\"Off\"* button on the FaderPort.\n\nTry out the Pan knob, the fader and some of the buttons.\n\nTry holding *\"shift\"* (on the FaderPort) and tweaking the Pan knob at the\nsame time.\n\n# Change List\n- Version 1.0.1 - Added a reset command at startup. Sometimes when\n faderport is reconnected it can get in a weird mode. The *Bank*\n light is lit and our code doesn't work. This seems to fix it.\n- Version 1.0.0 - Initial Release\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jayferg/faderport", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "faderport", "package_url": "https://pypi.org/project/faderport/", "platform": "", "project_url": "https://pypi.org/project/faderport/", "project_urls": { "Homepage": "https://github.com/jayferg/faderport" }, "release_url": "https://pypi.org/project/faderport/1.0.1/", "requires_dist": [ "python-rtmidi", "mido" ], "requires_python": "~=3.6", "summary": "An abstract class to interface with a Presonus FaderPort.", "version": "1.0.1" }, "last_serial": 3858403, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0f1760ee8e63d82f7a359c962d537416", "sha256": "81ab206f2bf9150ddb248787d167b5ccba3e30cb590890ddd03cd6e3d8e35ab0" }, "downloads": -1, "filename": "faderport-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0f1760ee8e63d82f7a359c962d537416", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 7187, "upload_time": "2018-05-12T15:19:00", "url": "https://files.pythonhosted.org/packages/7f/1e/5d43f0826bec446744fa72cb48c59e088d12a44822674e5867919002c47d/faderport-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f04273f3018f1bb1aac3ec0448506a7", "sha256": "66e38c40f3446b4a8038652e1cf3f5800f1f36cae2362297f8a8983bcb4d249d" }, "downloads": -1, "filename": "faderport-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3f04273f3018f1bb1aac3ec0448506a7", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 6654, "upload_time": "2018-05-12T15:19:01", "url": "https://files.pythonhosted.org/packages/f8/34/206d28df57579f0a74c67864fdd9a37e84e406cd2ec43974ffdadf1b863d/faderport-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cedf1920f590262c9e02a79f8218524d", "sha256": "f20f44f0bd6664564ff69010d49e228d01396daf3c3dad6ec2e9f25daa7163af" }, "downloads": -1, "filename": "faderport-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cedf1920f590262c9e02a79f8218524d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 7359, "upload_time": "2018-05-13T12:27:37", "url": "https://files.pythonhosted.org/packages/3e/82/748cf288c50e466aa3e9915612fd44307b5716222947dab5f1bef5ecf620/faderport-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef0f77be1db4a89eab9915579fd8b6c2", "sha256": "650b9d250b50d982a5557ab56f44ff9eaf006df3fa1a7137de31187b3ab8237d" }, "downloads": -1, "filename": "faderport-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ef0f77be1db4a89eab9915579fd8b6c2", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 6846, "upload_time": "2018-05-13T12:27:39", "url": "https://files.pythonhosted.org/packages/b5/3b/c74f37e5f273c5f8cddc1afc6ae16ab51311e3a3da1d755e36eb76835522/faderport-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cedf1920f590262c9e02a79f8218524d", "sha256": "f20f44f0bd6664564ff69010d49e228d01396daf3c3dad6ec2e9f25daa7163af" }, "downloads": -1, "filename": "faderport-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cedf1920f590262c9e02a79f8218524d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 7359, "upload_time": "2018-05-13T12:27:37", "url": "https://files.pythonhosted.org/packages/3e/82/748cf288c50e466aa3e9915612fd44307b5716222947dab5f1bef5ecf620/faderport-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef0f77be1db4a89eab9915579fd8b6c2", "sha256": "650b9d250b50d982a5557ab56f44ff9eaf006df3fa1a7137de31187b3ab8237d" }, "downloads": -1, "filename": "faderport-1.0.1.tar.gz", "has_sig": false, "md5_digest": "ef0f77be1db4a89eab9915579fd8b6c2", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 6846, "upload_time": "2018-05-13T12:27:39", "url": "https://files.pythonhosted.org/packages/b5/3b/c74f37e5f273c5f8cddc1afc6ae16ab51311e3a3da1d755e36eb76835522/faderport-1.0.1.tar.gz" } ] }