{"id":17648467,"url":"https://github.com/chabad360/resolume-timecode","last_synced_at":"2025-05-07T07:11:56.034Z","repository":{"id":40488077,"uuid":"345261913","full_name":"chabad360/resolume-timecode","owner":"chabad360","description":"Display time remaining for a chosen clip in a web browser.","archived":false,"fork":false,"pushed_at":"2022-05-15T21:15:46.000Z","size":634,"stargazers_count":18,"open_issues_count":3,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-25T22:43:26.435Z","etag":null,"topics":["go","golang","osc","resolume"],"latest_commit_sha":null,"homepage":"","language":"Go","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/chabad360.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["chabad360"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://cash.app/$chabad360"]}},"created_at":"2021-03-07T04:56:13.000Z","updated_at":"2025-02-06T09:27:39.000Z","dependencies_parsed_at":"2022-08-09T22:00:40.095Z","dependency_job_id":null,"html_url":"https://github.com/chabad360/resolume-timecode","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fresolume-timecode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fresolume-timecode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fresolume-timecode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chabad360%2Fresolume-timecode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chabad360","download_url":"https://codeload.github.com/chabad360/resolume-timecode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242912532,"owners_count":20205681,"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":["go","golang","osc","resolume"],"created_at":"2024-10-23T11:18:52.624Z","updated_at":"2025-03-10T19:31:31.235Z","avatar_url":"https://github.com/chabad360.png","language":"Go","funding_links":["https://github.com/sponsors/chabad360","https://cash.app/$chabad360"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"images/logo.svg\" alt=\"logo\" width=\"172\" height=\"172\" /\u003e \n  \u003ch2\u003eResolume Timecode Monitor\u003c/h2\u003e\n  \u003cp\u003eView the time left for a playing clip on multiple devices.\u003c/p\u003e\n\u003c/div\u003e\n\n| \u003cimg alt=\"client\" src=\"images/demo.png\" width=\"65%\"/\u003e | \u003cimg alt=\"server\" src=\"images/demo2.jpg\" width=\"130%\"/\u003e |\n|:-----------------------------------------------------:|:-------------------------------------------------------:|\n|                _The client interface._                |               _The server end of things._               |\n\n## How to use\n\n1. Download the [latest release](https://github.com/chabad360/resolume-timecode/releases)\n2. Open the app and verify that all the information in there is set correctly.\n3. Click _Start Server_\n4. Open your web browser to the location specified by the application.\n5. Start playing a clip in Resolume.\n6. Profit.\n\n\u003e Note: The precision should be within a few hundred milliseconds (usually 50ms), if it feels off double check that the clip length \n(in the status bar on the bottom) is correct. If it isn't, just click the reset button.\n\n### How to set the `Path` field\n\n| Clip to use    | Example path                    |\n|:---------------|:--------------------------------|\n| Selected Clip  | `/composition/selectedclip`     |\n| Specific Clip  | `/composition/layers/1/clips/1` |\n| Selected Layer | `/composition/selectedlayer`    |\n| Specific Layer | `/composition/layers/1`         |\n\n\u003e Note: using a layer will cause the layer's name to be shown on the client instead of the clip name\n\u003e (I'm not sure if there is a way to fix that).\n\n## Motivation\n\nWhen using Resolume for events where longer clips were being played, I found it annoying that the only way to find out\nthe remaining time was to ask the guy in front of the laptop. So I decided to fix that.\n\n## How it works\n\nResolume outputs the position of the clip head through OSC, by calculating how much time it took between the one message\nand the previous one, it's possible to calculate how long the clip is, and therefore how much time is left.\nDue to certain inconsistencies in the way this information is outputted, it's not as simple as it sounds.\n\nFor the exact algorithm, check [procmessage.go](https://github.com/chabad360/resolume-timecode/blob/master/procmessage.go) \n(specifically, [`procPos()`](https://github.com/chabad360/resolume-timecode/blob/master/procmessage.go#L97)).\n\nAnyway, because we're running in a browser, we can't actually interact with OSC (as it works over UDP),\nso this application also acts a proxy, running the algorithm on the messages and sending the timecode to the client.\n\n## Known Issues\n\n- Uses around 60-70mb of RAM. Sorry, can't do much about that, at least it's better than an electron app.\n\n## Building\n\nBecause this is based on [fyne](https://fyne.io) it requires the use of _cgo_, so make sure you have a C compiler installed on your system.\n\nJust clone the repo and run `go build github.com/chabad360/resolume-timecode`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchabad360%2Fresolume-timecode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchabad360%2Fresolume-timecode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchabad360%2Fresolume-timecode/lists"}