{"id":19157655,"url":"https://github.com/shybyte/soundpipe","last_synced_at":"2026-02-18T05:01:09.070Z","repository":{"id":142065615,"uuid":"290114318","full_name":"shybyte/soundpipe","owner":"shybyte","description":"Music DSP library written in C (Backup of https://github.com/PaulBatchelor/Soundpipe, which has disappeared)","archived":false,"fork":false,"pushed_at":"2020-08-25T04:43:44.000Z","size":8102,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T08:46:05.897Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shybyte.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-08-25T04:40:10.000Z","updated_at":"2024-10-10T06:25:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"716802b0-4511-457b-b2f5-33f6cfa57d4b","html_url":"https://github.com/shybyte/soundpipe","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/shybyte/soundpipe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shybyte%2Fsoundpipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shybyte%2Fsoundpipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shybyte%2Fsoundpipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shybyte%2Fsoundpipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shybyte","download_url":"https://codeload.github.com/shybyte/soundpipe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shybyte%2Fsoundpipe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29569853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T04:18:28.490Z","status":"ssl_error","status_checked_at":"2026-02-18T04:13:49.018Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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-11-09T08:41:48.597Z","updated_at":"2026-02-18T05:01:09.030Z","avatar_url":"https://github.com/shybyte.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Soundpipe\n=========\n\nSoundpipe is a lightweight music DSP library written in C. It aims to provide\na set of high-quality DSP modules for composers, sound designers,\nand creative coders. \n\nSoundpipe supports a wide range of synthesis and audio DSP \ntechniques which include:\n\n- Classic Filter Design (Moog, Butterworth, etc)\n- High-precision and linearly interpolated wavetable oscillators\n- Bandlimited oscillators (square, saw, triangle)\n- FM synthesis\n- Karplus-strong instruments\n- Variable delay lines\n- String resonators\n- Spectral Resynthesis\n- Partitioned Convolution\n- Physical modeling\n- Pitch tracking\n- Distortion\n- Reverberation\n- Samplers / sample playback\n- Padsynth algorithm\n- Beat repeat\n- Paulstretch algorithm\n- FOF and FOG granular synthesis\n- Time-domain pitch shifting\n\nMore information on specific Soundpipe modules can be found in the\n[Soundpipe module reference guide](https://paulbatchelor.github.com/res/soundpipe/docs/).\n\nFeatures\n---------\n- High quality modules ported from Csound and FAUST\n- Sample accurate timing\n- Small codebase\n- Static library\n- Easy to extend\n- Easy to embed\n\n\nCompilation\n-----------\n\nBy default, Soundpipe needs libsndfile, and a standard build environment. \nOther modules that use other external libraries will need to be explicitly compiled\nby modifying config.mk.\n\nTo compile:\n\nmake\n\nsudo make install\n\n\nExamples \n--------\nTo build the examples, go into the examples folder and run \"make\", which will \ncreate files with a .bin extention. To run an example, run \"./ex_foo.bin\". When \nan example is run, it will generate a 5 second file called \"test.wav\". \n\n\nTests\n-----\n\nTests in Soundpipe are used to determine whether or not modules behave as \nexpected. Tests write the output of a module to memory, and check the MD5 hash \nvalue of the output against the MD5 value of a reference signal.\n\nTo build a test file, go into the test folder, and run \"make\". Then, run \n\"./run.bin\", which runs the tests. As the tests are run, an \"ok\" will appear in \nthe log if a test passes, and a \"not ok\" will appear if a test fails. \n\nIt is possible to hear the output of a particular test if you know the test \nnumber. You will need to have sox installed. For example, \nto hear what test 11 sounds like, run the following\ncommands:\n\n./run.bin render 11\n\n./write_wave.sh 0011.raw\n\nThis will generate a file called out.wav.\n\nThe testing utility has a few optional arguments. To see all possible arguments,\nrun \"./run.bin help\".\n\nThe Soundpipe Model\n-------------------\n\nSoundpipe is callback driven. Every time Soundpipe needs a frame, it will\ncall upon a single function specified by the user. Soundpipe modules are\ndesigned to process a signal one sample at a time.  Every module follows the\nsame life cycle:\n\n1. Create: Memory is allocated for the data struct.\n2. Initialize: Buffers are allocated, and initial variables and constants\nare set.\n3. Compute: the module takes in inputs (if applicable), and generates a\nsingle sample of output.\n4. Destroy: All memory allocated is freed.\n\nDocumentation\n-------------\nIf you have lua installed on your computer, you can generate the current html\ndocumentation for soundpipe by running \"make docs\". A folder called \"docs\"\nwill be created. The top page for the documentation is docs/index.html.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshybyte%2Fsoundpipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshybyte%2Fsoundpipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshybyte%2Fsoundpipe/lists"}