{"id":24231082,"url":"https://github.com/totetmatt/bonzo_tool_scripts","last_synced_at":"2025-09-22T23:31:30.076Z","repository":{"id":41971398,"uuid":"450761416","full_name":"totetmatt/bonzo_tool_scripts","owner":"totetmatt","description":"BTS: Bonzo Tool Scripts","archived":false,"fork":false,"pushed_at":"2024-03-10T09:51:07.000Z","size":205,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-03-11T00:34:43.478Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/totetmatt.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":"2022-01-22T08:35:14.000Z","updated_at":"2023-03-20T11:49:51.000Z","dependencies_parsed_at":"2023-12-03T10:36:57.605Z","dependency_job_id":null,"html_url":"https://github.com/totetmatt/bonzo_tool_scripts","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totetmatt%2Fbonzo_tool_scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totetmatt%2Fbonzo_tool_scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totetmatt%2Fbonzo_tool_scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totetmatt%2Fbonzo_tool_scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/totetmatt","download_url":"https://codeload.github.com/totetmatt/bonzo_tool_scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233900312,"owners_count":18747837,"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":[],"created_at":"2025-01-14T13:32:13.621Z","updated_at":"2025-09-22T23:31:24.587Z","avatar_url":"https://github.com/totetmatt.png","language":"Rust","readme":"# Bonzo Tool Scripts (BTS)\nSet of tool scripts for bonzomatic\n\n\n![alt text](./doc/imgs/main.jpg \"Title\")\n\n\nCheck here some [Tutorials](./TUTORIALS.md)\n\n## Recorder\n```\nRecord an entry from a websocket entrypoint\n\nUSAGE:\n    bts.exe recorder [OPTIONS] --host \u003cHOST\u003e --room \u003cROOM\u003e \u003cHANDLE\u003e\n\nARGS:\n    \u003cHANDLE\u003e    Handle\n\nOPTIONS:\n    -h, --help                   Print help information\n        --host \u003cHOST\u003e            Host or Host:Port\n    -p, --protocol \u003cPROTOCOL\u003e    Protocol [default: ws]\n        --room \u003cROOM\u003e            Room\n    -V, --version                Print version information\n```\n\n## Replayer\n```\nReplay a saved entry to a websocket entrypoint\n\nUSAGE:\n    bts.exe replayer [OPTIONS] --host \u003cHOST\u003e --room \u003cROOM\u003e \u003cHANDLE\u003e \u003cFILE\u003e\n\nARGS:\n    \u003cHANDLE\u003e    Handles\n    \u003cFILE\u003e      Input Json file\n\nOPTIONS:\n    -h, --help                                 Print help information\n        --host \u003cHOST\u003e                          Host or Host:Port\n    -p, --protocol \u003cPROTOCOL\u003e                  Protocol [default: ws]\n        --room \u003cROOM\u003e                          Room\n        --update-interval \u003cUPDATE_INTERVAL\u003e    udpateInterval (ms) [default: 300]\n    -V, --version                              Print version information\n```\n\n## Radio \n```\nSend multiple shader at certain interval form a given playlist to an entrypoint, like a radio\n\nUSAGE:\n    bts.exe radio [OPTIONS] --host \u003cHOST\u003e --room \u003cROOM\u003e \u003cHANDLE\u003e \u003cPATH\u003e\n\nARGS:\n    \u003cHANDLE\u003e    Handle\n    \u003cPATH\u003e      Glob path of source files (playlist)\n\nOPTIONS:\n    -h, --help                                 Print help information\n        --host \u003cHOST\u003e                          Host or Host:Port\n    -p, --protocol \u003cPROTOCOL\u003e                  Protocol [default: ws]\n        --room \u003cROOM\u003e                          Room\n        --time-per-entry \u003cTIME_PER_ENTRY\u003e      Time of boradcast per entry (ms) [default: 10000]\n        --update-interval \u003cUPDATE_INTERVAL\u003e    udpateInterval (ms) [default: 500]\n    -V, --version                              Print version information\n```\n\nExample : \n```\nbts.exe radio --host drone.alkama.com:9000 --room test radio_test demo\\playlist\\**\\*.glsl\n```\n\nAnd read with bonzomatic like this : \n```\n.\\Bonzomatic_W64_GLFW.exe  skipdialog networkMode=grabber serverURL=ws://drone.alkama.com:9000/test/radio_test\n```\n\nA long running radio will be playing a mix of glsl from https://livecode.demozoo.org at this address: `ws://drone.alkama.com:9000/livecode/radio`\n\nYou can listen via bonzomatic via this command line : \n```\n.\\Bonzomatic_W64_GLFW.exe  skipdialog networkMode=grabber serverURL=ws://drone.alkama.com:9000/livecode/radio\n```\n## Server\n```\nStart a websocket server\n\nUSAGE:\n    bts.exe server [OPTIONS]\n\nOPTIONS:\n        --bind-addr \u003cBIND_ADDR\u003e\n            Host or Host:Port [default: 0.0.0.0:9785]\n\n    -h, --help\n            Print help information\n\n    -s, --save-shader-dir \u003cSAVE_SHADER_DIR\u003e\n            Directory where shaders are saved [default: ./shaders]\n\n        --save-shader-disable\n            Disable shader autosave\n```\n## Todo :\n\n- Timeline ui to control the replay\n\n\nI'm learning Rust and a potato developer on this language. Feel free to PR so I can learn :)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotetmatt%2Fbonzo_tool_scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftotetmatt%2Fbonzo_tool_scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotetmatt%2Fbonzo_tool_scripts/lists"}