{"id":13862691,"url":"https://github.com/axoplasma/AxoInstruct","last_synced_at":"2025-07-14T13:32:05.956Z","repository":{"id":218769016,"uuid":"233194431","full_name":"axoplasma/AxoInstruct","owner":"axoplasma","description":"Multi-user cue lists and stage instructions with Ableton Live, ClyphX Pro and OSC","archived":false,"fork":false,"pushed_at":"2022-11-28T17:47:45.000Z","size":1043,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-22T23:32:05.479Z","etag":null,"topics":["ableton","ableton-live","clyphx","cuelist","cuesheet","osc","python","stage","touchosc","touchosc-templates"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axoplasma.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2020-01-11T07:36:24.000Z","updated_at":"2024-06-18T03:54:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"62e6ab0d-6ee6-4889-aa51-485b60a3192a","html_url":"https://github.com/axoplasma/AxoInstruct","commit_stats":null,"previous_names":["axoplasma/axoinstruct"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/axoplasma/AxoInstruct","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axoplasma%2FAxoInstruct","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axoplasma%2FAxoInstruct/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axoplasma%2FAxoInstruct/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axoplasma%2FAxoInstruct/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axoplasma","download_url":"https://codeload.github.com/axoplasma/AxoInstruct/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axoplasma%2FAxoInstruct/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265297479,"owners_count":23742586,"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":["ableton","ableton-live","clyphx","cuelist","cuesheet","osc","python","stage","touchosc","touchosc-templates"],"created_at":"2024-08-05T06:01:50.145Z","updated_at":"2025-07-14T13:32:05.553Z","avatar_url":"https://github.com/axoplasma.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# AxoInstruct\nMulti-user cue lists and stage instructions with Ableton Live, ClyphX Pro and OSC \\\nCreate cue lists for live performances and send stage instructions to your mobile devices.\n\n![](images/AxoInstruct_Social01.png)\n\n![](images/AxoInstructOverview_02.jpg)\n\n## Supports\n* Multiple users/artists\n* Mobile devices\n* Extendible cue lists with any number of songs (acts), cues or artists\n* Display of current cue and outlook on what's coming next\n\n## Requires\n* [Ableton Live](https://www.ableton.com/en/live/) -- Version 9.7+ or 10.x (Note: Live 11 is not supported by ClyphX Pro yet)\n* [ClyphX Pro](https://isotonikstudios.com/product/clyphx-pro/) Version 1.1.8 or higher\n* [ClyphX Pro OSC User Actions (beta)](http://forum.nativekontrol.com/thread/3620/beta-osc-output-clyphx-pro) -- Download from the official ClyphX Pro forum\n* [Max4Live](https://www.ableton.com/en/live/max-for-live/) or Ableton Live Suite -- (optional, for midi note triggers)\n* [TouchOSC](https://hexler.net/products/touchosc) or comparable OSC-enabled software\n\n## Setup and installation\n### Step 1: Downloads\n* Download or clone this repository\n* Download the OSC User Actions (beta) from the [ClyphX Pro forum](http://forum.nativekontrol.com/thread/3620/beta-osc-output-clyphx-pro)\n* On your mobile device: Download TouchOSC from your favourite App Store\n\n### Step 2: Files and folders\n#### AxoInstruct files\nCopy the file `AxoInstruct.py`from this repository to the `user_actions` folder of your ClyphX Pro installation. \\\nIf you have Live 10 on a Windows system, this will be `C:\\ProgramData\\Ableton\\Live 10 Suite\\Resources\\MIDI Remote Scripts\\ClyphX_Pro\\clyphx_pro\\user_actions`\n\n#### ClyphX Pro OSC files\nBefore you begin, make sure that you are using ClyphX Pro Version 1.1.8 or higher. \\\nCopy the OSC User Actions Python files into the `user_actions` folder of your ClyphX Pro installation. \\\nIf you have Live 10 on a Windows system, this will be `C:\\ProgramData\\Ableton\\Live 10 Suite\\Resources\\MIDI Remote Scripts\\ClyphX_Pro\\clyphx_pro\\user_actions`\n\nIf you have successfully completed this step, the `user_actions` folder should contain the highlighted files: \\\n![](images/AxoInstruct_ClyphXProUserActionsFolderContent.png)\n\n### Step 3: Network settings\nEdit the `Preferences.txt` of ClyphX Pro installation add settings for outgoing OSC communication. \\\nOn a Windows machine the file is located here: `c:\\Users\\[YourUserName]\\nativeKONTROL\\ClyphX_Pro\\Preferences.txt`.\n\nSnippet of my `Preferences.txt` file and the settings I am using:\n\n```\n#************************************* [OSC SETTINGS] **********************************\n# This setting determines the OSC port number that ClyphX Pro will receive OSC messages from.\n# The possible settings are any OSC port number.\nINCOMING_OSC_PORT = 7005\nOUTGOING_OSC_PORT = 7006\nOSC_DEVICE_IP_ADDRESS = 192.168.0.255\n```\n\nOSC is based on IP network communication rather than Midi. ClyphX Pro needs the following settings or send and receive OSC messages.\n\n* `INCOMING_OSC_PORT = 7005` ClyphX Pro will listen on this port for incoming OSC messages. This port number has to match the outgoing port number of the OSC apps on your mobile devices.\n* `OUTGOING_OSC_PORT = 7006` Clyphx Pro will send OSC messages to this port number on other devices. Make sure you have different numbers for incoming and outgoing ports. On your mobile device, configure the incoming port with the same number.\n* `OSC_DEVICE_IP_ADDRESS = 192.168.0.255` Usually, this is the IP address of your mobile device, the address, ClyphX Pro will send all the OSC messages to. In this case however it's the broadcast address of an entire network. Please read the remarks below.\n\nRemarks:\n* The IP address setting is strongly depending on your network infrastructure. In my case, my computer running Ableton Live has the IP address 192.168.0.105. My mobile device has the IP address 192.168.0.201. Both starting with 192.168.0 (and given a network mask 255.255.255.0) means they are in the same network.\n* This is important: both your computer and your mobile device have to directly \"see\" each other. They have to be in the same network.\n* If you want to send OSC messages to only one single device you can specify the receiver's address explicitly, like `OSC_DEVICE_IP_ADDRESS = 192.168.0.201`.\n* AxoInstruct was designed serving multiple users in parallel. For this reason `OSC_DEVICE_IP_ADDRESS = 192.168.0.255` is set to the broadcast address of your network. This means that every computer or mobile device in the 192.168.0.1 - 192.168.0.254 address range will receive the messages.\n* Static IP addresses for all your devices are advisable in some situations to have better control over your used addresses.\n* If this is too much network gibberish for you, ask a tech-savvy nerd in your circle of friends. :-)\n\n\n### Step 4: TouchOSC on your mobile device\nIf you use TouchOSC on Android or iOS, transfer the `AxoInstruct.touchosc` file to your device. More information on TouchOSC installation and template file transfer, refer to the [TouchOSC homepage](https://hexler.net/products/touchosc) \\\nThe basic AxoInstruct GUI will look like this: \\\n![](images/AxoInstruct_TouchOSC_GUI1.png)\n\nThe TouchOSC settings have configured to the corresponding OSC network settings of ClyphX Pro (see above). The incoming port number of TouchOSC has to match the outgoing port number on your computer and vice versa.\n\nTouchOSC on iOS: \\\n![](images/AxoInstruct_TouchOSC_iOS1.png) ![](images/AxoInstruct_TouchOSC_iOS2.png) ![](images/AxoInstruct_TouchOSC_iOS3.png)\n\nTouchOSC on Android: \\\n![](images/AxoInstruct_TouchOSC_Android1.png) ![](images/AxoInstruct_TouchOSC_Android2.png) ![](images/AxoInstruct_TouchOSC_Android3.png)\n\n#### Step 5: AxoInstruct XML Cuelist\nFind a folder for your cuelist XML file and remember the location. You will need the file path for setting up AxoInstruct in your Ableton Live set.\n\n\n## Usage\n### Initialization\nAxoInstructs needs to be initialized first. Usually. I usually have a setup scene in session view containing a clip called `[] init_instruct \"c:/path/to/your/cuelist.xml\"`. Specifying a file path allows you to use different cue lists for each Live set or even multiple cue list per Live set if needed.\nIf you omit the file path in the clip's name, AXOInstruct will use the script which is specified by default in `AxoInstruct.py`.\n![](images/AxoInstructOverview_01.png)\n\n### Switching between songs\nEach XML cue list is capable of holding as many songs as you need. But there can always be only one song selected. The `prep` actions lets you switch between songs.\nSince my Live sets are usually built around the session view, I have clips for that: e.g. `[] prep demo1` where \"demo1\" denotes a song's `song_id` from the XML cue list file:\n\n```\n\u003c?xml version=\"1.0\"?\u003e\n\u003ccollection\u003e\n    \u003csong song_id=\"demo1\" title=\"Demo Song 1\"\u003e\n```\n\nThe prep action parses the XML file and automatically displays the first cue for all categories (music/lighting/visuals). You don't have to manually select the first cue.\n\n### Selecting cues\nExample action: `[] instruct v 2` -- where \"v\" denotes the category visuals, \"l\" as in lighting and \"m\" as in music. \"2\" displays the second cue as well as the two subsequent cues. If you choose a number that is larger than the specified number of cues (like 1337), the display will show `--`.\n\n![](images/AxoInstruct_Social01.png)\n\n\n## Different ways to use AxoInstruct\n### Clips and/or Scenes in Session View\n![](images/AxoInstructOverview_01.png)\n\n### Locators in Arrangement View\n![](images/AxoInstructArrangementLocators_01.png)\n\n### Drum Racks with Max4Live Device for Midi Note Triggering\nAbleton Drum Rack and the ClyphX Pro `Note Trigger Handler` Max4Live Ensemble\n![](images/AxoInstructM4L_Rack_01.png)\n![](images/AxoInstructM4L_Clip_01.png)\nNote: The depicted M4L devices is not included in the demo `AxoInstructDemo.als`set since it's the intellectual property of NativeKontrol. Please use the M4L devices that comes along with your ClyphX Pro installation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxoplasma%2FAxoInstruct","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxoplasma%2FAxoInstruct","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxoplasma%2FAxoInstruct/lists"}