{"id":28302642,"url":"https://github.com/taylordotfish/waveshaper","last_synced_at":"2025-09-09T01:41:11.067Z","repository":{"id":91385871,"uuid":"94594956","full_name":"taylordotfish/waveshaper","owner":"taylordotfish","description":"An LV2 waveshaper plugin","archived":false,"fork":false,"pushed_at":"2024-02-18T22:03:57.000Z","size":39,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-14T05:35:10.187Z","etag":null,"topics":["audio","audio-effect","audio-plugin","distortion","lv2","lv2-plugin","plugin","waveshaper"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taylordotfish.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,"zenodo":null}},"created_at":"2017-06-17T02:15:53.000Z","updated_at":"2025-02-01T08:36:51.000Z","dependencies_parsed_at":"2024-02-18T22:44:40.583Z","dependency_job_id":null,"html_url":"https://github.com/taylordotfish/waveshaper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/taylordotfish/waveshaper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylordotfish%2Fwaveshaper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylordotfish%2Fwaveshaper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylordotfish%2Fwaveshaper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylordotfish%2Fwaveshaper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taylordotfish","download_url":"https://codeload.github.com/taylordotfish/waveshaper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taylordotfish%2Fwaveshaper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274232035,"owners_count":25245856,"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","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"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":["audio","audio-effect","audio-plugin","distortion","lv2","lv2-plugin","plugin","waveshaper"],"created_at":"2025-05-23T21:11:59.143Z","updated_at":"2025-09-09T01:41:11.046Z","avatar_url":"https://github.com/taylordotfish.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Fish Waveshaper\n===============\n\nFish Waveshaper is an LV2 waveshaper plugin.\n\n*Update: You should probably just use [Wolf Shaper] instead, but I’ll keep this\nup for posterity.*\n\n[Wolf Shaper]: https://github.com/pdesaulniers/wolf-shaper\n\n\nUsage\n-----\n\nToggle the “Show plot” switch to display a graph of the current waveshaping\nfunction. *You must have [gnuplot] installed for the graph to appear.* The\nx-axis represents input amplitude and the y-axis represents output amplitude.\n(Specifically, the axes represent the absolute value of the amplitude—the\nwaveshaping function is applied symmetrically to positive and negative\namplitudes.)\n\n[gnuplot]: http://gnuplot.info/\n\nYou can then change the X and Y values for points 1 through 6 to add points to\nthe graph. The Y value of the rightmost point on the graph can be changed with\nthe “End point Y” control.\n\n\n### Curves\n\nThe “curve”, “tension”, and “tangent” options for each point affect the\nshape of the curve between that point and the next point to the right. The\n“curve” option affects what type of curve is used:\n\n* **Linear:** A straight line between the two points.\n* **Tension:** A parabolic curve affected by the “tension” option. It is\n  always increasing or decreasing; it does not change direction.\n* **Tangents:** A curve with the slope of the leftmost part determined by\n  “tan.\u0026nbsp;1” and the rightmost part determined by “tan.\u0026nbsp;2”.\n\nThe “Origin” tension, tangent, and curve settings affect the curve between the\npoint in the bottom left corner (representing an input and output amplitude of\n0) and the next point to the right.\n\n\n### Asymmetric mode\n\nIn asymmetric mode (enabled with the “Asymmetric” switch), the origin is no\nlonger in the bottom left corner, but is rather fixed in the center of the\ngraph. It still represents an input and output amplitude of 0, but now X values\nto the left of the point represent negative input amplitude, and Y values below\nthe point represent negative output amplitude. (Values on the graph are scaled\nto range from -1 to 1.) The top and bottom parts of the wave can now be shaped\ndifferently.\n\nWith the origin now in the center of the graph, the “Asym.” options affect the\npoint in the lower-left corner. “Asym. Y” affects the Y value of this point,\nand the “Asym.” tension, tangent, and curve settings affect the curve between\nthis point and the next point to the right.\n\n\n### Other options\n\n“Monitor levels” enables the use of the peak meters, and allows you to see\ninput level, output level, and whether or not the input is being clipped. (The\ninput is clipped to 0dBFS, which corresponds to an amplitude of 1 or -1.)\n\n“Oversample” enables oversampling by the specified factor, which reduces\naliasing. This can sometimes amplify the output signal (you may want to use the\n“Output gain” control in this case).\n\n“Input gain” controls the amplification of the input signal, and “Output gain”\ncontrols the amplification of the output signal.\n\n\nDependencies\n------------\n\n* LV2 development files\n* gnuplot\n* GCC\n* GNU Make\n\nOn Debian GNU/Linux (and many derivatives), these can be installed by running\nthe following command as root:\n\n```\napt-get install lv2-dev gnuplot gcc make\n```\n\n\nInstallation\n------------\n\nRun the following commands (you will need to have [Git] installed):\n\n```\ngit clone https://github.com/taylordotfish/waveshaper ~/.lv2/fish-waveshaper.lv2/\ncd ~/.lv2/fish-waveshaper.lv2/\nmake\n```\n\n[Git]: https://git-scm.com/\n\n\nLicense\n-------\n\nFish Waveshaper is licensed under the GNU General Public License, version 3 or\nany later version. See [LICENSE].\n\nThis README file has been released to the public domain using [CC0].\n\n[LICENSE]: LICENSE\n[CC0]: https://creativecommons.org/publicdomain/zero/1.0/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaylordotfish%2Fwaveshaper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaylordotfish%2Fwaveshaper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaylordotfish%2Fwaveshaper/lists"}