{"id":20020470,"url":"https://github.com/shakfu/sndpipe","last_synced_at":"2026-06-09T19:31:34.197Z","repository":{"id":113537264,"uuid":"361962186","full_name":"shakfu/sndpipe","owner":"shakfu","description":"Max / MSP externals using the Soundpipe DSP Library","archived":false,"fork":false,"pushed_at":"2021-07-28T10:54:58.000Z","size":2133,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-02T03:34:19.861Z","etag":null,"topics":["c","dsp","external","max","maxmsp","soundpipe"],"latest_commit_sha":null,"homepage":"","language":"C","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/shakfu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-04-27T02:58:57.000Z","updated_at":"2025-02-22T02:38:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"1fc76093-832f-4b86-b2db-b4eedb676105","html_url":"https://github.com/shakfu/sndpipe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shakfu/sndpipe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakfu%2Fsndpipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakfu%2Fsndpipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakfu%2Fsndpipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakfu%2Fsndpipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shakfu","download_url":"https://codeload.github.com/shakfu/sndpipe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakfu%2Fsndpipe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34123171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["c","dsp","external","max","maxmsp","soundpipe"],"created_at":"2024-11-13T08:32:32.076Z","updated_at":"2026-06-09T19:31:34.178Z","avatar_url":"https://github.com/shakfu.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sndpipe\n\nEarly-stage project containing experiments with Max/MSP externals and the nifty [Soundpipe DSP](https://github.com/PaulBatchelor/Soundpipe) library.\n\nMy initial goal was to learn MSP external programming by using a DSP library, however it's so quick to develop with Soundpipe DSP that there's now a secondary goal to produce a set of Max/MSP objects which correspond on a one-to-one basis with Soundpipe modules.\n\nPlease note that is a macOS only package and it includes cycling 74's [maxsdk](https://github.com/Cycling74/max-sdk) as a submodule in the `source` directory, so you will have to do the following in the project root after cloning the repo.\n\n```bash\ngit submodule init\ngit submodule update\n```\n\n## Compilation for Use\n\nThis project uses [Xcodegen](https://github.com/yonaskolb/XcodeGen) to generate an xcode project of a max external from a yaml spec\n\nFor convenience, `libsoundpipe.a` and `libsndfile.a` are included. Please feel free to compile these separately.\n\nAfter compilation, to install, just soft link or copy this folder to `$HOME/Documents/Max 8/Packages/sndpipe`\n\n## Externals developed to date\n\n- **sp_bigverb~**: A nice-sounding spaceout reverb.\n\n- **sp_bitcrush~**: Digital signal degradation.\n\n- **sp_brown~**: Brownian noise generator.\n\n- **sp_delay~**: A simple clear-sonding delay.\n\n- **sp_osc~**: A simple oscillator with sine and triangle waveforms.\n\n- **sp_pshift~**: A pitch-shifter effect.\n\n- **sndpipe~**: A kitchensink of things.\n\n## Externals under-development (NOT YET WORKING)\n\n- **compressor~**: a basic compressor.\n- **smoothdelay~**: Smooth variable delay line without varispeed pitch.\n\n## Development\n\nTo speed up conversion of soundpipe modules to Max/MSP externals, this project uses code generation of the subproject elements.\n\nTo create a new subproject. Pick a module from Sound pipe. Let's use `bitcrush` in this example. We see from the module lua [description](https://github.com/PaulBatchelor/Soundpipe/blob/master/modules/data/bitcrush.lua) that it has two (optional) params:\n\n- int bitdepth with default: 8, min: 1, and max: 16\n- float srate with default: 1000.0\n\nThe other important files during development of the external are:\n\n- The [module code](https://github.com/PaulBatchelor/Soundpipe/blob/master/modules/bitcrush.c).\n\n- The module [test file](https://github.com/PaulBatchelor/Soundpipe/blob/master/test/t/t_bitcrush.c).\n\nSo let's generate the subproject skeleton:\n\n```bash\ncd sndpipe/source/dev\n./scripts/gen.py bitcrush -p bitdepth int 8 1 16 -p srate float 1000.0\n```\n\nThe new subproject will be generated in the `dev` folder as `sp_bitcrush~`.\n\nTo build it:\n\n```bash\ncd sp_bitcrush~\n./build.sh\n```\n\n## Credits\n\nThanks to Paul Batchelor for sharing his very welcoming Soundpipe library!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakfu%2Fsndpipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshakfu%2Fsndpipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakfu%2Fsndpipe/lists"}