{"id":15400750,"url":"https://github.com/agraef/pd-jacktime","last_synced_at":"2026-02-23T09:02:17.468Z","repository":{"id":81375707,"uuid":"112214238","full_name":"agraef/pd-jacktime","owner":"agraef","description":"Pd external written in Lua which provides a basic interface to the Jack transport client API","archived":false,"fork":false,"pushed_at":"2024-07-14T19:10:11.000Z","size":23,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-29T16:42:40.990Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agraef.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"publiccode":null,"codemeta":null}},"created_at":"2017-11-27T15:34:30.000Z","updated_at":"2024-07-14T19:10:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"371de68d-f6b5-446d-9289-394ed2eefd68","html_url":"https://github.com/agraef/pd-jacktime","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agraef/pd-jacktime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fpd-jacktime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fpd-jacktime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fpd-jacktime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fpd-jacktime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agraef","download_url":"https://codeload.github.com/agraef/pd-jacktime/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agraef%2Fpd-jacktime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29740726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: 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":[],"created_at":"2024-10-01T15:54:51.939Z","updated_at":"2026-02-23T09:02:16.128Z","avatar_url":"https://github.com/agraef.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pd-jacktime\n\nThis external provides a basic interface to the [Jack transport][1] client\nAPI. The `jacktime` object observes and reports the current frame, status\n(stopped/rolling) and, if available, BBT (bars-beats-ticks, as well as meter,\nppq, bpm) data. This information can then be used to synchronize Pd with a\nJack transport master like Ardour.\n\n[1]: http://jackaudio.org/files/docs/html/transport-design.html\n\n## Requirements and Installation\n\nThe external is written in Lua, so pd-lua is required. Lua 5.3 and 5.4 have\nbeen tested, earlier Lua versions might require some fiddling with the Lua\nsource in jacktime.pd_lua and/or the C part of the module in jtime.c. Lua can\nbe found in many Linux distributions and on MacPorts/Homebrew. A version of\npd-lua compatible with Lua 5.3+ is available from\n\u003chttps://github.com/agraef/pd-lua\u003e.\n\nNote that you'll have to build against the same Lua version that pd-lua itself\nwas built with. Also note that on Debian- and Ubuntu-based systems you'll need\nto have the Lua development files installed (e.g., liblua5.4-dev on newer\nDebian/Ubuntu systems).\n\nRun `make` to compile the Lua module jtime.c and then `make install` to\ninstall the external under /usr/lib/pd-externals. Finally, put the\n/usr/lib/pd-externals/jacktime folder on your Pd library path and you should\nbe set.\n\n## Usage\n\nPlease check the included help patch for usage information and the comments in\nthe jacktime.pd_lua script for technical details.\n\nAlso included is a little GOP abstraction timebase.pd which can either produce\nan internal clock pulse using metro, or sync to an external time source using\nJack. In either case it generates on its leftmost outlet a sequence of pulse\nnumbers counting from 0 to num-1, where `num` is the numerator of the current\nmeter. The tempo is determined by the `bpm` value which as usual specifies the\nnumber of quarter pulses per minute, and the `unit` (denominator) of the meter\n(the latter customarily is a power of 2, but you can specify any positive\ninteger there).\n\nIt is also possible to generate fractional pulses (subdivisions of the base\npulse) by setting the `div` parameter to a value \u003e 1. You can change the meter\nand the tempo at any time using the provided controls, or you can feed a\nmessage of the form `num unit` or `num unit div` to the leftmost inlet of the\nabstraction, and set a `bpm` value on the second inlet. The defaults are meter\n= 4 4 1 (common time without subdivisions) and bpm = 120. You can also switch\nbetween Jack sync and internal time at any time, either with the red and green\ntoggles of the abstraction or by sending a corresponding message to the third\ninlet.\n\nIn addition, the third inlet also accepts any other message which is simply\nforwarded to the embedded `jacktime` object, like the Jack transport messages\n`start`, `stop` and `locate pos`. (The transport messages also work if\ntransport information reporting is off. Please check the jacktime-help.pd\npatch for more information on these.) Please also check the timebase-help.pd\npatch for an example which produces metronome clicks for illustration\npurposes.\n\nOnce pd-jacktime is installed, to give it a go launch Jack and open the\ntimebase-help.pd patch. (Note that it doesn't matter whether Pd itself is\nconfigured to use Jack, as the jacktime object uses its own internal Jack\ntransport client.) Click the green toggle in the timebase abstraction and turn\nup the volume in the click subpatch to listen to the metronome click. (You can\nalso click on the toggle in the click subpatch to enable MIDI output, if you\nhave a GM-compatible synthesizer like fluidsynth hooked up to Pd's MIDI\noutput.) Try changing the meter by clicking on one of the sample messages at\nthe top of the patch.\n\nIf all is well, you should hear the metronome clicks as determined by the\ncurrent meter and bpm settings. Now try engaging Jack sync by clicking on the\nred toggle in the abstraction. Then launch your favorite Jack sequencer\napplication, such as Ardour or Hydrogen. Configure it as a Jack time master\nand press Play. Jack transport should be rolling now and the metronome clicks\nproduced by Pd should be exactly in sync with the Jack application.\n\nNote that once the timebase abstraction has been switched to Jack, meter and\ntempo are determined solely by the Jack time master and pulses will be\nproduced only when the transport is rolling. (However, you can still set any\ndesired subdivisions using the `div` value, which isn't controlled by Jack.)\n\nIf all works well, congrats! You can now start building your own Jack time\nclients in Pd, e.g., starting from the the timebase-help.pd patch.\n\nHere are some things you can try if things are not working well. If you're\ngetting sound from timebase-help.pd, but Jack sync (the red toggle) doesn't\nappear to work, double-check to make sure that your Jack sequencer application\nis really configured as a Jack time master. If you're not getting any sound\nfrom timebase-help.pd even when using the internal clock (green toggle), but\nthe pulses seem to be \"rolling\" on the first outlet of the time abstraction,\nplease double-check that Pd is actually hooked up to the right sound device\n(employing Pd's \"Test Audio and Midi\" patch) and that the volume in the click\nsubpatch and your speakers is turned up. (Yeah, I know, you're an audio\nexpert, it's such a basic thing, who'd make such a silly mistake!\nNevertheless it happens all the time.)\n\n## Reporting Bugs etc.\n\nIf you followed all instructions and it still doesn't work, well, you just\nmight have run into a bug in pd-jacktime. We'd like to hear about those, so\nplease head over to the bug tracker\nat \u003chttps://github.com/agraef/pd-jacktime/issues\u003e to report the\nproblem. Describe the symptoms and provide as much detail as possible, such as\nerror messages in Pd's main window. If you have any other comments,\nsuggestions or code contributions, please use the bug tracker, toss me a pull\nrequest, or mail me at \u003caggraef@gmail.com\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagraef%2Fpd-jacktime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagraef%2Fpd-jacktime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagraef%2Fpd-jacktime/lists"}