{"id":23501535,"url":"https://github.com/brenekh/yamaha-rcp-docs","last_synced_at":"2025-04-15T19:42:29.605Z","repository":{"id":115103836,"uuid":"608002287","full_name":"BrenekH/yamaha-rcp-docs","owner":"BrenekH","description":"Unofficial documentation for Yamaha's mixer control protocol","archived":false,"fork":false,"pushed_at":"2024-03-20T21:50:41.000Z","size":40,"stargazers_count":24,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T00:23:55.886Z","etag":null,"topics":["documentation","proaudio","remote-control","reverse-engineering","unofficial","yamaha","yamaha-mixer","yamaha-tf","yamaha-tf1","yamaha-tf3","yamaha-tf5"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrenekH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-03-01T05:33:17.000Z","updated_at":"2025-02-19T14:03:53.000Z","dependencies_parsed_at":"2024-03-20T22:52:25.562Z","dependency_job_id":null,"html_url":"https://github.com/BrenekH/yamaha-rcp-docs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenekH%2Fyamaha-rcp-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenekH%2Fyamaha-rcp-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenekH%2Fyamaha-rcp-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrenekH%2Fyamaha-rcp-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrenekH","download_url":"https://codeload.github.com/BrenekH/yamaha-rcp-docs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249140706,"owners_count":21219343,"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":["documentation","proaudio","remote-control","reverse-engineering","unofficial","yamaha","yamaha-mixer","yamaha-tf","yamaha-tf1","yamaha-tf3","yamaha-tf5"],"created_at":"2024-12-25T07:18:24.942Z","updated_at":"2025-04-15T19:42:29.579Z","avatar_url":"https://github.com/BrenekH.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yamaha Remote Control Protocol (RCP)\n\nUnofficial documentation for Yamaha's mixer control protocol with an emphasis on the [TF Series of mixers](https://usa.yamaha.com/products/proaudio/mixers/tf/index.html).\nThe concepts in this documentation do apply to some of Yamaha's other mixers (notably the QL, CL, Rivage, and DM3 series), but since I only have access to a TF console, that's what this documentation is most relevant to.\n\n\u003e **Note:** This is a big work in progress. If you want to help out, feel free to open up a [Discussion](https://github.com/BrenekH/yamaha-rcp-docs/discussions), [Issue](https://github.com/BrenekH/yamaha-rcp-docs/issues), or [Pull Request](https://github.com/BrenekH/yamaha-rcp-docs/pulls).\n\n## Official Sources\n\n* [Python Script Template](https://usa.yamaha.com/files/download/other_assets/0/1266290/Python_Script_Template_V100.zip) - Simple Python scripts and PDFs that are light on details\n* [MTX3, MTX5-D, MRX7-D, XMV Series, EXi8, EXo8 RCP Spec V4.0.0](https://usa.yamaha.com/files/download/other_assets/5/1343735/200330_mtx_mrx_xmv_ex_rcps_v400_rev14_en.pdf) - Yamaha docs on the protocol for their multi-zone commercial mixing system (thanks [@morydd](https://github.com/BrenekH/yamaha-rcp-docs/discussions/1))\n* [RIVAGE PM Series OSC Specifications V1.0.2](https://uk.yamaha.com/files/download/other_assets/5/1407565/RIVAGE_PM_osc_specs_v102_en.pdf) - Documentation for using Open Sound Control (OSC) on Rivage PM consoles (thanks [@snurrgnu](https://github.com/BrenekH/yamaha-rcp-docs/discussions/1#discussioncomment-8644878))\n* [DM3 Series OSC Specifications V1.0.0](https://fr.yamaha.com/files/download/other_assets/2/2063222/DM3_osc_specs_v100_en.pdf) - Documentation for using Open Sound Control (OSC) on DM3 consoles (thanks [@hansSchall](https://github.com/BrenekH/yamaha-rcp-docs/discussions/3))\n\n## Basics\n\nYamaha uses a simple TCP connection to transfer all of the data between the client and the mixer.\nThe data is split into messages that are delimited by a newline character (`\\n`).\nEach message starts with one of the following command keywords:\n\nClient to Mixer:\n\n* `get` - Request a value from the mixer\n* `set` - Set a value on the mixer\n* `ssrecall_ex` - Recall a scene to the mixer\n\nMixer to Client:\n\n* `OK` - Indicates that the client's request was accepted\n* `OKm` - The difference between this keyword and `OK` is likely to be an indication of a modified value, but this has not yet been confirmed\n* `NOTIFY` - Unsolicited message from the mixer indicating a change was made outside of the current connection\n* `ERROR` - Indicates an error with the client's request\n\n### Data Types\n\n* Strings\n  * Represented by a variable length of characters surrounded by quotation marks (`\"`)\n* Decibels\n  * Represented by an integer where the dB value has been multiplied by 100 (`10 dB` -\u003e `1000`)\n  * Max Fader Value: 1000\n  * Min Fader Value: -13800\n  * Negative Infinity Value: -32768\n* Booleans\n  * Represented by either a `0` or `1`, `0` for false and `1` for true\n\n### Getting and Setting Values\n\nGetting and setting simple values uses essentially the same syntax.\nThe only difference is really that a `get` command doesn't contain a value on the end while `set` does.\n\nHere's some basic examples:\n\n* Channel 1 Fader Values:\n  * `get MIXER:Current/InCh/Fader/Level 0 0`\n  * `set MIXER:Current/InCh/Fader/Level 0 0 1000`\n\n* Channel 16 Fader Label:\n  * `get MIXER:Current/InCh/Fader/Name 15 0`\n  * `set MIXER:Current/InCh/Fader/Name 15 0 \"My Label\"`\n\n### List of Command Paths\n\n* [MIXER:Current/InCh/Fader/Level](commands/current_inch_fader_level.md)\n\n* [MIXER:Current/InCh/Fader/On](commands/current_inch_fader_on.md)\n\n* [MIXER:Current/InCh/Label/Color](commands/current_inch_label_color.md)\n\n* [MIXER:Current/InCh/Label/Icon](commands/current_inch_label_icon.md)\n\n* [MIXER:Current/InCh/Label/Category](commands/current_inch_label_category.md)\n\n* [MIXER:Current/InCh/Label/Name](commands/current_inch_label_name.md)\n\n* [MIXER:Current/InCh/Role](commands/current_inch_role.md)\n\n* [MIXER:Current/InCh/ToFx/Level](commands/current_inch_tofx_level.md)\n\n* [MIXER:Current/InCh/ToFx/On](commands/current_inch_tofx_on.md)\n\n* [MIXER:Current/InCh/ToFx/PrePost](commands/current_inch_tofx_prepost.md)\n\n* [MIXER:Current/InCh/ToMix/Level](commands/current_inch_tomix_level.md)\n\n* [MIXER:Current/InCh/ToMix/On](commands/current_inch_tomix_on.md)\n\n* [MIXER:Current/InCh/ToMix/Pan](commands/current_inch_tomix_pan.md)\n\n* [MIXER:Current/InCh/ToMix/PrePost](commands/current_inch_tomix_prepost.md)\n\n* [MIXER:Current/InCh/ToMono/Level](commands/current_inch_tomono_level.md)\n\n* [MIXER:Current/InCh/ToMono/On](commands/current_inch_tomono_on.md)\n\n* [MIXER:Current/InCh/ToSt/Pan](commands/current_inch_tost_pan.md)\n\n* [MIXER:Current/InCh/ToStereo/Pan](commands/current_inch_tostereo_pan.md)\n\n* [MIXER:Current/StInCh/Fader/Level](commands/current_stinch_fader_level.md)\n\n* [MIXER:Current/StInCh/Fader/On](commands/current_stinch_fader_on.md)\n\n* [MIXER:Current/StInCh/Label/Color](commands/current_stinch_fader_color.md)\n\n* [MIXER:Current/StInCh/Label/Icon](commands/current_stinch_label_icon.md)\n\n* [MIXER:Current/StInCh/Label/Category](commands/current_stinch_label_category.md)\n\n* [MIXER:Current/StInCh/Label/Name](commands/current_stinch_label_name.md)\n\n* [MIXER:Current/StInCh/ToFx/Level](commands/current_stinch_tofx_level.md)\n\n* [MIXER:Current/StInCh/ToFx/On](commands/current_stinch_tofx_on.md)\n\n* [MIXER:Current/StInCh/ToFx/PrePost](commands/current_stinch_tofx_prepost.md)\n\n* [MIXER:Current/StInCh/ToMix/Level](commands/current_stinch_tomix_level.md)\n\n* [MIXER:Current/StInCh/ToMix/On](commands/current_stinch_tomix_on.md)\n\n* [MIXER:Current/StInCh/ToMix/Pan](commands/current_stinch_tomix_pan.md)\n\n* [MIXER:Current/StInCh/ToMix/PrePost](commands/current_stinch_tomix_prepost.md)\n\n* [MIXER:Current/StInCh/ToMono/Level](commands/current_stinch_tomono_level.md)\n\n* [MIXER:Current/StInCh/ToMono/On](commands/current_stinch_tomono_on.md)\n\n* [MIXER:Current/StInCh/ToSt/Pan](commands/current_stinch_tost_pan.md)\n\n* [MIXER:Current/StInCh/ToStereo/Pan](commands/current_stinch_tostereo_pan.md)\n\n* [MIXER:Current/FxRtnCh/Fader/Level](commands/current_fxrtnch_fader_level.md)\n\n* [MIXER:Current/FxRtnCh/Fader/On](commands/current_fxrtnch_fader_on.md)\n\n* [MIXER:Current/FxRtnCh/Label/Color](commands/current_fxrtnch_label_color.md)\n\n* [MIXER:Current/FxRtnCh/Label/Icon](commands/current_fxrtnch_label_icon.md)\n\n* [MIXER:Current/FxRtnCh/Label/Name](commands/current_fxrtnch_label_name.md)\n\n* [MIXER:Current/FxRtnCh/ToMix/Level](commands/current_fxrtnch_tomix_level.md)\n\n* [MIXER:Current/FxRtnCh/ToMix/On](commands/current_fxrtnch_tomix_on.md)\n\n* [MIXER:Current/FxRtnCh/ToMix/Pan](commands/current_fxrtnch_tomix_pan.md)\n\n* [MIXER:Current/FxRtnCh/ToMix/PrePost](commands/current_fxrtnch_tomix_prepost.md)\n\n* [MIXER:Current/FxRtnCh/ToMono/Level](commands/current_fxrtnch_tomono_level.md)\n\n* [MIXER:Current/FxRtnCh/ToMono/On](commands/current_fxrtnch_tomono_on.md)\n\n* [MIXER:Current/FxRtnCh/ToSt/Pan](commands/current_fxrtnch_tost_pan.md)\n\n* [MIXER:Current/FxRtnCh/ToStereo/Pan](commands/current_fxrtnch_tostereo_pan.md)\n\n* [MIXER:Current/DCA/Fader/Level](commands/current_dca_fader_level.md)\n\n* [MIXER:Current/DcaCh/Fader/Level](commands/current_dcach_fader_level.md)\n\n* [MIXER:Current/DCA/Fader/On](commands/current_dca_fader_on.md)\n\n* [MIXER:Current/DcaCh/Fader/On](commands/current_dcach_fader_on.md)\n\n* [MIXER:Current/DCA/Label/Color](commands/current_dca_label_color.md)\n\n* [MIXER:Current/DcaCh/Label/Color](commands/current_dcach_label_color.md)\n\n* [MIXER:Current/DCA/Label/Icon](commands/current_dca_label_icon.md)\n\n* [MIXER:Current/DcaCh/Label/Icon](commands/current_dcach_label_icon.md)\n\n* [MIXER:Current/DCA/Label/Category](commands/current_dca_label_category.md)\n\n* [MIXER:Current/DcaCh/Label/Category](commands/current_dcach_label_category.md)\n\n* [MIXER:Current/DCA/Label/Name](commands/current_dca_label_name.md)\n\n* [MIXER:Current/DcaCh/Label/Name](commands/current_dcach_label_name.md)\n\n* [MIXER:Current/Mix/Fader/Level](commands/current_mix_fader_level.md)\n\n* [MIXER:Current/Mix/Fader/On](commands/current_mix_fader_on.md)\n\n* [MIXER:Current/Mix/Label/Color](commands/current_mix_label_color.md)\n\n* [MIXER:Current/Mix/Label/Icon](commands/current_mix_label_icon.md)\n\n* [MIXER:Current/Mix/Label/Category](commands/current_mix_label_category.md)\n\n* [MIXER:Current/Mix/Label/Name](commands/current_mix_label_name.md)\n\n* [MIXER:Current/Mix/ToMtrx/Level](commands/current_mix_tomtrx_level.md)\n\n* [MIXER:Current/Mix/ToMtrx/On](commands/current_mix_tomtrx_on.md)\n\n* [MIXER:Current/Mix/Out/Balance](commands/current_mix_out_balance.md)\n\n* [MIXER:Current/Mix/PanLink](commands/current_mix_panlink.md)\n\n* [MIXER:Current/Mix/Role](commands/current_mix_role.md)\n\n* [MIXER:Current/Mtrx/Fader/Level](commands/current_mtrx_fader_level.md)\n\n* [MIXER:Current/Mtrx/Fader/On](commands/current_mtrx_fader_on.md)\n\n* [MIXER:Current/Mtrx/Label/Color](commands/current_mtrx_label_color.md)\n\n* [MIXER:Current/Mtrx/Label/Icon](commands/current_mtrx_label_icon.md)\n\n* [MIXER:Current/Mtrx/Label/Category](commands/current_mtrx_label_category.md)\n\n* [MIXER:Current/Mtrx/Label/Name](commands/current_mtrx_label_name.md)\n\n* [MIXER:Current/Mtrx/Role](commands/current_mtrx_role.md)\n\n* [MIXER:Current/St/Fader/Level](commands/current_st_fader_level.md)\n\n* [MIXER:Current/St/Fader/On](commands/current_st_fader_on.md)\n\n* [MIXER:Current/St/Label/Color](commands/current_st_label_color.md)\n\n* [MIXER:Current/St/Label/Icon](commands/current_st_label_icon.md)\n\n* [MIXER:Current/St/Label/Category](commands/current_st_label_category.md)\n\n* [MIXER:Current/St/Label/Name](commands/current_st_label_name.md)\n\n* [MIXER:Current/St/ToMtrx/Level](commands/current_st_tomtrx_level.md)\n\n* [MIXER:Current/St/ToMtrx/On](commands/current_st_tomtrx_on.md)\n\n* [MIXER:Current/St/Out/Balance](commands/current_st_out_balance.md)\n\n* [MIXER:Current/Mono/Fader/Level](commands/current_mono_fader_level.md)\n\n* [MIXER:Current/Mono/Fader/On](commands/current_mono_fader_on.md)\n\n* [MIXER:Current/Mono/Label/Color](commands/current_mono_label_color.md)\n\n* [MIXER:Current/Mono/Label/Icon](commands/current_mono_label_icon.md)\n\n* [MIXER:Current/Mono/Label/Category](commands/current_mono_label_category.md)\n\n* [MIXER:Current/Mono/Label/Name](commands/current_mono_label_name.md)\n\n* [MIXER:Current/Mono/ToMtrx/Level](commands/current_mono_tomtrx_level.md)\n\n* [MIXER:Current/Mono/ToMtrx/On](commands/current_mono_tomtrx_on.md)\n\n* [MIXER:Setup/MonitorMix/Password](commands/setup_monitormix_password.md)\n\n* [MIXER:Current/MuteMaster/On](commands/current_mutemaster_on.md)\n\n* [MIXER:Current/Mix/BusType](commands/current_mix_bustype.md)\n\n* [MIXER:Current/InCh/PanMode](commands/current_inch_panmode.md)\n\n* [MIXER:Current/StInCh/PanMode](commands/current_stinch_panmode.md)\n\n* [MIXER:Current/FxRtnCh/PanMode](commands/current_fxrtnch_panmode.md)\n\n* [MIXER:Current/Mix/PanMode](commands/current_mix_panmode.md)\n\n* [MIXER:Current/St/PanMode](commands/current_st_panmode.md)\n\n* [MIXER:Current/StInCh/Role](commands/current_stinch_role.md)\n\n* [MIXER:Current/FxRtnCh/Role](commands/current_fxrtnch_role.md)\n\n* [MIXER:Current/St/Role](commands/current_st_role.md)\n\n* [MIXER:Current/FxRtnCh/Label/Category](commands/current_fxrtnch_label_category.md)\n\n* [MIXER:Current/MuteMaster/Label/Name](commands/current_mutemaster_label_name.md)\n\n* [ssrecall_ex](commands/ssrecall_ex.md)\n\n## Credits\n\n* Yamaha - For making a great mixer. Not for properly documenting it's API.\n* [bitfocus/companion-module-yamaha-rcp](https://github.com/bitfocus/companion-module-yamaha-rcp) - For compiling a list of commands available\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenekh%2Fyamaha-rcp-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrenekh%2Fyamaha-rcp-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrenekh%2Fyamaha-rcp-docs/lists"}