{"id":13659976,"url":"https://github.com/residuum/Puredata-abstractions","last_synced_at":"2025-04-24T15:31:28.510Z","repository":{"id":136498057,"uuid":"2055829","full_name":"residuum/Puredata-abstractions","owner":"residuum","description":"Some abstractions for Puredata: Simple loopers, effects and helpers.","archived":true,"fork":false,"pushed_at":"2023-11-18T00:26:42.000Z","size":1328,"stargazers_count":87,"open_issues_count":0,"forks_count":11,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-08-02T05:11:20.463Z","etag":null,"topics":["looper","pure-data","puredata","utility-library"],"latest_commit_sha":null,"homepage":"http://ix.residuum.org/pd/misc.html","language":null,"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/residuum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2011-07-15T22:16:05.000Z","updated_at":"2024-05-17T02:38:33.000Z","dependencies_parsed_at":"2023-05-12T08:00:32.059Z","dependency_job_id":"304f1a33-7a19-429d-910e-7071933c7ced","html_url":"https://github.com/residuum/Puredata-abstractions","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/residuum%2FPuredata-abstractions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/residuum%2FPuredata-abstractions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/residuum%2FPuredata-abstractions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/residuum%2FPuredata-abstractions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/residuum","download_url":"https://codeload.github.com/residuum/Puredata-abstractions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223958146,"owners_count":17231746,"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":["looper","pure-data","puredata","utility-library"],"created_at":"2024-08-02T05:01:14.482Z","updated_at":"2024-11-10T13:31:34.198Z","avatar_url":"https://github.com/residuum.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"**Due to Github's determination to be the \"world’s leading AI-powered developer platform\" I will move my projects to [Codeberg](https://codeberg.org/Residuum)**\n\n# Abstractions for Puredata\n\nThis is a collection of abstractions that I have made for Puredata. I use\nthe Pd convention for adding a trailing tilde (~) to all objects, that\noutput or process audio. A lot of objects have accompaning help patches.\n\nFor all abstractions to load without any error you need the following\nlibraries, available via deken:\n- iemguts\n- cyclone\n- zexy\n\n## Effects and Mixing (fx)\n`[bitcrusher~]`: simple bitcrusher effect.\n\n`[distortion~]`: simple distortion effect.\n\n`[normalize~]`: normalizes the sound and removes offset.\n\n`[pan~]`: equal volume pan for mono.\n\n`[pitchshift~]`, `[pitchshift2~]`: simple pitchshifter, each with its own\nresidual effects.\n\n`[vol-env~]`: 16 step volume envelope with bypass.\n\n`[waveshaper~]`: render incoming sound to base sounds.\n\n## Glue objects (glue)\n`[bangonce]`: outputs only one bang, if the inlet receives a series of\n1s. Useful for filtering MIDI data or data coming a comport object like\nan arduino.\n\n`[between]`: outputs a random float between two pre-defined values\n\n`[bpmtoms]`: converts beats per minute to milliseconds for each beat,\ninverse of `[mstobpm]`.\n\n`[integral]`: integrates float values.\n\n`[mstobpm]`: converts milliseconds for a beat to beats per minute, inverse\nof `[bpmtoms]`.\n\n`[mstofreq]`: converts milliseconds to a frequency.\n\n`[note-vel-filter]`: filters a stream of MIDI data to only capture MIDI on,\noff and velocity.\n\n`[rec_play_switch]`: two switches for starting recording and playing loops\nfor `[note-vel-looper]` and `[sample-looper~]`.\n\n`[s2f]`: converts symbol atoms to float atoms.\n\n`[shift-router]`: routes input to one of six outlets with another input\nfor switching the outlets, useful for usage with push-buttons on an\narduino etc.\n\n`[switch-bang]`: outputs bang alternatively on two outlets when receiving\na bang.\n\n`[switch-matrix]`: routes inlets to outlets. Rows correspond to outlets, \ncolumns to inlets, so the toggle in row 1 column 2 routes the input from inlet 2 \nto outlet 1, e.g. useful for toggling synchronization of `[sample-looper~]` instances.\nCan be initialized with the number of inlets and outlets with up to 15, defaults to 4.\n\n`[switch-spigot]`: outputs 1 and 0 alternatively on the two outlets, useful\nfor switching two spigot objects.\n\n`[symbollen]`: gets the length of a symbol atom.\n\n`[timer-to-freq]`: measures the time between a bang on the left side and\nthe right side and converts the timespan to frequency.\n\n`[trigger-filter]`: filters a stream of 0s and 1s and only outputs a value\nwhen a change is occuring.\n\n`[unwrap]`: wraps around values at specified lower and upper bound, e.g.\nuseful for rotation data.\n\n## Looper objects (loopers)\n`[breakbeat~]`: loads a stereo sample of 8 beats length, slices it and plays \nit back as a breakbeat with adjustable playback speed and pitch. \n\n`[live-sampler~]`: records a sample and play it back as loops with MIDI notes.\nPitch of recorded loop is set to note 60, contains ADSR envelope, modulation\nof playback pitch.\n\n`[live-sampler-box~]`:  a combination of `[live-sampler~]` and `[sample-looper-box]` \n\n`[note-vel-looper]`, `[note-vel-looper-box]`: records and plays back MIDI loops\nwith adjustable start and stop, can be synchronized with other instances\nof itself and `[sample-looper~]` instances.\n\n`[sample-looper~]`, `[sample-looper-box~]`: records and plays back audio loops\nwith adjustable start, stop, playback speed and pitch, can be synchronized with\nother instances of itself and `[note-vel-looper]` instances.\n\n## Sound synthesis (synth)\n`[pulsewidth~]`: rectangle oscillator with pulsewidth modulation.\n\n`[triangle~]`: Triangle wave oscillator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresiduum%2FPuredata-abstractions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fresiduum%2FPuredata-abstractions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresiduum%2FPuredata-abstractions/lists"}