Giter Club home page Giter Club logo

komet's Introduction

Komet

komet

Komet is a computer music / sound system by Mads Kjeldgaard written in supercollider and faust.

It is currently not intended for use by others, but feel free to check it out.

About the system

Komet is a library and a factory.

Features

Komet 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.

The 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.

In 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.

  • 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.
  • Consistent argument names in SynthDefs
  • Strict-ish typing to ensure data is initialized correctly
  • An FX library organized into stereo, channelized and high order ambisonics versions.
    • Includes a framework for generating "parallel processing" fx SynthDefs from all defined fx source functions
  • Multichannel support:
    • Azimuth-based multichannel panning
    • High order ambisonics
    • Stereo output
    • Mono output
  • Shipped with custom Faust plugins that are automatically compiled and installed.
  • JITlib-style FX chain as well as a "main output" effect system
  • Event types to make it easier and less errorprone to write patterns
  • Pattern types to easily manipulate fx chains or the main output effects
  • An expansive library of custom Faust-based plugins including filters, equalizers, compressors etc.

Dependencies

  • Faust => v2.40
  • SuperCollider => v3.12
  • sc3-plugins => v3.12

Install

Quarks.install("https://codeberg.org/madskjeldgaard/komet")

This library makes use of a range of internal Faust plugins and external c++-plugins.

Extensions

To make the main package lighter, some functionality has been moved to external and optional extensions.

Install them if you want their functionality as well:

External plugins

Faust plugins

Faust 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.

If they're not installed, you can force the installation by running KometDependencies.installFaustPlugins().

C++ plugins

Some external plugins written in C++ are necessary as well.

These are:

You can either install them yourself or run KometDependencies.installPlugins() - this will use plugins.quark to automatically compile and install the above plugins and 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.

Necessary server settings

Some server settings need to be adjusted to allow for the extreme amount of synthdefs produced:

s.options.maxSynthDefs_(10000);

Thanks

Some parts of the system's dsp library are inspired or lifted from others' open source projects. Their code falls under their own licenses.

Here are (some) of the people I'd like to thank:

  • Julian Rohrhuber, Alex McLean and other developers of SuperDirt
  • Jean-Louis Paquelin
  • Nathan Ho
  • Alejandro Olarte
  • Alik Rustamoff aka. Reflectives
  • Scott Carver

komet's People

Contributors

madskjeldgaard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

573

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.