{"id":20823107,"url":"https://github.com/madskjeldgaard/komet","last_synced_at":"2025-05-11T21:31:05.739Z","repository":{"id":41105066,"uuid":"479456534","full_name":"madskjeldgaard/komet","owner":"madskjeldgaard","description":"Komet is a computer music / sound system by Mads Kjeldgaard","archived":true,"fork":false,"pushed_at":"2023-02-14T13:20:42.000Z","size":777,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-12T06:42:10.387Z","etag":null,"topics":["computermusic","faust","supercollider"],"latest_commit_sha":null,"homepage":"","language":"SuperCollider","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/madskjeldgaard.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-08T16:07:44.000Z","updated_at":"2024-12-17T05:18:20.000Z","dependencies_parsed_at":"2023-01-18T10:17:25.492Z","dependency_job_id":null,"html_url":"https://github.com/madskjeldgaard/komet","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskjeldgaard%2Fkomet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskjeldgaard%2Fkomet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskjeldgaard%2Fkomet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskjeldgaard%2Fkomet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madskjeldgaard","download_url":"https://codeload.github.com/madskjeldgaard/komet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253638844,"owners_count":21940433,"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":["computermusic","faust","supercollider"],"created_at":"2024-11-17T22:17:20.866Z","updated_at":"2025-05-11T21:31:04.673Z","avatar_url":"https://github.com/madskjeldgaard.png","language":"SuperCollider","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Komet\n![komet](assets/komet.png) \n\nKomet is a computer music / sound system by Mads Kjeldgaard written in [supercollider](https://github.com/supercollider/supercollider) and [faust](https://faust.grame.fr/).\n\nIt is currently not intended for use by others, but feel free to check it out.\n\n## About the system\n\nKomet is a library and a factory. \n\n### Features\n\nKomet is a computer music system that makes advanced synthesis operations and composition easier. It auto generates thousands of synthesizer variations from simple recipes and offers a range of DAW-like features such as effect chains (like on channel strips) and other conveniences. It can work natively in stereo, multichannel or high order ambisonics mode with the flick of a switch, allowing the same compositions to be used in different sound systems.\n\nThe main principle is to modularize the synth components into simple source functions and components that are then combined in all sorts of combinations. This way, a sound process only needs to be defined once to be built using all combinations of those components. This leads to more predictable naming schemes that makes it easier to compose with.\n\nIn addition, the system contains many convenience functions, custom types and shortcuts to help avoid common mistakes when composing with SynthDefs in patterns in SuperCollider. As an example - a piece of music can be written using this package for a stereo setup, but then if you want to work on it in high order ambisonics, you simply change the number of channels in the setup. The arguments of the SynthDefs produced are predictable (and aliased in the custom event types) to avoid embarrassing mistakes like setting the `\\atk` of a Synth in a pattern when in fact it was defined with the name `\\attack`, instead of hard coding this in a bunch of SynthDefs (leading to errors and discrepancies), you only need to define this once and it is propagated into all the SynthDefs produced. \n\n- Define one source sound function, get a plethora of SynthDefs - each source function is combined with every envelope, filter and panning function in the library automatically.\n- Consistent argument names in SynthDefs\n- Strict-ish typing to ensure data is initialized correctly\n- An FX library organized into stereo, channelized and high order ambisonics versions.\n\t- Includes a framework for generating \"parallel processing\" fx SynthDefs from all defined fx source functions\n- Multichannel support:\n\t- Azimuth-based multichannel panning\n\t- High order ambisonics\n\t- Stereo output\n\t- Mono output\n- Shipped with custom Faust plugins that are automatically compiled and installed.\n- JITlib-style FX chain as well as a \"main output\" effect system\n- Event types to make it easier and less errorprone to write patterns\n- Pattern types to easily manipulate fx chains or the main output effects\n- An expansive library of custom Faust-based plugins including filters, equalizers, compressors etc.\n\n## Dependencies\n\n- Faust =\u003e v2.40\n- SuperCollider =\u003e v3.12\n- sc3-plugins =\u003e v3.12\n\n## Install\n\n```supercollider\nQuarks.install(\"https://codeberg.org/madskjeldgaard/komet\")\n```\n\nThis library makes use of a range of internal Faust plugins and external c++-plugins.\n\n### Extensions\nTo make the main package lighter, some functionality has been moved to external and optional extensions. \n\nInstall them if you want their functionality as well:\n\n- [VSTPlugin support](https://codeberg.org/madskjeldgaard/kometvst)\n- [High order ambisonics support](https://codeberg.org/madskjeldgaard/komethoa)\n\n### External plugins\n\n#### Faust plugins\n\nFaust plugins are automatically compiled and installed after the first class library compilation after the system has detected the correct faust version (specifically it looks for the `faust2sc.py` executable). These plugins are installed in their own folder in Extensions.\n\nIf they're not installed, you can force the installation by running `KometDependencies.installFaustPlugins()`.\n\n#### C++ plugins\nSome external plugins written in C++ are necessary as well.\n\nThese are:\n- [guttersynth-sc](https://github.com/madskjeldgaard/guttersynth-sc)\n- [squinewave](https://github.com/required-field/squinewave)\n- [portedplugins](https://github.com/madskjeldgaard/portedplugins)\n- [supercollider-safety-limiter](https://github.com/nhthn/supercollider-safety-limiter)\n\nYou can either install them yourself or run `KometDependencies.installPlugins()` - this will use [plugins.quark](https://github.com/madskjeldgaard/plugins.quark) to automatically compile and install the above plugins and [faust.quark](https://github.com/madskjeldgaard/faust.quark) to compile and install the included Faust-plugins. To do this you need to have Git, Faust and CMake installed on your system.\n\n### Necessary server settings\nSome server settings need to be adjusted to allow for the extreme amount of synthdefs produced:\n\n```\ns.options.maxSynthDefs_(10000);\n```\n\n## Thanks\n\nSome parts of the system's dsp library are inspired or lifted from others' open source projects. Their code falls under their own licenses. \n\nHere are (some) of the people I'd like to thank:\n\n- Julian Rohrhuber, Alex McLean and other developers of [SuperDirt](https://github.com/musikinformatik/SuperDirt)\n- Jean-Louis Paquelin\n- Nathan Ho\n- Alejandro Olarte\n- Alik Rustamoff aka. Reflectives\n- Scott Carver\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadskjeldgaard%2Fkomet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadskjeldgaard%2Fkomet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadskjeldgaard%2Fkomet/lists"}