Skip to main content

risset

risset: a package manager for csound

This is the repository of risset, a package manager for csound external plugins and user-defined-opcodes. The index aggregating all available packages is kept at risset-data.

Installation

risset requires csound 7 or later; csound 6 is no longer supported.

Outside of csound, risset depends only on git and python (>= 3.9) being installed. risset itself is a python program and can be installed as a any other python package. In general, The most convenient way to install risset is via uv.

MacOS / linux

# Install uv itself
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install risset
uv tool install risset

# To upgrade risset itself:
uv tool upgrade risset

Windows

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

uv tool install risset

# To upgrade risset itself:
uv tool upgrade risset

Quick start

List all defined packages

$ risset list

- else /2.0.0          | Miscellaneous plugins
- pathtools /2.0.0     | Cross-platform path handling and string opcodes
- klib /2.0.0          | A hashtable for csound
- beosc /2.0.0         | Band-enhanced oscillators implementing the sine+noise synthesis model
- jsfx /2.0.0          | jsfx support for csound
- poly /2.0.0          | Multiple (parallel or sequential) instances of an opcode
- sndmeta /2.0.0       | opcodes using libsndfile
- risset /2.0.0        | Opcodes to access risset package metadata
- poodle /2.0.0        | Faust plugins ported to csound

Install some packages

$ risset install else poly

Show information about a specific package

$ risset show poly

Plugin        : poly
Author        : Eduardo Moguillansky (eduardo.moguillansky@gmail.com)
URL           : https://github.com/csound-plugins/csound-plugins.git
Version       : 1.18.2

Installed     : Unknown (path: /home/xx/.local/lib/csound/7.0/plugins64/libpoly.so)
Manifest      : No manifest (installed manually)
Abstract      : Multiple (parallel or sequential) instances of an opcode
Description:
    Multiple (parallel or sequential) instances of an opcode
Opcodes:
    defer, poly, poly0, polyseq
Binaries:
    * linux/csound>=7.0
    * macos/csound>=7.0
    * macos-arm64/csound>=7.0
    * windows/csound>=7.0

Remove a plugin

$ risset remove poly

Show manual page for an opcode (installed or not)

$ risset man poly
# mtro

## Abstract

an accurate version of metro


## Description

`mtro` is a drop-in replacement of `metro` without the
drifting over time. `metro` is implemented by adding a phase
each cycle, which results in drifting over time due to rounding errors.
`mtro` avoids this problem by keeping a counter and doing multiplication
so that the error is limited.

Following metro's implementation by default `mtro` is triggered at time=0. This
is because `i_initphase` is set to 1 by default. It is possible to make `mtro` skip the
0 trigger by setting `i_initphase` to 0.

## Syntax


    kout mtro kfreq, i_initphase=1


## Arguments

* **kfreq**: the frequency of the trigger
* **i_initphase**: the initial phase (a value between 0 and 1). If set to 0, there is no trigger at time 0.
        If set to 1, `mtro` triggers at time=0, similar to `metro`

## Output

* **kout**: 1 if the mtro has triggered, 0 otherwise

## Execution Time

* Performance

Commands and options

Run risset --help or risset <command> --help for command-line help. Global options go before the command name:

risset [global-options] <command> [command-options] [arguments]

Global options

  • --debug: Print debug information.
  • --no-color: Disable colored output.
  • --update: Update the plugin data before running the command.
  • --stop-on-error: Stop parsing plugin data when an error is detected.
  • --user-plugins-path PATH: Use PATH as the user plugin directory (same as setting CS_USER_PLUGINDIR).
  • --version: Print the risset version and exit.

Risset also reads these environment variables:

  • LIBCSOUNDPATH: Path to the libcsound library used to query opcodes.
  • CS_USER_PLUGINDIR: Override the user plugin directory.
  • OPCODE7DIR64: Path to Csound's system opcodes.

Package commands

update

Update the local plugin index and metadata:

risset update

list

List plugins available for the current platform and Csound version. By default, plugins without a matching binary are omitted.

risset list [options]

Options:

  • --all: Include plugins without a binary for the current platform or Csound version.
  • --json: Output the plugin list as JSON.
  • -o, --outfile FILE: Write output to a file (only applies with --json).
  • --nameonly: Print only plugin names.
  • --installed: List only installed plugins.
  • --upgradeable: List only installed plugins that can be upgraded.
  • --noheader: Omit extra information in the list output.
  • -1, --oneline: Print each plugin on one line.

show

Show information about a plugin. --full includes additional information, including the binary URL.

risset show [--full] <plugin>

install

Install or update one or more plugins into the user plugin directory; no administrator privileges are normally needed. Plugin names may be glob patterns; quote patterns so the shell does not expand them first.

risset install [--force] <plugin> [<plugin> ...]

--force forces a reinstall, including when the installed version is unknown.

remove

Remove one or more installed plugins:

risset remove <plugin> [<plugin> ...]

upgrade

Upgrade all installed plugins for which a newer indexed version is available:

risset upgrade

download

Move a plugin's binary to a directory without installing it. The destination directory must already exist.

risset download [--path DIRECTORY] [--platform PLATFORM] <plugin>
  • --path DIRECTORY: Destination directory (default: current directory).
  • --platform PLATFORM: Select linux, linux-arm64, macos, macos-arm64, or windows (default: current platform).

resetcache

Clear the cached manual pages. --full also removes the local plugin index and cloned plugin repositories.

risset resetcache [--full]

Opcode and documentation commands

listopcodes

List installed opcodes. --all includes opcodes from plugins that are not installed; -l, --long also prints each opcode's plugin and description.

risset listopcodes [--all] [-l | --long]

man

Display an opcode's manual page. Multiple opcode names and quoted glob patterns are accepted. With no opcode argument, risset opens the generated documentation index.

risset man [options] [<opcode> ...]
  • -p, --path: Print <opcode>:<path> for each manual page.
  • -s, --simplepath: Print only each manual-page path.
  • -m, --markdown: Use the Markdown page (the default format).
  • --html: Open the HTML page in the default browser. --html and --markdown are mutually exclusive.
  • -e, --external: Open the Markdown page in the default application instead of displaying it in the terminal.
  • --theme THEME: Markdown display style: dark (default), light, gruvbox-dark, gruvbox-light, material, fruity, or native.

makedocs

Build documentation for plugin opcodes (requires mkdocs):

risset makedocs [--onlyinstalled] [-o DIRECTORY]
  • --onlyinstalled: Build documentation only for installed plugins.
  • -o, --outfolder DIRECTORY: Write documentation to this directory.

info

Print environment and installation information as JSON. The output can be used by other applications, including CsoundQt.

risset info [--full] [--outfile FILE]
  • --full: Include information about all available plugins.
  • --outfile FILE: Save the JSON output to a file instead of stdout.

validate

Validate a risset.json plugin definition and the manual pages for its opcodes:

risset validate <infile>

Csound and developer commands

csound install

Install Csound using libcsound's installer. On Windows, run from an Administrator session. Use --force to reinstall an existing Csound installation.

risset csound install [--force]

dev

Developer utilities are grouped under risset dev:

  • risset dev opcodesxml [--outfile FILE]: Generate opcodes.xml; use --outfile stdout to print it to stdout.
  • risset dev codesign: Code-sign installed plugin binaries (macOS only).
  • risset dev completions [--fish | --bash | --zsh] [--install]: Print shell completions, or install them with --install. The shell is detected when possible; specify a shell option if detection fails. Supported on Linux and macOS.

Plugin Documentation

Documentation for all plugins can be found here: https://csound-plugins.github.io/risset-docs/


Contributing

In order to add/modify a plugin, clone risset-data

At the root of the repository there is an index file rissetindex.json, with the form:

{
    "version": "1.0.0",
    "plugins": {
        "else": {
            "url": "https://github.com/csound-plugins/csound-plugins.git",
            "path": "src/else"
        },
        "pathtools": {
            "url": "https://github.com/csound-plugins/csound-plugins.git",
            "path": "src/pathtools"
        },
        "klib": {
            "url": "https://github.com/csound-plugins/csound-plugins.git",
            "path": "src/klib"
        },
        "beosc": {
            "url": "https://github.com/csound-plugins/csound-plugins.git",
            "path": "src/beosc"
        },
        "vst3": {
            "url": "https://github.com/csound-plugins/vst3-risset.git"
        }
    }
}

To add a plugin to the index, just extend the plugins dict. The url should point to a valid git repository, the path attribute can be used to indicate where risset.json manifest is within this repository. This allows to define multiple plugins within one repository.

Manifest

Each plugin has an accompanying manifest in the .json format. The name of this file is always risset.json See one of the examples in https://github.com/csound-plugins/csound-plugins/tree/master/src for more information

Metadata

Release files for risset 4.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for risset 4.0.1
File Size Uploaded
risset-4.0.1.tar.gz 145.6 kB Details

Release files / risset-4.0.1.tar.gz

Download URL risset-4.0.1.tar.gz
Size 145.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7a6bcb096385c8b0b6b064c7f9dba3014c3dd4536db074748d3429e1628cede6
BLAKE2b-256 checksum
How to use checksums
29df2e3959aa7596b11a294762845b139410afffe9b1defd2893ab6cac889c9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release history Release notifications | RSS feed

This release

4.0.1 This release

1 release file

3.6.9

2 release files

3.6.7

1 release file

3.6.4

1 release file

3.6.3

2 release files

3.6.2

1 release file

3.6.1

1 release file

3.6.0

1 release file

3.5.7

1 release file

3.5.6

1 release file

3.5.5

1 release file

3.5.4

1 release file

3.5.3

1 release file

3.5.2

1 release file

3.5.1

1 release file

3.5.0

2 release files

3.4.3

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.9

2 release files

3.3.8

2 release files

3.3.7

2 release files

3.3.6

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.4

2 release files

3.2.2

2 release files

3.2.0

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.9.2

2 release files

2.9.1

1 release file

2.9.0

2 release files

2.8.0

1 release file

2.7.9

1 release file

2.7.8

2 release files

2.7.7

2 release files

2.7.6

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.1

2 release files

2.1.0

1 release file

2.0.0

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.6

1 release file

1.3.4

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.9

1 release file

0.2.8

1 release file

0.2.7

1 release file

0.2.6

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.1.9

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page