risset


Namerisset JSON
Version 2.9.2 PyPI version JSON
download
home_pagehttps://github.com/csound-plugins/risset
SummaryA package manager for csound
upload_time2024-05-09 23:40:36
maintainerNone
docs_urlNone
authorEduardo Moguillansky
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![risset](assets/risset-title.png)

# 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](https://github.com/csound-plugins/risset-data).

# Installation

`risset` depends only on `git` and `python3` (>= 3.9) being installed.


```bash
pip install risset
```

This will install the script "risset" into your path


### Linux

In certain linux distributions (ubuntu) it is not allowed to install packages to the
system python. In that case the recommended way is to install risset within
its own virtual environment via `pipx`:

```bash
sudo apt install pipx
pipx install risset
```

----------------------------------------------------

# Quick start

### List all defined packages

```bash


$ risset list

* else /1.18.2         | Miscellaneous plugins [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libelse.so
* pathtools /1.18.2    | Cross-platform path handling and string opcodes [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libpathtools.so
* klib /1.18.2         | A hashtable for csound [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libklib.so
* beosc /1.18.2        | Band-enhanced oscillators implementing the sine+noise synthesis model [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libbeosc.so
* jsfx /1.18.2         | jsfx support for csound [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libjsfx.so
* poly /1.18.2         | Multiple (parallel or sequential) instances of an opcode [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libpoly.so
* sndmeta /1.18.2      | opcodes using libsndfile [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libsndmeta.so
* risset /1.18.2       | Opcodes to access risset package metadata [manual]
                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/librisset.so
- vst3 /0.3.0          | Host vst3 plugins in csound
- chua /0.1.0          | Implementation of a Chua oscillator
- hdf5 /0.1.0          | Read/Write signals and arrays to/from an hdf5 file
- python /0.1.0        | Opcodes to interact with an embedded python interpreter

```

### Install some packages

```bash

$ risset install else jsfx

```

### Show information about a specific package

```bash

$ 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/em/.local/lib/csound/6.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>=6.17<7.0
    * linux/csound>=7.0
    * macos/csound>=6.17<7.0
    * macos/csound>=7.0
    * macos-arm64/csound>=6.17<7.0
    * macos-arm64/csound>=7.0
    * windows/csound>=6.17<7.0
    * windows/csound>=7.0
    
```

### Remove a plugin

```bash

$ risset remove poly

```

### See manual page for an opcode (installed or not)

```bash
$ risset man poly

```

```markdown

# 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

```

---------------


# Risset commands

### update

Update the local index to the latest state.

    $ risset update


### list

List all available plugins for your platform

    $ risset list [options]

##### Options

* `--nameonly`: Output just the name of each plugin
* `--installed`: List only installed plugins
* `--upgradeable`: List only installed packages which can be upgraded
* `--notinstalled`: List only plugins which are not installed
* `-1, --oneline`: List each plugin in one line


### show

Show information about a plugin

    $ risset show <plugin>


### install

Install one or multiple plugins

    $ risset install [--force] <plugin> [<plugin2>, ...]

Install a given plugin for the current platform. Plugins are installed into
the user folder (no administrator requirements are needed). Look at the `info`
command to query information about the system.

##### Options

* `--force`: Installs a plugin even if the plugin with the same version is already installed

the system folder where all other builtin plugins are installed (this requires administrator rights in some platforms). Admin rights are needed for this.


### remove

Remove an installed plugin

    $ risset remove <plugin>


    #### documentation

Open man page as markdown in the command line


    $ risset man [options] <opcode>


##### Options

* `-s, --simplepath`: Print just the path of the manual page
* `-m, --markdown`: Use the .md page instead of the .html version
* `-e, --external`: Open the man page in the default app. This is only used when opening the markdown man page.
* `--html`: Opens the .html version of the manpage in the default browser (or outputs the path with the --path option)
* `--theme {dark,light,gruvbox-dark,gruvbox-light,material,fruity,native}`: Style used when displaying markdown files (default=dark)

Open the html man page in the default browser:

    $ risset man --html <opcode>

Generate/update documentation:

    $ risset makedocs

Build the documentation for all defined plugins. This depends on **mkdocs** being installed


### upgrade

    $ risset upgrade

Upgrade any installed plugin to the latest version


### listopcodes

    $ risset listopcodes

List installed opcodes


##### Options

* `-l, --long`: Long format

```
$ risset listopcodes -l

accum               else        Simple accumulator of scalar values
atstop              else        Schedule an instrument at the end of the current instrument
beadsynt            beosc       Band-Enhanced Oscillator-Bank
beosc               beosc       Band-Enhanced Oscillator
bisect              else        Returns the fractional index of a value within a sorted ar…ay / tab
chuap               chua        Simulates Chua's oscillator
crackle             else        generates noise based on a chaotic equation
defer               poly        Run an opcode at the end of current event
deref               else        Dereference a previously created reference to a variable
detectsilence       else        Detect when input falls below an amplitude threshold
dict_del            klib        Remove a key:value pair from a hashtable
dict_dump           klib        Dumps the contents of this dict as a string
dict_exists         klib        Returns 1 if the dict exists, 0 otherwise
dict_free           klib        Free a hashtable
...

```

### download

    $ risset download <plugin>

Download a plugin

##### Options

* `--path PATH`: Directory to download the plugin to (default: current directory)
* `--platform`: The platform of the plugin to download (default: current platform). One of *linux*, *macos*, *window*, *macos-arm64*, *linux-arm64*


### info

    $ risset info [options]

Outputs information about the environment as json in order to be integrated by other systems.
For example, **CsoundQT** uses this command to read the installed plugins and their opcodes
and documentation

##### Options

* `--outfile OUTFILE`: Save output to this path
* `--full`: Include all available information

-------

# Plugin Documentation

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

-------

# Upgrading risset

If installed via `pip`, do:

    pip install risset -U

If installed via `git`, go to the repository and do:

    git pull
    python setup.py install


-----

# Contributing

In order to add/modify a plugin, clone [risset-data](https://github.com/csound-plugins/risset-data)

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

```json
{
    "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 about the manifest

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/csound-plugins/risset",
    "name": "risset",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Eduardo Moguillansky",
    "author_email": "eduardo.moguillansky@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6a/7d/71e3ac0a148ed66e3459b6a7f4f101752d43cacd61fd08b453f99a1d89f9/risset-2.9.2.tar.gz",
    "platform": null,
    "description": "![risset](assets/risset-title.png)\n\n# risset: a package manager for csound\n\nThis is the repository of risset, a package manager for csound external\nplugins and user-defined-opcodes. The index aggregating all available packages is kept \nat [risset-data](https://github.com/csound-plugins/risset-data).\n\n# Installation\n\n`risset` depends only on `git` and `python3` (>= 3.9) being installed.\n\n\n```bash\npip install risset\n```\n\nThis will install the script \"risset\" into your path\n\n\n### Linux\n\nIn certain linux distributions (ubuntu) it is not allowed to install packages to the\nsystem python. In that case the recommended way is to install risset within\nits own virtual environment via `pipx`:\n\n```bash\nsudo apt install pipx\npipx install risset\n```\n\n----------------------------------------------------\n\n# Quick start\n\n### List all defined packages\n\n```bash\n\n\n$ risset list\n\n* else /1.18.2         | Miscellaneous plugins [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libelse.so\n* pathtools /1.18.2    | Cross-platform path handling and string opcodes [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libpathtools.so\n* klib /1.18.2         | A hashtable for csound [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libklib.so\n* beosc /1.18.2        | Band-enhanced oscillators implementing the sine+noise synthesis model [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libbeosc.so\n* jsfx /1.18.2         | jsfx support for csound [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libjsfx.so\n* poly /1.18.2         | Multiple (parallel or sequential) instances of an opcode [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libpoly.so\n* sndmeta /1.18.2      | opcodes using libsndfile [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/libsndmeta.so\n* risset /1.18.2       | Opcodes to access risset package metadata [manual]\n                       |    Path: /home/em/.local/lib/csound/6.0/plugins64/librisset.so\n- vst3 /0.3.0          | Host vst3 plugins in csound\n- chua /0.1.0          | Implementation of a Chua oscillator\n- hdf5 /0.1.0          | Read/Write signals and arrays to/from an hdf5 file\n- python /0.1.0        | Opcodes to interact with an embedded python interpreter\n\n```\n\n### Install some packages\n\n```bash\n\n$ risset install else jsfx\n\n```\n\n### Show information about a specific package\n\n```bash\n\n$ risset show poly\n\nPlugin        : poly\nAuthor        : Eduardo Moguillansky (eduardo.moguillansky@gmail.com)\nURL           : https://github.com/csound-plugins/csound-plugins.git\nVersion       : 1.18.2\n\nInstalled     : Unknown (path: /home/em/.local/lib/csound/6.0/plugins64/libpoly.so)\nManifest      : No manifest (installed manually)\nAbstract      : Multiple (parallel or sequential) instances of an opcode\nDescription:\n    Multiple (parallel or sequential) instances of an opcode\nOpcodes:\n    defer, poly, poly0, polyseq\nBinaries:\n    * linux/csound>=6.17<7.0\n    * linux/csound>=7.0\n    * macos/csound>=6.17<7.0\n    * macos/csound>=7.0\n    * macos-arm64/csound>=6.17<7.0\n    * macos-arm64/csound>=7.0\n    * windows/csound>=6.17<7.0\n    * windows/csound>=7.0\n    \n```\n\n### Remove a plugin\n\n```bash\n\n$ risset remove poly\n\n```\n\n### See manual page for an opcode (installed or not)\n\n```bash\n$ risset man poly\n\n```\n\n```markdown\n\n# mtro\n\n## Abstract\n\nan accurate version of metro\n\n\n## Description\n\n`mtro` is a drop-in replacement of `metro` without the\ndrifting over time. `metro` is implemented by adding a phase\neach cycle, which results in drifting over time due to rounding errors.\n`mtro` avoids this problem by keeping a counter and doing multiplication\nso that the error is limited.\n\nFollowing metro's implementation by default `mtro` is triggered at time=0. This\nis because `i_initphase` is set to 1 by default. It is possible to make `mtro` skip the\n0 trigger by setting `i_initphase` to 0.\n\n## Syntax\n\n\n    kout mtro kfreq, i_initphase=1\n\n\n## Arguments\n\n* **kfreq**: the frequency of the trigger\n* **i_initphase**: the initial phase (a value between 0 and 1). If set to 0, there is no trigger at time 0.\n        If set to 1, `mtro` triggers at time=0, similar to `metro`\n\n## Output\n\n* **kout**: 1 if the mtro has triggered, 0 otherwise\n\n## Execution Time\n\n* Performance\n\n```\n\n---------------\n\n\n# Risset commands\n\n### update\n\nUpdate the local index to the latest state.\n\n    $ risset update\n\n\n### list\n\nList all available plugins for your platform\n\n    $ risset list [options]\n\n##### Options\n\n* `--nameonly`: Output just the name of each plugin\n* `--installed`: List only installed plugins\n* `--upgradeable`: List only installed packages which can be upgraded\n* `--notinstalled`: List only plugins which are not installed\n* `-1, --oneline`: List each plugin in one line\n\n\n### show\n\nShow information about a plugin\n\n    $ risset show <plugin>\n\n\n### install\n\nInstall one or multiple plugins\n\n    $ risset install [--force] <plugin> [<plugin2>, ...]\n\nInstall a given plugin for the current platform. Plugins are installed into\nthe user folder (no administrator requirements are needed). Look at the `info`\ncommand to query information about the system.\n\n##### Options\n\n* `--force`: Installs a plugin even if the plugin with the same version is already installed\n\nthe system folder where all other builtin plugins are installed (this requires administrator rights in some platforms). Admin rights are needed for this.\n\n\n### remove\n\nRemove an installed plugin\n\n    $ risset remove <plugin>\n\n\n    #### documentation\n\nOpen man page as markdown in the command line\n\n\n    $ risset man [options] <opcode>\n\n\n##### Options\n\n* `-s, --simplepath`: Print just the path of the manual page\n* `-m, --markdown`: Use the .md page instead of the .html version\n* `-e, --external`: Open the man page in the default app. This is only used when opening the markdown man page.\n* `--html`: Opens the .html version of the manpage in the default browser (or outputs the path with the --path option)\n* `--theme {dark,light,gruvbox-dark,gruvbox-light,material,fruity,native}`: Style used when displaying markdown files (default=dark)\n\nOpen the html man page in the default browser:\n\n    $ risset man --html <opcode>\n\nGenerate/update documentation:\n\n    $ risset makedocs\n\nBuild the documentation for all defined plugins. This depends on **mkdocs** being installed\n\n\n### upgrade\n\n    $ risset upgrade\n\nUpgrade any installed plugin to the latest version\n\n\n### listopcodes\n\n    $ risset listopcodes\n\nList installed opcodes\n\n\n##### Options\n\n* `-l, --long`: Long format\n\n```\n$ risset listopcodes -l\n\naccum               else        Simple accumulator of scalar values\natstop              else        Schedule an instrument at the end of the current instrument\nbeadsynt            beosc       Band-Enhanced Oscillator-Bank\nbeosc               beosc       Band-Enhanced Oscillator\nbisect              else        Returns the fractional index of a value within a sorted ar\u2026ay / tab\nchuap               chua        Simulates Chua's oscillator\ncrackle             else        generates noise based on a chaotic equation\ndefer               poly        Run an opcode at the end of current event\nderef               else        Dereference a previously created reference to a variable\ndetectsilence       else        Detect when input falls below an amplitude threshold\ndict_del            klib        Remove a key:value pair from a hashtable\ndict_dump           klib        Dumps the contents of this dict as a string\ndict_exists         klib        Returns 1 if the dict exists, 0 otherwise\ndict_free           klib        Free a hashtable\n...\n\n```\n\n### download\n\n    $ risset download <plugin>\n\nDownload a plugin\n\n##### Options\n\n* `--path PATH`: Directory to download the plugin to (default: current directory)\n* `--platform`: The platform of the plugin to download (default: current platform). One of *linux*, *macos*, *window*, *macos-arm64*, *linux-arm64*\n\n\n### info\n\n    $ risset info [options]\n\nOutputs information about the environment as json in order to be integrated by other systems.\nFor example, **CsoundQT** uses this command to read the installed plugins and their opcodes\nand documentation\n\n##### Options\n\n* `--outfile OUTFILE`: Save output to this path\n* `--full`: Include all available information\n\n-------\n\n# Plugin Documentation\n\nDocumentation for all plugins can be found here: https://csound-plugins.github.io/risset-docs/\n\n-------\n\n# Upgrading risset\n\nIf installed via `pip`, do:\n\n    pip install risset -U\n\nIf installed via `git`, go to the repository and do:\n\n    git pull\n    python setup.py install\n\n\n-----\n\n# Contributing\n\nIn order to add/modify a plugin, clone [risset-data](https://github.com/csound-plugins/risset-data)\n\nAt the root of the repository there is an index file `rissetindex.json`, with the form:\n\n```json\n{\n    \"version\": \"1.0.0\",\n    \"plugins\": {\n        \"else\": {\n            \"url\": \"https://github.com/csound-plugins/csound-plugins.git\",\n            \"path\": \"src/else\"\n        },\n        \"pathtools\": {\n            \"url\": \"https://github.com/csound-plugins/csound-plugins.git\",\n            \"path\": \"src/pathtools\"\n        },\n        \"klib\": {\n            \"url\": \"https://github.com/csound-plugins/csound-plugins.git\",\n            \"path\": \"src/klib\"\n        },\n        \"beosc\": {\n            \"url\": \"https://github.com/csound-plugins/csound-plugins.git\",\n            \"path\": \"src/beosc\"\n        },\n        \"vst3\": {\n            \"url\": \"https://github.com/csound-plugins/vst3-risset.git\"\n        }\n    }\n}\n```\n\nTo add a plugin to the index, just extend the *plugins* dict. The url should point to a valid git repository,\nthe path attribute can be used to indicate where risset.json manifest is within this repository. This allows to \ndefine multiple plugins within one repository.\n\n## Manifest\n\nEach plugin has an accompanying manifest in the .json format. The name of this file\nis always `risset.json`\nSee one of the examples in https://github.com/csound-plugins/csound-plugins/tree/master/src for\nmore information about the manifest\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A package manager for csound",
    "version": "2.9.2",
    "project_urls": {
        "Homepage": "https://github.com/csound-plugins/risset"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fb8ddca4fad9881f01028c5458d8c8e85e1253612a2fb8dcf77318b7063b5652",
                "md5": "4e72f71b8d49971206aece98ede2a4ca",
                "sha256": "fd2c428d1d414c57d331fdd06431995fe922c0b786569caff6ad10bbf584cf35"
            },
            "downloads": -1,
            "filename": "risset-2.9.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4e72f71b8d49971206aece98ede2a4ca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 36389,
            "upload_time": "2024-05-09T23:40:33",
            "upload_time_iso_8601": "2024-05-09T23:40:33.386560Z",
            "url": "https://files.pythonhosted.org/packages/fb/8d/dca4fad9881f01028c5458d8c8e85e1253612a2fb8dcf77318b7063b5652/risset-2.9.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a7d71e3ac0a148ed66e3459b6a7f4f101752d43cacd61fd08b453f99a1d89f9",
                "md5": "7a22ca9518a21af48e9e9764805ef8dd",
                "sha256": "76a2d0aca5e71ee459fbf060202aeaaed1cf9d293b37ee17a81f624c2e204c59"
            },
            "downloads": -1,
            "filename": "risset-2.9.2.tar.gz",
            "has_sig": false,
            "md5_digest": "7a22ca9518a21af48e9e9764805ef8dd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 36335,
            "upload_time": "2024-05-09T23:40:36",
            "upload_time_iso_8601": "2024-05-09T23:40:36.303518Z",
            "url": "https://files.pythonhosted.org/packages/6a/7d/71e3ac0a148ed66e3459b6a7f4f101752d43cacd61fd08b453f99a1d89f9/risset-2.9.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-09 23:40:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "csound-plugins",
    "github_project": "risset",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "risset"
}
        
Elapsed time: 0.65471s