{"id":37084504,"url":"https://github.com/watzo/aksy","last_synced_at":"2026-01-14T10:21:33.847Z","repository":{"id":8419452,"uuid":"10005884","full_name":"watzo/aksy","owner":"watzo","description":"a Python based API to access and control Akai samplers through USB (clone of https://code.google.com/p/aksy/)","archived":false,"fork":false,"pushed_at":"2023-02-22T00:37:39.000Z","size":5073,"stargazers_count":23,"open_issues_count":7,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-30T01:23:43.579Z","etag":null,"topics":["akai","akaipro","fuse-filesystem","mpc","music-composition","python","sampler","sysex","usb-devices","z-series"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/watzo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-05-11T22:03:52.000Z","updated_at":"2025-08-02T21:21:14.000Z","dependencies_parsed_at":"2022-08-24T18:50:58.935Z","dependency_job_id":null,"html_url":"https://github.com/watzo/aksy","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/watzo/aksy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzo%2Faksy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzo%2Faksy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzo%2Faksy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzo%2Faksy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/watzo","download_url":"https://codeload.github.com/watzo/aksy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watzo%2Faksy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:18:03.274Z","status":"ssl_error","status_checked_at":"2026-01-14T10:16:11.865Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["akai","akaipro","fuse-filesystem","mpc","music-composition","python","sampler","sysex","usb-devices","z-series"],"created_at":"2026-01-14T10:21:33.212Z","updated_at":"2026-01-14T10:21:33.835Z","avatar_url":"https://github.com/watzo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aksy - take control of your AKAI sampler\n\n[![CircleCI](https://circleci.com/gh/watzo/aksy/tree/master.svg?style=shield\u0026circle-token=68a082bd4325d4b3b2d450a10a3c084ae8927608)](https://circleci.com/gh/watzo/aksy/tree/master)\n\n## Introduction\n\nOriginally conceived as a competitive cross-platform Ak.Sys, its author, Walco van Loon, got\nrealistic after a while - re-conceiving it as a complementary product for\nAk.Sys, focussing on batch functionality and scripting. Currently, it supports\n~500 sysex functions and file transfers on the Z-Series/MPC4000 and some\nfunctionality (disk functions, transfers and a bunch of untested modules) of\nthe S56K.\n\nWith Aksui included from 0.3 and onwards, the original goal of Aksy comes in\nsite again. Stay tuned.\n\nAnd of 2017, this library seems to fulfill its promise: it still compiles and installs \non modern 64 bit systems, thanks to the stability of libusb and python.\n\nPython 2.7 is now supported. Python 3 support is looked into.\n\n## Usage\n\nSome simple examples:\n```\nfrom aksy.device import Devices\n# initializes the sampler\nsampler = Devices.get_instance('z48','usb')\n\n# gets a file called \"Noise.wav\" from the sampler's memory\nsampler.transfertools.get(\"Noise.wav\")\n\n# puts a file called \"Pulse.wav\" in the sampler's memory\nsampler.transfertools.put(\"Pulse.wav\")\n\n# returns the number of disks\nsampler.disktools.get_no_disks()\n```\n\nBesides disktools, the following modules are available for the Z-series:\n\n```\nmultitools\nsongtools\nprogramtools\nkeygrouptools\nzonetools\nsampletools\nrecordingtools\nsystemtools\nmultifxtools\nfrontpaneltools\nsysextools\ntransfertools # wrapper around aksy extensions\n```\n\nSee the examples/ directory for more interesting examples.\nFor an overview of the functions in a module, run pydoc:\n\n```\npydoc src/aksy/devices/akai/z48/systemtools.py\n```\n\n## Known issues and limitations in this release\n\n3a. General\n\n* Multiple samplers of the same product type are not supported; currently the\n  first found will be instantiated. Different samplers (eg. a combination of Z4,\n  MPC and a S5000) should work.\n\n* Not all sampler methods have been tested extensively. Some are known to\n  not be implemented on the sampler itself, but there could be more methods\n  that are not supported by the sampler.\n\n3b. Akai Sysex implementation pecularities\n\n* set_current_by_name() and set_current_by_handle() don't complain about\n  invalid names or handles; the current item (if any) is unchanged.\n* there is sysex support for manipulating EQ settings for Multis (Z48), but\n  they seem to have no audible effect.\n* in the implementation of sample tools, a lot of documented commands are\n  actually not available. It's not possible to copy in-memory samples, and all\n  loop/region manipulation related commands are not implemented. \n* if more than eight programtools.get_modulation_connection_cmd commands are\n  specified as an alternative operation, the system exclusive request times out.\n\n## Debugging and troubleshooting\n\nSetting the USB_DEBUG environment variable can help to obtain more info from\nthe low level usb communication.\n\nCommon reasons for not being able to set up a USB connection are that the\ndevice permissions are set too restrictive (read-only, root permissions). Eg.\nUbuntu mounts usb devices under /dev/bus/usb, so one should check\n/dev/bus/usb/\u003cbus id\u003e/\u003cdevice id\u003e to verify. The output from lsusb can be used\nto determine bus and device id. Highly likely the bus and device ids will\nchange when the sampler is reconnected; HAL can be used to automate the chown\non connect. See the config directory in the src distribution for an example\npolicy file (copy to /etc/hal/fdi/policy if you're using Ubuntu) and\npermissions script (install in /usr/bin/set-permissions).\n\nFUSE needs the string 'user_allow_other' in /etc/fuse.conf to be able to mount\nas non-root user.\n\n## Developing\n\nsrc/aksyx/\n\n    akaiusb library and python extension\n\nsrc/aksy/\n    devices/akai/\n\n    common functionality for akai samplers.\n\n    akai/s56k\n\n    s56k specific code\n\n    akai/mock_z48\n\n    mock sampler implementation for testing\n\n    akai/z48\n\n    z48/mpc4000 specific code\n\nsrc/aksyosc/\n    OSC support\n\nsrc/aksyfs\n    filesystem implementations, currently FUSE and FTP\n\ndata\n\n    All *tools.py modules are generated from the data directory, which contains tab\n    delimited system exclusive descriptions from which they are generated.\n\n\tThe script which takes care of this is generate_module.py; but now the API\n    is stabilizing the code generation approach might be abandoned in the near\n    future.\n\ndata/z48\n\n    Contains the command specifications for the z48/mpc4000\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatzo%2Faksy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwatzo%2Faksy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatzo%2Faksy/lists"}