Csound Csound-dev Csound-tekno Search About

[Csnd] risset - a package manager for csound

Date2020-05-09 02:36
FromEduardo Moguillansky
Subject[Csnd] risset - a package manager for csound

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs


Date2020-05-09 08:07
Fromjoachim heintz
SubjectRe: [Csnd] risset - a package manager for csound
wow --- that's big!
i tried it and it works all flawlessly.
i wonder how we can include the documentation (manual pages) of the 
installed plugins in a simple way.
cheers -
	joachim



On 09/05/2020 03:36, Eduardo Moguillansky wrote:
> Hi,
> 
> here is a first attempt at a package manager for csound. I call it 
> "risset".
> 
> https://github.com/csound-plugins/risset
> 
> 
>     Installation
> 
> 1) Install git and python3, if needed
> 
> 2) At a terminal:
> 
>      pip3 install risset
> 
> 
>     Quick Start
> 
> # list all available plugins for your platform
> $ risset list
> 
> * else  @ 0.2.0        | Miscellaneous plugins
> * poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series
> * klib  @ 0.2.0        | hashtable / pool / string cache plugins
> * jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
> * mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh
> * rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc
> 
> 
> # show information about a given plugin
> $ risset show mverb
> 
> Plugin     : mverb
> Installed  : 1.3.7
> Author     : Michael Gogins
> Abstract   : Artificial reverb based on a 2D waveguide mesh
> Description:
>      Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
>      flexible and can generate ompelling and unique timbres ranging from
>      traditional spaces to infinite morphing spaces or the simulation of
>      metallic plates or cymbals. The plugin incorporates a 10-band parametric
>      equalizer for timbral control and delay randomization to create more
>      unusual effects.
> Platforms:
>      * linux: Ubuntu 18.04
> Opcodes:
>      MVerb
> Minimal csound version : 6.14
> 
> # Install a plugin
> $ risset install mverb
> 
> 
> 
>     Documentation
> 
> Documentation to all available opcodes is autogenerated and lives at:
> 
> https://github.com/csound-plugins/risset-data/tree/master/docs
> 
> Csound mailing list Csound@listserv.heanet.ie 
>  
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to 
> https://github.com/csound/csound/issues Discussions of bugs and features 
> can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-09 15:02
FromAnders Genell
SubjectRe: [Csnd] risset - a package manager for csound
Absolutely fantastic!!
Great job, Eduardo!

Regards,
Anders

On Sat, May 9, 2020 at 9:07 AM joachim heintz <jh@joachimheintz.de> wrote:
wow --- that's big!
i tried it and it works all flawlessly.
i wonder how we can include the documentation (manual pages) of the
installed plugins in a simple way.
cheers -
        joachim



On 09/05/2020 03:36, Eduardo Moguillansky wrote:
> Hi,
>
> here is a first attempt at a package manager for csound. I call it
> "risset".
>
> https://github.com/csound-plugins/risset
>
>
>     Installation
>
> 1) Install git and python3, if needed
>
> 2) At a terminal:
>
>      pip3 install risset
>
>
>     Quick Start
>
> # list all available plugins for your platform
> $ risset list
>
> * else  @ 0.2.0        | Miscellaneous plugins
> * poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series
> * klib  @ 0.2.0        | hashtable / pool / string cache plugins
> * jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
> * mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh
> * rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc
>
>
> # show information about a given plugin
> $ risset show mverb
>
> Plugin     : mverb
> Installed  : 1.3.7
> Author     : Michael Gogins
> Abstract   : Artificial reverb based on a 2D waveguide mesh
> Description:
>      Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
>      flexible and can generate ompelling and unique timbres ranging from
>      traditional spaces to infinite morphing spaces or the simulation of
>      metallic plates or cymbals. The plugin incorporates a 10-band parametric
>      equalizer for timbral control and delay randomization to create more
>      unusual effects.
> Platforms:
>      * linux: Ubuntu 18.04
> Opcodes:
>      MVerb
> Minimal csound version : 6.14
>
> # Install a plugin
> $ risset install mverb
>
>
>
>     Documentation
>
> Documentation to all available opcodes is autogenerated and lives at:
>
> https://github.com/csound-plugins/risset-data/tree/master/docs
>
> Csound mailing list Csound@listserv.heanet.ie
> <mailto:Csound@listserv.heanet.ie>
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
> https://github.com/csound/csound/issues Discussions of bugs and features
> can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-09 17:50
FromGuillermo Senna
SubjectRe: [Csnd] risset - a package manager for csound
+1! If a GUI is built on top of this I think we can end with something
like Supercollider users have with their Quarks system. Also, if we can
use this as a package manager for installing/updating plugins and UDOs,
then creating an online installer for Csound and its frontends (using
the QtIFW framework) becomes a much simpler task. And how about using
that same installer for distributing a frozen version of risset along
with the portable version of git for our Windows users?

Cheers.

On 9/5/20 11:02, Anders Genell wrote:
> Absolutely fantastic!!
> Great job, Eduardo!
>
> Regards,
> Anders
>
> On Sat, May 9, 2020 at 9:07 AM joachim heintz  wrote:
>
>> wow --- that's big!
>> i tried it and it works all flawlessly.
>> i wonder how we can include the documentation (manual pages) of the
>> installed plugins in a simple way.
>> cheers -
>>         joachim
>>
>>
>>
>> On 09/05/2020 03:36, Eduardo Moguillansky wrote:
>>> Hi,
>>>
>>> here is a first attempt at a package manager for csound. I call it
>>> "risset".
>>>
>>> https://github.com/csound-plugins/risset
>>>
>>>
>>>     Installation
>>>
>>> 1) Install git and python3, if needed
>>>
>>> 2) At a terminal:
>>>
>>>      pip3 install risset
>>>
>>>
>>>     Quick Start
>>>
>>> # list all available plugins for your platform
>>> $ risset list
>>>
>>> * else  @ 0.2.0        | Miscellaneous plugins
>>> * poly  @ 0.2.0        | Run multiple copies of an opcode in
>> parallel/series
>>> * klib  @ 0.2.0        | hashtable / pool / string cache plugins
>>> * jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
>>> * mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh
>>> * rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc
>>>
>>>
>>> # show information about a given plugin
>>> $ risset show mverb
>>>
>>> Plugin     : mverb
>>> Installed  : 1.3.7
>>> Author     : Michael Gogins
>>> Abstract   : Artificial reverb based on a 2D waveguide mesh
>>> Description:
>>>      Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is
>> highly
>>>      flexible and can generate ompelling and unique timbres ranging from
>>>      traditional spaces to infinite morphing spaces or the simulation of
>>>      metallic plates or cymbals. The plugin incorporates a 10-band
>> parametric
>>>      equalizer for timbral control and delay randomization to create more
>>>      unusual effects.
>>> Platforms:
>>>      * linux: Ubuntu 18.04
>>> Opcodes:
>>>      MVerb
>>> Minimal csound version : 6.14
>>>
>>> # Install a plugin
>>> $ risset install mverb
>>>
>>>
>>>
>>>     Documentation
>>>
>>> Documentation to all available opcodes is autogenerated and lives at:
>>>
>>> https://github.com/csound-plugins/risset-data/tree/master/docs
>>>
>>> Csound mailing list Csound@listserv.heanet.ie
>>> 
>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>> https://github.com/csound/csound/issues Discussions of bugs and
>> features
>>> can be posted here
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>         https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
>

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-09 18:09
FromMichael Gogins
SubjectRe: [Csnd] risset - a package manager for csound
There is an entry in the manifest for doc pages, which can be Markdown files.

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Sat, May 9, 2020 at 3:07 AM joachim heintz <jh@joachimheintz.de> wrote:
wow --- that's big!
i tried it and it works all flawlessly.
i wonder how we can include the documentation (manual pages) of the
installed plugins in a simple way.
cheers -
        joachim



On 09/05/2020 03:36, Eduardo Moguillansky wrote:
> Hi,
>
> here is a first attempt at a package manager for csound. I call it
> "risset".
>
> https://github.com/csound-plugins/risset
>
>
>     Installation
>
> 1) Install git and python3, if needed
>
> 2) At a terminal:
>
>      pip3 install risset
>
>
>     Quick Start
>
> # list all available plugins for your platform
> $ risset list
>
> * else  @ 0.2.0        | Miscellaneous plugins
> * poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series
> * klib  @ 0.2.0        | hashtable / pool / string cache plugins
> * jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
> * mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh
> * rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc
>
>
> # show information about a given plugin
> $ risset show mverb
>
> Plugin     : mverb
> Installed  : 1.3.7
> Author     : Michael Gogins
> Abstract   : Artificial reverb based on a 2D waveguide mesh
> Description:
>      Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
>      flexible and can generate ompelling and unique timbres ranging from
>      traditional spaces to infinite morphing spaces or the simulation of
>      metallic plates or cymbals. The plugin incorporates a 10-band parametric
>      equalizer for timbral control and delay randomization to create more
>      unusual effects.
> Platforms:
>      * linux: Ubuntu 18.04
> Opcodes:
>      MVerb
> Minimal csound version : 6.14
>
> # Install a plugin
> $ risset install mverb
>
>
>
>     Documentation
>
> Documentation to all available opcodes is autogenerated and lives at:
>
> https://github.com/csound-plugins/risset-data/tree/master/docs
>
> Csound mailing list Csound@listserv.heanet.ie
> <mailto:Csound@listserv.heanet.ie>
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
> https://github.com/csound/csound/issues Discussions of bugs and features
> can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-09 21:42
FromSteven Yi
SubjectRe: [Csnd] risset - a package manager for csound
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)
* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.
* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.


On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-09 22:32
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-09 22:35
FromMichael Gogins
SubjectRe: [Csnd] risset - a package manager for csound
Can't users do a pull request to add their own repositories?

I will be adding some opcodes soon.

I also suggest other categories in addition to plugin opcodes:

(1) Csound orchestra "include" files.
(2) Samples (.sf2, wav, etc.).

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Sat, May 9, 2020 at 4:42 PM Steven Yi <stevenyi@gmail.com> wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)
* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.
* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.


On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-09 23:07
FromSteven Yi
SubjectRe: [Csnd] risset - a package manager for csound
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 00:57
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 01:26
FromPete Goodeve
SubjectRe: [Csnd] risset - a package manager for csound
AttachmentsNone  

Date2020-05-10 02:14
FromMichael Gogins
SubjectRe: [Csnd] risset - a package manager for csound
I have used both git submodules and pull requests for some time now. I strongly advise the use of pull requests. Submodules are more fragile and harder to maintain. Once a pull request is merged the stuff is in the repo for good and can't get lost.

Merging a PR of new stuff is cake, merging an update should also be cake because normally only one person is working on that subdirectory.

The design of risset is nice and simple and easy to understand. The only thing I'd like to see for now is different categories of content such as #include files and samples. Later perhaps source and continuous integration could be added, but I don't think they are necessary really.

Regards,
Mike

On Sat, May 9, 2020, 19:59 Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 02:31
FromGuillermo Senna
SubjectRe: [Csnd] risset - a package manager for csound
I'd still prefer if we had something like Supercollider, where I think
there's an official repo that contains a file (this one?
https://github.com/supercollider-quarks/quarks/blob/master/directory.txt)
that points to the other git repos. Would something like that be too
difficult to implement?

On 9/5/20 22:14, Michael Gogins wrote:
> I have used both git submodules and pull requests for some time now. I
> strongly advise the use of pull requests. Submodules are more fragile and
> harder to maintain. Once a pull request is merged the stuff is in the repo
> for good and can't get lost.
>
> Merging a PR of new stuff is cake, merging an update should also be cake
> because normally only one person is working on that subdirectory.
>
> The design of risset is nice and simple and easy to understand. The only
> thing I'd like to see for now is different categories of content such as
> #include files and samples. Later perhaps source and continuous integration
> could be added, but I don't think they are necessary really.
>
> Regards,
> Mike
>
> On Sat, May 9, 2020, 19:59 Eduardo Moguillansky <
> eduardo.moguillansky@gmail.com> wrote:
>
>> maybe git submodules would be a solution for that. Instead of adding your
>> plugin directly to the repo you can add your repo as submodule. Or just ask
>> for commit rights.
>>
>>
>> On 10.05.20 00:07, Steven Yi wrote:
>>
>> Publishing a PR is the bottleneck mentioned. I am imagining a scenario of
>> testing plugins with non-dev users before they're final and not wanting to
>> have to do PR's to iterate (nor feeling the pressure to have a dev version
>> in git history).
>>
>> On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <
>> eduardo.moguillansky@gmail.com> wrote:
>>
>>> On 09.05.20 22:42, Steven Yi wrote:
>>>
>>> This is great to see, thanks!  I tested here on MacOS and it worked
>>> well.
>>>
>>> Some thoughts:
>>>
>>> * I didn't see if there was support for ARM or ARM64 CPU type on Linux.
>>> Any thoughts on that?  (Thinking Raspberry Pi here)
>>>
>>> These could be added, of course. I don't have the hardware to test that
>>> though so contributions are welcome.
>>>
>>> * It would be liberating for users to be able to add their own
>>> repositories.  (Similar to apt sources.list)  I think it would remove a
>>> bottleneck for publishing new plugins.
>>>
>>> Publishing a plugin is just a PR appart. You need to fork the risset-data
>>> repository, add your plugin to the plugins.json and add the binaries for
>>> each of your supported platform. Then do a PR or ask to be given rights to
>>> the repository.
>>>
>>> Keeping everything in one repository makes the design simpler. For
>>> example, documentation can be built much easier this way.
>>>
>>> * It would be nice to have this work with both CS6 and CS7 and future
>>> versions. I think that would have some ramifications on the plugin
>>> declaration among other things.
>>>
>>> This can be adapted once CS7 is a thing. At the moment the amount of
>>> external plugins is so small that such complexity / flexibility is not yet
>>> needed.
>>>
>>>
>>> I haven't had much time to respond to other emails but I think the
>>> proposal for local OPCODE dir is also a very good idea.
>>>
>>> This would make things much tidier in fact.
>>>
>>>
>>> On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <
>>> eduardo.moguillansky@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> here is a first attempt at a package manager for csound. I call it
>>>> "risset".
>>>>
>>>> https://github.com/csound-plugins/risset
>>>> Installation
>>>>
>>>> 1) Install git and python3, if needed
>>>>
>>>> 2) At a terminal:
>>>>
>>>>     pip3 install risset
>>>>
>>>>
>>>> Quick Start
>>>>
>>>> # list all available plugins for your platform
>>>> $ risset list
>>>>
>>>> * else  @ 0.2.0        | Miscellaneous plugins
>>>> * poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series
>>>> * klib  @ 0.2.0        | hashtable / pool / string cache plugins
>>>> * jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
>>>> * mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh
>>>> * rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc
>>>>
>>>>
>>>> # show information about a given plugin
>>>> $ risset show mverb
>>>>
>>>> Plugin     : mverb
>>>> Installed  : 1.3.7
>>>> Author     : Michael Gogins
>>>> Abstract   : Artificial reverb based on a 2D waveguide mesh
>>>> Description:
>>>>     Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
>>>>     flexible and can generate ompelling and unique timbres ranging from
>>>>     traditional spaces to infinite morphing spaces or the simulation of
>>>>     metallic plates or cymbals. The plugin incorporates a 10-band parametric
>>>>     equalizer for timbral control and delay randomization to create more
>>>>     unusual effects.
>>>> Platforms:
>>>>     * linux: Ubuntu 18.04
>>>> Opcodes:
>>>>     MVerb
>>>> Minimal csound version : 6.14
>>>>
>>>> # Install a plugin
>>>> $ risset install mverb
>>>>
>>>>
>>>> Documentation
>>>>
>>>> Documentation to all available opcodes is autogenerated and lives at:
>>>>
>>>> https://github.com/csound-plugins/risset-data/tree/master/docs
>>>> Csound mailing list Csound@listserv.heanet.ie
>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>>> https://github.com/csound/csound/issues Discussions of bugs and
>>>> features can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie
>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>> https://github.com/csound/csound/issues Discussions of bugs and features
>>> can be posted here
>>>
>>> Csound mailing list Csound@listserv.heanet.ie
>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>> https://github.com/csound/csound/issues Discussions of bugs and features
>>> can be posted here
>> Csound mailing list Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>> https://github.com/csound/csound/issues Discussions of bugs and features
>> can be posted here
>>
>> Csound mailing list Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>> https://github.com/csound/csound/issues Discussions of bugs and features
>> can be posted here
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>         https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
>

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-10 06:13
FromSteven Yi
SubjectRe: [Csnd] risset - a package manager for csound
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 09:00
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 09:07
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
PS:  the advice that risset gave about the specific line to add to the .bash_profile has a spelling mistake in it (a typo) which means it would never point to the correct path:

it told me to put things in a directory called /Libary.    
- it probably should read - /Library. 
- i did correct it - and thought that would do the trick an hour ago... but no...

it recommended:

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Libary/Application Support/csound6/plugins64"
_____________________________________________
Dr. Richard Boulanger

On Sun, May 10, 2020 at 4:00 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 11:12
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound
On 10.05.20 03:31, Guillermo Senna wrote:
> I'd still prefer if we had something like Supercollider, where I think
> there's an official repo that contains a file (this one?
> https://github.com/supercollider-quarks/quarks/blob/master/directory.txt)
> that points to the other git repos. Would something like that be too
> difficult to implement?

The idea of using multiple repos instead of one can actually be reduced 
to a write contention mechanism. You are allowed to write to your repo 
but it is guaranteed that you can't modify anyone else's. Assuming that 
we are all consenting adults I think that the simpler solution of having 
a namespace per developer inside the tree and giving commit rights to 
anyone who asks for it seems a much better solution. But if there is a 
miracle and hundreds of developers get interested in csound and want to 
contribute with plugins and udo libraries then it might be needed to 
rethink this strategy.


> On 9/5/20 22:14, Michael Gogins wrote:
>> I have used both git submodules and pull requests for some time now. I
>> strongly advise the use of pull requests. Submodules are more fragile and
>> harder to maintain. Once a pull request is merged the stuff is in the repo
>> for good and can't get lost.
>>
>> Merging a PR of new stuff is cake, merging an update should also be cake
>> because normally only one person is working on that subdirectory.
>>
>> The design of risset is nice and simple and easy to understand. The only
>> thing I'd like to see for now is different categories of content such as
>> #include files and samples. Later perhaps source and continuous integration
>> could be added, but I don't think they are necessary really.
>>
>> Regards,
>> Mike
>>
>> On Sat, May 9, 2020, 19:59 Eduardo Moguillansky <
>> eduardo.moguillansky@gmail.com> wrote:
>>
>>> maybe git submodules would be a solution for that. Instead of adding your
>>> plugin directly to the repo you can add your repo as submodule. Or just ask
>>> for commit rights.
>>>
>>>
>>> On 10.05.20 00:07, Steven Yi wrote:
>>>
>>> Publishing a PR is the bottleneck mentioned. I am imagining a scenario of
>>> testing plugins with non-dev users before they're final and not wanting to
>>> have to do PR's to iterate (nor feeling the pressure to have a dev version
>>> in git history).
>>>
>>> On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <
>>> eduardo.moguillansky@gmail.com> wrote:
>>>
>>>> On 09.05.20 22:42, Steven Yi wrote:
>>>>
>>>> This is great to see, thanks!  I tested here on MacOS and it worked
>>>> well.
>>>>
>>>> Some thoughts:
>>>>
>>>> * I didn't see if there was support for ARM or ARM64 CPU type on Linux.
>>>> Any thoughts on that?  (Thinking Raspberry Pi here)
>>>>
>>>> These could be added, of course. I don't have the hardware to test that
>>>> though so contributions are welcome.
>>>>
>>>> * It would be liberating for users to be able to add their own
>>>> repositories.  (Similar to apt sources.list)  I think it would remove a
>>>> bottleneck for publishing new plugins.
>>>>
>>>> Publishing a plugin is just a PR appart. You need to fork the risset-data
>>>> repository, add your plugin to the plugins.json and add the binaries for
>>>> each of your supported platform. Then do a PR or ask to be given rights to
>>>> the repository.
>>>>
>>>> Keeping everything in one repository makes the design simpler. For
>>>> example, documentation can be built much easier this way.
>>>>
>>>> * It would be nice to have this work with both CS6 and CS7 and future
>>>> versions. I think that would have some ramifications on the plugin
>>>> declaration among other things.
>>>>
>>>> This can be adapted once CS7 is a thing. At the moment the amount of
>>>> external plugins is so small that such complexity / flexibility is not yet
>>>> needed.
>>>>
>>>>
>>>> I haven't had much time to respond to other emails but I think the
>>>> proposal for local OPCODE dir is also a very good idea.
>>>>
>>>> This would make things much tidier in fact.
>>>>
>>>>
>>>> On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <
>>>> eduardo.moguillansky@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> here is a first attempt at a package manager for csound. I call it
>>>>> "risset".
>>>>>
>>>>> https://github.com/csound-plugins/risset
>>>>> Installation
>>>>>
>>>>> 1) Install git and python3, if needed
>>>>>
>>>>> 2) At a terminal:
>>>>>
>>>>>      pip3 install risset
>>>>>
>>>>>
>>>>> Quick Start
>>>>>
>>>>> # list all available plugins for your platform
>>>>> $ risset list
>>>>>
>>>>> * else  @ 0.2.0        | Miscellaneous plugins
>>>>> * poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series
>>>>> * klib  @ 0.2.0        | hashtable / pool / string cache plugins
>>>>> * jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
>>>>> * mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh
>>>>> * rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc
>>>>>
>>>>>
>>>>> # show information about a given plugin
>>>>> $ risset show mverb
>>>>>
>>>>> Plugin     : mverb
>>>>> Installed  : 1.3.7
>>>>> Author     : Michael Gogins
>>>>> Abstract   : Artificial reverb based on a 2D waveguide mesh
>>>>> Description:
>>>>>      Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
>>>>>      flexible and can generate ompelling and unique timbres ranging from
>>>>>      traditional spaces to infinite morphing spaces or the simulation of
>>>>>      metallic plates or cymbals. The plugin incorporates a 10-band parametric
>>>>>      equalizer for timbral control and delay randomization to create more
>>>>>      unusual effects.
>>>>> Platforms:
>>>>>      * linux: Ubuntu 18.04
>>>>> Opcodes:
>>>>>      MVerb
>>>>> Minimal csound version : 6.14
>>>>>
>>>>> # Install a plugin
>>>>> $ risset install mverb
>>>>>
>>>>>
>>>>> Documentation
>>>>>
>>>>> Documentation to all available opcodes is autogenerated and lives at:
>>>>>
>>>>> https://github.com/csound-plugins/risset-data/tree/master/docs
>>>>> Csound mailing list Csound@listserv.heanet.ie
>>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>>>> https://github.com/csound/csound/issues Discussions of bugs and
>>>>> features can be posted here
>>>> Csound mailing list Csound@listserv.heanet.ie
>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>>> https://github.com/csound/csound/issues Discussions of bugs and features
>>>> can be posted here
>>>>
>>>> Csound mailing list Csound@listserv.heanet.ie
>>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>>> https://github.com/csound/csound/issues Discussions of bugs and features
>>>> can be posted here
>>> Csound mailing list Csound@listserv.heanet.ie
>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>> https://github.com/csound/csound/issues Discussions of bugs and features
>>> can be posted here
>>>
>>> Csound mailing list Csound@listserv.heanet.ie
>>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to
>>> https://github.com/csound/csound/issues Discussions of bugs and features
>>> can be posted here
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>          https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>          https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-10 14:09
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound


On 10.05.20 10:00, Dr. Richard Boulanger wrote:

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list. 

Be aware that not all plugins are available to all platforms. A plugin developer can upload binaries for one or many platforms, and only on those platforms supported will the plugin be listed via "risset list". To know which platforms are supported you can show all information via "risset show mverb"

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    MVerb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate compelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms:
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

This tells you that mverb is only available for linux at the moment

- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"

I decided to remove the "--user" flag until csound itself provides a better way to install external plugins. csound should have a folder which can be accessed without admin rights and which is searched by default.

Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'


This is fixed now. Update risset via

pip3 install --upgrade risset


Thanks for testing!








_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________
______________________________________________
email: rboulanger@berklee.edu
facebook: https://www.facebook.com/richard.boulanger.58



On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 15:00
FromSteven Yi
SubjectRe: [Csnd] risset - a package manager for csound
I don't recall ever writing a csound tutorial with tkinter, so I'm not sure what this is referring to.

Regarding building on macOS, I'm not sure how that relates to risset, but the instructions for building on macOS certainly need to be updated. I wrote the instructions in BUILD.md years ago. I stopped using macOS for a few years and resumed using it last fall. 

Since that time, someone else has submitted the Csound formula to the main homebrew package repository:


I've now removed my old homebrew tap from github. I'm going to do a quick pass through the BUILD.md right now to remove references to that tap. I'm not sure if Victor is still using the dependencies/* scripts written a while ago but that's an alternative to using Homebrew-installed dependencies.  Perhaps we need another email thread here about building macOS.




On Sun, May 10, 2020 at 4:01 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 16:02
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
Steven, your tkinter code (I think) was adapted by Francois from your API collection into his excellent and comprehensive suite of ctcsound tutorials. He advises using Anaconda and Jupiter notebooks (like Joaquin did at the last ICSC) and once everything is all set and working (after about two hours of setup) it's a pretty great system.

To get risset to work I spent the next day uninstalling all of it... that took a few hours as well.

Thanks...

Brew install Csound seems to work and one can say Brew uninstall Csound too... 

But then... for some reason even after uninstalling there seems to be a Csound6.13 hanging around!

Installing with the .dmg seems to install simultaneously with a brew install and some let you use the python opcodes and some do not (I guess it's path issues and that there are many Csound bits and pieces everywhere.

Dr. Richard Boulanger
Professor
Electronic Production and Design
Berklee College of Music

On May 10, 2020, at 10:00 AM, Steven Yi <stevenyi@gmail.com> wrote:


I don't recall ever writing a csound tutorial with tkinter, so I'm not sure what this is referring to.

Regarding building on macOS, I'm not sure how that relates to risset, but the instructions for building on macOS certainly need to be updated. I wrote the instructions in BUILD.md years ago. I stopped using macOS for a few years and resumed using it last fall. 

Since that time, someone else has submitted the Csound formula to the main homebrew package repository:


I've now removed my old homebrew tap from github. I'm going to do a quick pass through the BUILD.md right now to remove references to that tap. I'm not sure if Victor is still using the dependencies/* scripts written a while ago but that's an alternative to using Homebrew-installed dependencies.  Perhaps we need another email thread here about building macOS.




On Sun, May 10, 2020 at 4:01 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 16:24
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
Steven,

the example is in Francois Pinot's ctcsound cookbook - example 8. The last two in that subset are "serious"
- anyone else have a problem with these - screen goes dark

Ctcsound API Examples

These examples are based on Steven Yi's Python "How to use the Csound API" files on https://github.com/csound/csoundAPI_examples

All of the examples assume having the ctcsound module imported which is the module containing the Python interface to the Csound API. This must be executed before the examples are run.

This adaptation of Steven's examples as a notebook using ctcsound has been written by Mitch Kaufman.


The previous examples all work GREAT... but then....


Example 11 - Graphical User Interfaces

This example demonstrates a minimal Graphical User Interface application. The setup of Csound and starting of the CsoundPerformanceThread is done in the global scripting space. Afterwards, a Tkinter GUI is created that has one button. The button's callback (the command action) routes to a function that just sends an event to Csound.

For this example, since there is no need to synchronize continous channel data changes with Csound, it is more efficient to use the CsoundPerformanceThread, as it is a native thread. We use the CsoundPerformanceThread's inputMessage() function to ensure that the message is processed in a thread-safe manner.

In [15]:
from tkinter import *
from random import randint, random

###############################
# Our Orchestra for our project

orc = """
sr=44100
ksmps=32
nchnls=2
0dbfs=1

instr 1 
kenv linsegr 0, .05, 1, .05, .9, .8, 0
aout vco2 p4 * kenv, p5
aout moogladder aout, 2000, p6
outs aout, aout
endin"""

#c = ctcsound.Csound()    # create an instance of Csound
c.setOption("-odac")  # Set option for Csound
c.setOption("-m7")  # Set option for Csound
c.compileOrc(orc)     # Compile Orchestra from String

c.start()             # When compiling from strings, this call is necessary before doing any performing

perfThread = ctcsound.CsoundPerformanceThread(c.csound())
perfThread.play()

class Application(Frame):

    def __init__(self,master=None):
        master.title("Csound API GUI Example")
        self.items = []
        self.notes = []
        Frame.__init__(self,master)
        self.pack()
        self.createUI()
        self.master.protocol("WM_DELETE_WINDOW", self.quit)

    def createUI(self):
        self.size = 600
        self.canvas = Canvas(self,height=self.size,width=self.size,bg="darkgray")
        self.canvas.pack()
        # create button and setup the playNote() callback
        self.button = Button(self.canvas, text='Play Note', command=self.playNote)    
        self.button.pack()

    def playNote(self):
        perfThread.inputMessage("i1 0 2 .5 400 .25")

    def quit(self):
        self.master.destroy()
        perfThread.stop()
        perfThread.join()


app = Application(Tk())
app.mainloop()
c.reset()

Example 12 - Graphical User Interfaces

This example demonstrates a slightly more advanced GUI example. It uses a slider to allow setting the value of the frequency that the notes initiated by the button will play at.

Note: the actual use of update() here is not thread-safe. In real-world usage, we would need to drive Csound from a loop calling PerformKsmps to ensure thread-safety. For this example, the updating generally works as there are few things demanding computation.

In [16]:
from tkinter import *
from random import randint, random

###############################

# Our Orchestra for our project
orc = """
sr=44100
ksmps=32
nchnls=2
0dbfs=1

gkpch chnexport "freq", 1

instr 1 
kpch port gkpch, 0.01, i(gkpch)
printk .5, gkpch
kenv linsegr 0, .05, 1, .05, .9, .8, 0
aout vco2 p4 * kenv, kpch
aout moogladder aout, 2000, .25 
outs aout, aout
endin"""

#c = ctcsound.Csound()    # create an instance of Csound
c.setOption("-odac")  # Set option for Csound
c.setOption("-m7")  # Set option for Csound
c.compileOrc(orc)     # Compile Orchestra from String

c.start()             # When compiling from strings, this call is necessary before doing any performing

perfThread = ctcsound.CsoundPerformanceThread(c.csound())
perfThread.play()


def createChannel(channelName):
    chn, _ = c.channelPtr(channelName,
    ctcsound.CSOUND_CONTROL_CHANNEL | ctcsound.CSOUND_INPUT_CHANNEL)
    return chn

class SliderWrapper(object):
    def __init__(self, csound, channelName, slider):
        self.slider = slider
        self.channel = createChannel(channelName)

    def update(self):
        self.channel[0] = self.slider.get()

class Application(Frame):

    def __init__(self,master=None):
        master.title("Csound API GUI Example")
        self.items = []
        self.notes = []
        Frame.__init__(self,master)
        self.pack()
        self.createUI()
        self.master.protocol("WM_DELETE_WINDOW", self.quit)

    def createUI(self):
        self.size = 600
        self.canvas = Canvas(self,height=self.size,width=self.size)
        self.canvas.pack()
        self.button = Button(self.canvas, text='Play Note', command=self.playNote)    
        self.button.pack()
        self.freqSlider = Scale(self.canvas,from_=80.0, to=600.0,command=self.setFreq,label="Freq")
        self.freqSlider.pack()
        self.freqUpdater = SliderWrapper(c, "freq", self.freqSlider)

    def playNote(self):
        perfThread.inputMessage("i1 0 2 .3")

    def setFreq(self, val):
        print(val)
        self.freqUpdater.update()

    def quit(self):
        self.master.destroy()
        perfThread.stop()
        perfThread.join()


app = Application(Tk())
app.mainloop()
c.stop
del c

_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 11:02 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Steven, your tkinter code (I think) was adapted by Francois from your API collection into his excellent and comprehensive suite of ctcsound tutorials. He advises using Anaconda and Jupiter notebooks (like Joaquin did at the last ICSC) and once everything is all set and working (after about two hours of setup) it's a pretty great system.

To get risset to work I spent the next day uninstalling all of it... that took a few hours as well.

Thanks...

Brew install Csound seems to work and one can say Brew uninstall Csound too... 

But then... for some reason even after uninstalling there seems to be a Csound6.13 hanging around!

Installing with the .dmg seems to install simultaneously with a brew install and some let you use the python opcodes and some do not (I guess it's path issues and that there are many Csound bits and pieces everywhere.

Dr. Richard Boulanger
Professor
Electronic Production and Design
Berklee College of Music

On May 10, 2020, at 10:00 AM, Steven Yi <stevenyi@gmail.com> wrote:


I don't recall ever writing a csound tutorial with tkinter, so I'm not sure what this is referring to.

Regarding building on macOS, I'm not sure how that relates to risset, but the instructions for building on macOS certainly need to be updated. I wrote the instructions in BUILD.md years ago. I stopped using macOS for a few years and resumed using it last fall. 

Since that time, someone else has submitted the Csound formula to the main homebrew package repository:


I've now removed my old homebrew tap from github. I'm going to do a quick pass through the BUILD.md right now to remove references to that tap. I'm not sure if Victor is still using the dependencies/* scripts written a while ago but that's an alternative to using Homebrew-installed dependencies.  Perhaps we need another email thread here about building macOS.




On Sun, May 10, 2020 at 4:01 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 16:59
FromMichael Gogins
SubjectRe: [Csnd] risset - a package manager for csound
These two examples work fine for me on Ubuntu Linux 18.04, running without a notebook, i.e. as standalone Python scripts.

I had to make the following changes:

-- Install the "python-tk" system package.
-- Change "from tkinter import *" to "from Tkinter import *".
-- Add "import ctcsound".
-- Uncomment this line: "#c = ctcsound.Csound()    # create an instance of Csound"
-- Change "-odac" to "-odac:plughw:1,0" in order to use ALSA.

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Sun, May 10, 2020 at 11:24 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Steven,

the example is in Francois Pinot's ctcsound cookbook - example 8. The last two in that subset are "serious"
- anyone else have a problem with these - screen goes dark

Ctcsound API Examples

These examples are based on Steven Yi's Python "How to use the Csound API" files on https://github.com/csound/csoundAPI_examples

All of the examples assume having the ctcsound module imported which is the module containing the Python interface to the Csound API. This must be executed before the examples are run.

This adaptation of Steven's examples as a notebook using ctcsound has been written by Mitch Kaufman.


The previous examples all work GREAT... but then....


Example 11 - Graphical User Interfaces

This example demonstrates a minimal Graphical User Interface application. The setup of Csound and starting of the CsoundPerformanceThread is done in the global scripting space. Afterwards, a Tkinter GUI is created that has one button. The button's callback (the command action) routes to a function that just sends an event to Csound.

For this example, since there is no need to synchronize continous channel data changes with Csound, it is more efficient to use the CsoundPerformanceThread, as it is a native thread. We use the CsoundPerformanceThread's inputMessage() function to ensure that the message is processed in a thread-safe manner.

In [15]:
from tkinter import *
from random import randint, random

###############################
# Our Orchestra for our project

orc = """
sr=44100
ksmps=32
nchnls=2
0dbfs=1

instr 1 
kenv linsegr 0, .05, 1, .05, .9, .8, 0
aout vco2 p4 * kenv, p5
aout moogladder aout, 2000, p6
outs aout, aout
endin"""

#c = ctcsound.Csound()    # create an instance of Csound
c.setOption("-odac")  # Set option for Csound
c.setOption("-m7")  # Set option for Csound
c.compileOrc(orc)     # Compile Orchestra from String

c.start()             # When compiling from strings, this call is necessary before doing any performing

perfThread = ctcsound.CsoundPerformanceThread(c.csound())
perfThread.play()

class Application(Frame):

    def __init__(self,master=None):
        master.title("Csound API GUI Example")
        self.items = []
        self.notes = []
        Frame.__init__(self,master)
        self.pack()
        self.createUI()
        self.master.protocol("WM_DELETE_WINDOW", self.quit)

    def createUI(self):
        self.size = 600
        self.canvas = Canvas(self,height=self.size,width=self.size,bg="darkgray")
        self.canvas.pack()
        # create button and setup the playNote() callback
        self.button = Button(self.canvas, text='Play Note', command=self.playNote)    
        self.button.pack()

    def playNote(self):
        perfThread.inputMessage("i1 0 2 .5 400 .25")

    def quit(self):
        self.master.destroy()
        perfThread.stop()
        perfThread.join()


app = Application(Tk())
app.mainloop()
c.reset()

Example 12 - Graphical User Interfaces

This example demonstrates a slightly more advanced GUI example. It uses a slider to allow setting the value of the frequency that the notes initiated by the button will play at.

Note: the actual use of update() here is not thread-safe. In real-world usage, we would need to drive Csound from a loop calling PerformKsmps to ensure thread-safety. For this example, the updating generally works as there are few things demanding computation.

In [16]:
from tkinter import *
from random import randint, random

###############################

# Our Orchestra for our project
orc = """
sr=44100
ksmps=32
nchnls=2
0dbfs=1

gkpch chnexport "freq", 1

instr 1 
kpch port gkpch, 0.01, i(gkpch)
printk .5, gkpch
kenv linsegr 0, .05, 1, .05, .9, .8, 0
aout vco2 p4 * kenv, kpch
aout moogladder aout, 2000, .25 
outs aout, aout
endin"""

#c = ctcsound.Csound()    # create an instance of Csound
c.setOption("-odac")  # Set option for Csound
c.setOption("-m7")  # Set option for Csound
c.compileOrc(orc)     # Compile Orchestra from String

c.start()             # When compiling from strings, this call is necessary before doing any performing

perfThread = ctcsound.CsoundPerformanceThread(c.csound())
perfThread.play()


def createChannel(channelName):
    chn, _ = c.channelPtr(channelName,
    ctcsound.CSOUND_CONTROL_CHANNEL | ctcsound.CSOUND_INPUT_CHANNEL)
    return chn

class SliderWrapper(object):
    def __init__(self, csound, channelName, slider):
        self.slider = slider
        self.channel = createChannel(channelName)

    def update(self):
        self.channel[0] = self.slider.get()

class Application(Frame):

    def __init__(self,master=None):
        master.title("Csound API GUI Example")
        self.items = []
        self.notes = []
        Frame.__init__(self,master)
        self.pack()
        self.createUI()
        self.master.protocol("WM_DELETE_WINDOW", self.quit)

    def createUI(self):
        self.size = 600
        self.canvas = Canvas(self,height=self.size,width=self.size)
        self.canvas.pack()
        self.button = Button(self.canvas, text='Play Note', command=self.playNote)    
        self.button.pack()
        self.freqSlider = Scale(self.canvas,from_=80.0, to=600.0,command=self.setFreq,label="Freq")
        self.freqSlider.pack()
        self.freqUpdater = SliderWrapper(c, "freq", self.freqSlider)

    def playNote(self):
        perfThread.inputMessage("i1 0 2 .3")

    def setFreq(self, val):
        print(val)
        self.freqUpdater.update()

    def quit(self):
        self.master.destroy()
        perfThread.stop()
        perfThread.join()


app = Application(Tk())
app.mainloop()
c.stop
del c

_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 11:02 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Steven, your tkinter code (I think) was adapted by Francois from your API collection into his excellent and comprehensive suite of ctcsound tutorials. He advises using Anaconda and Jupiter notebooks (like Joaquin did at the last ICSC) and once everything is all set and working (after about two hours of setup) it's a pretty great system.

To get risset to work I spent the next day uninstalling all of it... that took a few hours as well.

Thanks...

Brew install Csound seems to work and one can say Brew uninstall Csound too... 

But then... for some reason even after uninstalling there seems to be a Csound6.13 hanging around!

Installing with the .dmg seems to install simultaneously with a brew install and some let you use the python opcodes and some do not (I guess it's path issues and that there are many Csound bits and pieces everywhere.

Dr. Richard Boulanger
Professor
Electronic Production and Design
Berklee College of Music

On May 10, 2020, at 10:00 AM, Steven Yi <stevenyi@gmail.com> wrote:


I don't recall ever writing a csound tutorial with tkinter, so I'm not sure what this is referring to.

Regarding building on macOS, I'm not sure how that relates to risset, but the instructions for building on macOS certainly need to be updated. I wrote the instructions in BUILD.md years ago. I stopped using macOS for a few years and resumed using it last fall. 

Since that time, someone else has submitted the Csound formula to the main homebrew package repository:


I've now removed my old homebrew tap from github. I'm going to do a quick pass through the BUILD.md right now to remove references to that tap. I'm not sure if Victor is still using the dependencies/* scripts written a while ago but that's an alternative to using Homebrew-installed dependencies.  Perhaps we need another email thread here about building macOS.




On Sun, May 10, 2020 at 4:01 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 17:31
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
Hello Ed,

I installed the update.
and
I was able to install the four plugins (plugin collections) that were listed. (YES!!!)
but
where did they go?
- I checked the folder that you sort of suggested that I needed to create:
/User/Library/Application Support/csound6->plugins64
and
they were empty

1.  Should I now delete that "path" from my .bash_profile and delete those folders from my Application Support?

=======

I went to your plugin manual pages and started running some of the plugin examples to see if they worked
- even if I could not find where they had been installed

And...  YES
a. crackle - WORKS

b. standardchaos - DOES NOT WORK - because it used FLTK and there seem to now be some issues with FLTK opcode on the Mac?
( a blank panel appears when you run from the terminal, but no sliders appear )
( when you run from CsoundQT, a terminal window appears and some messages and noise is heard, but no sliders )
( and note, there is some interface code at the bottom of the example that I don't think works or contributes to the example )

c. [not your plugin - but following your See Also.. on the bottom of the page as related to "standard chaos", Michael Gogins might want to check out the fact that the cheap example in the manual does not work because:  

using callback interface

error: syntax error, unexpected T_IDENT (token "chuap") from file /private/var/folders/_k/2q5495095d53gw9b674tdxdc0000gq/T/csound-tmpcKMoNDdK.csd (1)

line 45:

>>>aI3, aV2, aV1 chuap <<<

Unexpected untyped word aV1 when expecting a variable

Parsing failed due to invalid input!

Stopping on parser failure

cannot compile orchestra


d. accum - WORKS


e. atstop - seems to Work, but?
- needs MIDI to sound?
- there is a warning about instr2 (WARNING: instr second uses 4 p-fields but is given 3)

f. defer - seems to Work 

g. diode_ringmod - sadly does not work - FLTK issues, Virtual Keyboard issues, CsoundQt ICON Bar turns black
extra widget code at the end of the example?


<bsbPanel>

<label>Widgets</label>

<objectName/>

<x>100</x>

<y>100</y>

<width>320</width>

<height>240</height>

<visible>true</visible>

<uuid/>

<bgcolor mode="nobackground">

<r>255</r>

<g>255</g>

<b>255</b>

</bgcolor>

</bsbPanel>

<bsbPresets>

</bsbPresets>


g. lfnoise - sadly does not work

- FLTK issues, panel appears but no sliders appear, there is some noise and you can run your cursor over the panel for some changes, but...


h. linenv - sadly does not work
- FLTK issues, pane appear but no buttons or triggers, there is a sine tone that beeps in time with a metro, but...

h. poly - WOW.
- impressive example!  inspiring, and works

i. polyseq - WORKS
- also quite impressive and inspiring demo.

I have not tested the others yet, but I am very happy, after all those hours to enjoy this great work and this major contribution.

NOW - to find out "where" those plugins went, and to remove that line from my .bash_profile

Thanks for all the help and for all these great new OPCODES and POSSIBILITIES to explore and compose with and share.

Dr.B.

Maybe this is already there but...

It would be nice to link to the plugins from the manual (or have them and man pages listed in some CsoundQt menu - a path to them)
And...
It would be nice to have the examples load into the CsoundQt IDE editor from the plugin man page, like the manual does
And...
It would be nice to have some way of getting to these from the Csound Web IDE as well.
_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 17:48
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
Thanks - I will try this when I spend tomorrow re-installing anaconda and trying again to get ctcsound and Jupyter notebooks to run
- when it works, it's pretty great..  

BUT 

- to expect a non-developer musician, composer, sound designer, and student (carrying a heavy course load) to deal with all these issues explains why they run away.

_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design



On Sun, May 10, 2020 at 11:59 AM Michael Gogins <michael.gogins@gmail.com> wrote:
These two examples work fine for me on Ubuntu Linux 18.04, running without a notebook, i.e. as standalone Python scripts.

I had to make the following changes:

-- Install the "python-tk" system package.
-- Change "from tkinter import *" to "from Tkinter import *".
-- Add "import ctcsound".
-- Uncomment this line: "#c = ctcsound.Csound()    # create an instance of Csound"
-- Change "-odac" to "-odac:plughw:1,0" in order to use ALSA.

Regards,
Mike

-----------------------------------------------------
Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com


On Sun, May 10, 2020 at 11:24 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Steven,

the example is in Francois Pinot's ctcsound cookbook - example 8. The last two in that subset are "serious"
- anyone else have a problem with these - screen goes dark

Ctcsound API Examples

These examples are based on Steven Yi's Python "How to use the Csound API" files on https://github.com/csound/csoundAPI_examples

All of the examples assume having the ctcsound module imported which is the module containing the Python interface to the Csound API. This must be executed before the examples are run.

This adaptation of Steven's examples as a notebook using ctcsound has been written by Mitch Kaufman.


The previous examples all work GREAT... but then....


Example 11 - Graphical User Interfaces

This example demonstrates a minimal Graphical User Interface application. The setup of Csound and starting of the CsoundPerformanceThread is done in the global scripting space. Afterwards, a Tkinter GUI is created that has one button. The button's callback (the command action) routes to a function that just sends an event to Csound.

For this example, since there is no need to synchronize continous channel data changes with Csound, it is more efficient to use the CsoundPerformanceThread, as it is a native thread. We use the CsoundPerformanceThread's inputMessage() function to ensure that the message is processed in a thread-safe manner.

In [15]:
from tkinter import *
from random import randint, random

###############################
# Our Orchestra for our project

orc = """
sr=44100
ksmps=32
nchnls=2
0dbfs=1

instr 1 
kenv linsegr 0, .05, 1, .05, .9, .8, 0
aout vco2 p4 * kenv, p5
aout moogladder aout, 2000, p6
outs aout, aout
endin"""

#c = ctcsound.Csound()    # create an instance of Csound
c.setOption("-odac")  # Set option for Csound
c.setOption("-m7")  # Set option for Csound
c.compileOrc(orc)     # Compile Orchestra from String

c.start()             # When compiling from strings, this call is necessary before doing any performing

perfThread = ctcsound.CsoundPerformanceThread(c.csound())
perfThread.play()

class Application(Frame):

    def __init__(self,master=None):
        master.title("Csound API GUI Example")
        self.items = []
        self.notes = []
        Frame.__init__(self,master)
        self.pack()
        self.createUI()
        self.master.protocol("WM_DELETE_WINDOW", self.quit)

    def createUI(self):
        self.size = 600
        self.canvas = Canvas(self,height=self.size,width=self.size,bg="darkgray")
        self.canvas.pack()
        # create button and setup the playNote() callback
        self.button = Button(self.canvas, text='Play Note', command=self.playNote)    
        self.button.pack()

    def playNote(self):
        perfThread.inputMessage("i1 0 2 .5 400 .25")

    def quit(self):
        self.master.destroy()
        perfThread.stop()
        perfThread.join()


app = Application(Tk())
app.mainloop()
c.reset()

Example 12 - Graphical User Interfaces

This example demonstrates a slightly more advanced GUI example. It uses a slider to allow setting the value of the frequency that the notes initiated by the button will play at.

Note: the actual use of update() here is not thread-safe. In real-world usage, we would need to drive Csound from a loop calling PerformKsmps to ensure thread-safety. For this example, the updating generally works as there are few things demanding computation.

In [16]:
from tkinter import *
from random import randint, random

###############################

# Our Orchestra for our project
orc = """
sr=44100
ksmps=32
nchnls=2
0dbfs=1

gkpch chnexport "freq", 1

instr 1 
kpch port gkpch, 0.01, i(gkpch)
printk .5, gkpch
kenv linsegr 0, .05, 1, .05, .9, .8, 0
aout vco2 p4 * kenv, kpch
aout moogladder aout, 2000, .25 
outs aout, aout
endin"""

#c = ctcsound.Csound()    # create an instance of Csound
c.setOption("-odac")  # Set option for Csound
c.setOption("-m7")  # Set option for Csound
c.compileOrc(orc)     # Compile Orchestra from String

c.start()             # When compiling from strings, this call is necessary before doing any performing

perfThread = ctcsound.CsoundPerformanceThread(c.csound())
perfThread.play()


def createChannel(channelName):
    chn, _ = c.channelPtr(channelName,
    ctcsound.CSOUND_CONTROL_CHANNEL | ctcsound.CSOUND_INPUT_CHANNEL)
    return chn

class SliderWrapper(object):
    def __init__(self, csound, channelName, slider):
        self.slider = slider
        self.channel = createChannel(channelName)

    def update(self):
        self.channel[0] = self.slider.get()

class Application(Frame):

    def __init__(self,master=None):
        master.title("Csound API GUI Example")
        self.items = []
        self.notes = []
        Frame.__init__(self,master)
        self.pack()
        self.createUI()
        self.master.protocol("WM_DELETE_WINDOW", self.quit)

    def createUI(self):
        self.size = 600
        self.canvas = Canvas(self,height=self.size,width=self.size)
        self.canvas.pack()
        self.button = Button(self.canvas, text='Play Note', command=self.playNote)    
        self.button.pack()
        self.freqSlider = Scale(self.canvas,from_=80.0, to=600.0,command=self.setFreq,label="Freq")
        self.freqSlider.pack()
        self.freqUpdater = SliderWrapper(c, "freq", self.freqSlider)

    def playNote(self):
        perfThread.inputMessage("i1 0 2 .3")

    def setFreq(self, val):
        print(val)
        self.freqUpdater.update()

    def quit(self):
        self.master.destroy()
        perfThread.stop()
        perfThread.join()


app = Application(Tk())
app.mainloop()
c.stop
del c

_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 11:02 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Steven, your tkinter code (I think) was adapted by Francois from your API collection into his excellent and comprehensive suite of ctcsound tutorials. He advises using Anaconda and Jupiter notebooks (like Joaquin did at the last ICSC) and once everything is all set and working (after about two hours of setup) it's a pretty great system.

To get risset to work I spent the next day uninstalling all of it... that took a few hours as well.

Thanks...

Brew install Csound seems to work and one can say Brew uninstall Csound too... 

But then... for some reason even after uninstalling there seems to be a Csound6.13 hanging around!

Installing with the .dmg seems to install simultaneously with a brew install and some let you use the python opcodes and some do not (I guess it's path issues and that there are many Csound bits and pieces everywhere.

Dr. Richard Boulanger
Professor
Electronic Production and Design
Berklee College of Music

On May 10, 2020, at 10:00 AM, Steven Yi <stevenyi@gmail.com> wrote:


I don't recall ever writing a csound tutorial with tkinter, so I'm not sure what this is referring to.

Regarding building on macOS, I'm not sure how that relates to risset, but the instructions for building on macOS certainly need to be updated. I wrote the instructions in BUILD.md years ago. I stopped using macOS for a few years and resumed using it last fall. 

Since that time, someone else has submitted the Csound formula to the main homebrew package repository:


I've now removed my old homebrew tap from github. I'm going to do a quick pass through the BUILD.md right now to remove references to that tap. I'm not sure if Victor is still using the dependencies/* scripts written a while ago but that's an alternative to using Homebrew-installed dependencies.  Perhaps we need another email thread here about building macOS.




On Sun, May 10, 2020 at 4:01 AM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
Hello Everyone.

I can't wait to explore and use this new utility - and be able to add plugins to Csound with "ease"

It is my hope that either:

ONE: it will be a simple thing for any and every MacUser (particularly non-developers) to someday be able to build from sources
(I followed the instructions, but still got many errors and some tips about what I needed to add to my .bash_profile)
(( Is it working?  Do I have the most recent developer build on my Mac?  Do I have only ONE version and the latest and most complete version of Csound running on my Mac?   Is HomeBrew the way to go?  ))

or

TWO: that the DMG will install everything, even plugins, or the directories that will let me add plugins or UDO or use ctcsound or 
the Csound API

or 

THREE:  that there is an uninstaller and clean installer so that we could remove ALL of the Csound dependencies and utilities and freshly install ONLY the latest versions (without having to purchase a new Mac or wipe our hard drives and reinstall the OS (which I have done in the past!)

(( As a sideNOTE: I did work until 5 am yesterday trying to get Jupyter Notebooks and ctcsound to work with Anaconda and Python 2.7 or 3.7 - but that's another email and long story.  I did get a lot of it to work eventually, but there is absolutely NO WAY that I would torture my students with that sort of PATH nightmare (( they would ALL drop the class and run to SuperCollider for sure. ))

(( PS - if you are reading this Steven Yi, you might like to know that your tkinter tutorial, the one that is supposed to put sliders up on the screen, so totally crashed my MacBook that it powered it DOWN !  Black screen !!! I have not seen this since 1986 or so.  WOW.  After three attempts and three blackouts, I didn't want to risk blowing all the fuses in here, so I just moved on.  ;-0. OK - please forgive this digression, let's get back to risset (whom, by the way, I miss very very much!)

And so..., I was super excited to read that risset worked and instantly and flawlessly on Mac OSX

Well.... it is 4:00 am and I have been working on this since 11 pm today. (taking a break from grading)

I have installed, uninstalled, brew-installed, installed from sources, reinstalled, removed, moved, added, included, symlinked and removed all sorts of things from my .bash_profile and .bashrc and from my machine itself

I hate to give up, but... this has been beating me up pretty badly

here is what I can report 

- in the risset manual it says that plugins are installed in:

macos: $HOME/Library/Application Support/csound6/plugins64

but there is no such directory on my system
- even after brew installing, brew installing from steven yi's instructions and site, and re-installing from the latest .dmg

It seems that everything is in... 

~/Library/Frameworks/CsoundLib64.framework/... 

But, I am not sure that there is a plugins folder in there?
- and so, I even tried creating a csound6 directory and plugins64 subdirectory in the Application Support folder (NOPE)

Below is my terminal output after installing and following the instructions
- NOTE: even though mverb is is the gogins folder it does not appear in the list, whereas the rory and ed's plugins do appear in the list.  
- NOTE:  I can not install anything
- NOTE:  I did try the --user option and did get a message that suggested how to fix my path by adding appropriate lines to my .bash_profile (which I did) (( I also was told about some things that I needed to add to my .bash_profile when I BrewInstalled Csound followng Steven Yi's instructions (which required many reinstall of broken utilities by the way)

Should it be this difficult?  Am I getting to old for this?  
How much hunting (and stack overflow) and trial and error (path + error message) must one endure to set up a Mac to be able to follow along with the great work that you are all doing?

Here is my .bash_profile ( I tossed everything out pretty much )

export PS1="db->  "

export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:/usr/local/opt/csound/Frameworks"

export CLASSPATH="/usr/local/opt/csound/libexec/csnd6.jar:."

export OPCODE6DIR64="/Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64:/Users/rboulanger/Library/Application Support/csound6/plugins64"


Here is what I get when I type in the commands from the risset manual and try to install a plug

db->  risset list

* else  @ 0.2.0        | Miscellaneous plugins  

* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  

* klib  @ 0.2.0        | hashtable / pool / string cache plugins  

* jsfx  @ 0.2.0        | Jesusonics effects in csound  

* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc  


db->  risset install else

Traceback (most recent call last):

  File "/usr/local/bin/risset", line 8, in <module>

    sys.exit(main())

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1284, in main

    ok = args.func(plugins_index, args)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 1139, in cmd_install

    error = plugins_index.install_plugin(plugin_definition, user=args.user)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 767, in install_plugin

    plugin_dll = self.get_plugin_dll(plugin)

  File "/usr/local/lib/python3.7/site-packages/risset.py", line 746, in get_plugin_dll

    path = resolve_path(binary_definition.url, Path(plugin.source).parent.as_posix())

AttributeError: 'Plugin' object has no attribute 'source'







_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Sun, May 10, 2020 at 1:13 AM Steven Yi <stevenyi@gmail.com> wrote:
I'm not such a fan of submodules myself and I don't think it quite supports the use case. Additionally, supporting multiple repositories would also integrate with another thing we've talked about here which is the template git repo for opcode plugins. 

If an opcode plugin template repo has a plugins.json, and if the repo is pre-configured to work with Github Actions, it might be possible to have it setup for auto-compilation on multiple platforms.  Users could then clone the repo, develop a plugin, commit code, then the template project is setup to compile on multiple platforms and publish to the repo.  The repo could then be added to as a source to the sources.list for risset. 

Regardless, there's no pressing need to implement such a thing this moment but perhaps it's something to consider for the future.

On Sat, May 9, 2020 at 7:59 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

maybe git submodules would be a solution for that. Instead of adding your plugin directly to the repo you can add your repo as submodule. Or just ask for commit rights.


On 10.05.20 00:07, Steven Yi wrote:
Publishing a PR is the bottleneck mentioned. I am imagining a scenario of testing plugins with non-dev users before they're final and not wanting to have to do PR's to iterate (nor feeling the pressure to have a dev version in git history).

On Sat, May 9, 2020 at 5:34 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:


On 09.05.20 22:42, Steven Yi wrote:
This is great to see, thanks!  I tested here on MacOS and it worked well. 

Some thoughts:

* I didn't see if there was support for ARM or ARM64 CPU type on Linux. Any thoughts on that?  (Thinking Raspberry Pi here)

These could be added, of course. I don't have the hardware to test that though so contributions are welcome.

* It would be liberating for users to be able to add their own repositories.  (Similar to apt sources.list)  I think it would remove a bottleneck for publishing new plugins.

Publishing a plugin is just a PR appart. You need to fork the risset-data repository, add your plugin to the plugins.json and add the binaries for each of your supported platform. Then do a PR or ask to be given rights to the repository.

Keeping everything in one repository makes the design simpler. For example, documentation can be built much easier this way.

* It would be nice to have this work with both CS6 and CS7 and future versions. I think that would have some ramifications on the plugin declaration among other things.
This can be adapted once CS7 is a thing. At the moment the amount of external plugins is so small that such complexity / flexibility is not yet needed.

I haven't had much time to respond to other emails but I think the proposal for local OPCODE dir is also a very good idea.

This would make things much tidier in fact.

On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 18:02
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound


On 10.05.20 18:31, Dr. Richard Boulanger wrote:
Hello Ed,

I installed the update.
and
I was able to install the four plugins (plugin collections) that were listed. (YES!!!)
but
where did they go?
- I checked the folder that you sort of suggested that I needed to create:
/User/Library/Application Support/csound6->plugins64
and
they were empty

1.  Should I now delete that "path" from my .bash_profile and delete those folders from my Application Support?

If you installed csound from the installed, the plugins are installed in /Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64", if you installed csound from source they are at ~/Library/...

=======

I went to your plugin manual pages and started running some of the plugin examples to see if they worked
- even if I could not find where they had been installed

And...  YES
a. crackle - WORKS

b. standardchaos - DOES NOT WORK - because it used FLTK and there seem to now be some issues with FLTK opcode on the Mac?

I was almost tempted not to answer the rest but I do appreciate you having a look at it. For the future, you might get nicer answers if you replace every "does not work" with "I could not get it to work or I don't really understand what to expect".

standardchaos works just fine. The example uses fltk, which is not supported in macos anymore. For reasons that excede my understanding, csound ships these broken opcodes for macOS by default,  which generates confusion for users. 

I am sure that you can adapt the example to use csoundqt or any other frontend.


d. accum - WORKS


e. atstop - seems to Work, but?
- needs MIDI to sound?
- there is a warning about instr2 (WARNING: instr second uses 4 p-fields but is given 3)
It works as expected. Please read the example carefully, look at the score, etc.
f. defer - seems to Work 

g. diode_ringmod - sadly does not work - FLTK issues, Virtual Keyboard issues, CsoundQt ICON Bar turns black
extra widget code at the end of the example?
diode_ringmod works great in macOS. Just adapt the fltk to csoundqt.

<bsbPanel>

<label>Widgets</label>

<objectName/>

<x>100</x>

<y>100</y>

<width>320</width>

<height>240</height>

<visible>true</visible>

<uuid/>

<bgcolor mode="nobackground">

<r>255</r>

<g>255</g>

<b>255</b>

</bgcolor>

</bsbPanel>

<bsbPresets>

</bsbPresets>

g. lfnoise - sadly does not work

same answer as before
h. linenv - sadly does not work
same answer as before

h. poly - WOW.
- impressive example!  inspiring, and works

i. polyseq - WORKS
- also quite impressive and inspiring demo.

I have not tested the others yet, but I am very happy, after all those hours to enjoy this great work and this major contribution.

NOW - to find out "where" those plugins went, and to remove that line from my .bash_profile

Thanks for all the help and for all these great new OPCODES and POSSIBILITIES to explore and compose with and share.

cheers,

Eduardo


On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 18:25
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] risset - a package manager for csound
Thanks!

Happy that more of this is just working out of the box and after a simple reinstall from the commandline 

I found them - now in /Library and seeming to be discovered nicely by default.

sad that FLTK issues are breaking so many things

musical examples, in context, (such as your poly series) are always appreciated and inspiring - as is all your wonderful work..  



Dr. Richard Boulanger
Professor
Electronic Production and Design
Berklee College of Music

On May 10, 2020, at 1:04 PM, Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:




On 10.05.20 18:31, Dr. Richard Boulanger wrote:
Hello Ed,

I installed the update.
and
I was able to install the four plugins (plugin collections) that were listed. (YES!!!)
but
where did they go?
- I checked the folder that you sort of suggested that I needed to create:
/User/Library/Application Support/csound6->plugins64
and
they were empty

1.  Should I now delete that "path" from my .bash_profile and delete those folders from my Application Support?

If you installed csound from the installed, the plugins are installed in /Library/Frameworks/CsoundLib64.framework/Versions/6.0/Resources/Opcodes64", if you installed csound from source they are at ~/Library/...

=======

I went to your plugin manual pages and started running some of the plugin examples to see if they worked
- even if I could not find where they had been installed

And...  YES
a. crackle - WORKS

b. standardchaos - DOES NOT WORK - because it used FLTK and there seem to now be some issues with FLTK opcode on the Mac?

I was almost tempted not to answer the rest but I do appreciate you having a look at it. For the future, you might get nicer answers if you replace every "does not work" with "I could not get it to work or I don't really understand what to expect".

standardchaos works just fine. The example uses fltk, which is not supported in macos anymore. For reasons that excede my understanding, csound ships these broken opcodes for macOS by default,  which generates confusion for users. 

I am sure that you can adapt the example to use csoundqt or any other frontend.


d. accum - WORKS


e. atstop - seems to Work, but?
- needs MIDI to sound?
- there is a warning about instr2 (WARNING: instr second uses 4 p-fields but is given 3)
It works as expected. Please read the example carefully, look at the score, etc.
f. defer - seems to Work 

g. diode_ringmod - sadly does not work - FLTK issues, Virtual Keyboard issues, CsoundQt ICON Bar turns black
extra widget code at the end of the example?
diode_ringmod works great in macOS. Just adapt the fltk to csoundqt.

<bsbPanel>

<label>Widgets</label>

<objectName/>

<x>100</x>

<y>100</y>

<width>320</width>

<height>240</height>

<visible>true</visible>

<uuid/>

<bgcolor mode="nobackground">

<r>255</r>

<g>255</g>

<b>255</b>

</bgcolor>

</bsbPanel>

<bsbPresets>

</bsbPresets>

g. lfnoise - sadly does not work

same answer as before
h. linenv - sadly does not work
same answer as before

h. poly - WOW.
- impressive example!  inspiring, and works

i. polyseq - WORKS
- also quite impressive and inspiring demo.

I have not tested the others yet, but I am very happy, after all those hours to enjoy this great work and this major contribution.

NOW - to find out "where" those plugins went, and to remove that line from my .bash_profile

Thanks for all the help and for all these great new OPCODES and POSSIBILITIES to explore and compose with and share.

cheers,

Eduardo


On Fri, May 8, 2020 at 9:37 PM Eduardo Moguillansky <eduardo.moguillansky@gmail.com> wrote:

Hi,

here is a first attempt at a package manager for csound. I call it "risset".

https://github.com/csound-plugins/risset

Installation

1) Install git and python3, if needed

2) At a terminal:

    pip3 install risset

Quick Start

# list all available plugins for your platform
$ risset list

* else  @ 0.2.0        | Miscellaneous plugins  
* poly  @ 0.2.0        | Run multiple copies of an opcode in parallel/series  
* klib  @ 0.2.0        | hashtable / pool / string cache plugins  
* jsfx  @ 0.2.0        | Jesusonics effects in csound  [installed: 0.2.0]
* mverb  @ 1.3.7       | Artificial reverb based on a 2D waveguide mesh  
* rory  @ 0.2.0        | Opcodes to save/recall channels, triggers, etc 


# show information about a given plugin
$ risset show mverb

Plugin     : mverb
Installed  : 1.3.7
Author     : Michael Gogins
Abstract   : Artificial reverb based on a 2D waveguide mesh
Description:
    Verb is a modified 5-by-5 2D waveguide mesh reverberator. It is highly
    flexible and can generate ompelling and unique timbres ranging from
    traditional spaces to infinite morphing spaces or the simulation of
    metallic plates or cymbals. The plugin incorporates a 10-band parametric
    equalizer for timbral control and delay randomization to create more
    unusual effects.
Platforms: 
    * linux: Ubuntu 18.04
Opcodes:
    MVerb
Minimal csound version : 6.14

# Install a plugin
$ risset install mverb


Documentation

Documentation to all available opcodes is autogenerated and lives at:

https://github.com/csound-plugins/risset-data/tree/master/docs

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 21:20
Fromjohn
SubjectRe: [Csnd] risset - a package manager for csound
Thoght I ought to try this.  I unstalled (of course after being root) ad 
then

xenakis:~/csound6> risset list
Traceback (most recent call last):
   File "/usr/bin/risset", line 11, in 

load_entry_point('risset===Traceback.-most.recent.call.last-..File.-.-risset.py-.line.5-.in.-module-....import.dataclasses-ModuleNotFoundError-.No.module.named.-dataclasses-', 
'console_scripts', 'risset')()
   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 
484, in load_entry_point
     return get_distribution(dist).load_entry_point(group, name)
   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 
2725, in load_entry_point
     return ep.load()
   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 
2343, in load
     return self.resolve()
   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 
2349, in resolve
     module = __import__(self.module_name, fromlist=['__name__'], level=0)
   File "/usr/lib/python3.6/site-packages/risset.py", line 5, in 
     import dataclasses
ModuleNotFoundError: No module named 'dataclasses'

No idea what this mansas I d not use python directly

Suggestions?

==John ff

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-10 21:46
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound
it needs python >= 3.7

On 10.05.20 22:20, john wrote:
> Thoght I ought to try this.  I unstalled (of course after being root) 
> ad then
>
> xenakis:~/csound6> risset list
> Traceback (most recent call last):
>   File "/usr/bin/risset", line 11, in 
>
> load_entry_point('risset===Traceback.-most.recent.call.last-..File.-.-risset.py-.line.5-.in.-module-....import.dataclasses-ModuleNotFoundError-.No.module.named.-dataclasses-', 
> 'console_scripts', 'risset')()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", 
> line 484, in load_entry_point
>     return get_distribution(dist).load_entry_point(group, name)
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", 
> line 2725, in load_entry_point
>     return ep.load()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", 
> line 2343, in load
>     return self.resolve()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", 
> line 2349, in resolve
>     module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File "/usr/lib/python3.6/site-packages/risset.py", line 5, in 
>     import dataclasses
> ModuleNotFoundError: No module named 'dataclasses'
>
> No idea what this mansas I d not use python directly
>
> Suggestions?
>
> ==John ff
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-10 21:51
FromTarmo Johannes
SubjectRe: [Csnd] risset - a package manager for csound
Hi!

I needed to install dataclasses separately (openSuse 15.1):

sudo pip3 install dataclasses

After that worked as expected!  Thanks a lot!

tarmo



Kontakt Eduardo Moguillansky (<eduardo.moguillansky@gmail.com>) kirjutas kuupäeval P, 10. mai 2020 kell 23:47:
it needs python >= 3.7

On 10.05.20 22:20, john wrote:
> Thoght I ought to try this.  I unstalled (of course after being root)
> ad then
>
> xenakis:~/csound6> risset list
> Traceback (most recent call last):
>   File "/usr/bin/risset", line 11, in <module>
>
> load_entry_point('risset===Traceback.-most.recent.call.last-..File.-.-risset.py-.line.5-.in.-module-....import.dataclasses-ModuleNotFoundError-.No.module.named.-dataclasses-',
> 'console_scripts', 'risset')()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 484, in load_entry_point
>     return get_distribution(dist).load_entry_point(group, name)
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 2725, in load_entry_point
>     return ep.load()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 2343, in load
>     return self.resolve()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 2349, in resolve
>     module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File "/usr/lib/python3.6/site-packages/risset.py", line 5, in <module>
>     import dataclasses
> ModuleNotFoundError: No module named 'dataclasses'
>
> No idea what this mansas I d not use python directly
>
> Suggestions?
>
> ==John ff
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-10 21:56
Fromjohn
SubjectRe: [Csnd] risset - a package manager for csound
Not aclear error message nor was ths flagged.  I have the current 
packaged python from my distro.  My Debian systems seem to still bre using 
python 2.7

Orh well; it adds nothing the.

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-10 21:57
FromTarmo Johannes
SubjectRe: [Csnd] risset - a package manager for csound
Still, there might be problems between different Linux versions.
When I ran  cound -z to test if mverb is installed I got message:

---
WARNING: could not open library '/usr/local/lib/csound/plugins64-6.0//libmverb.so' (/lib64/libm.so.6: version `GLIBC_2.27' not found (required by /usr/local/lib/csound/plugins64-6.0//libmverb.so))
--
That means the plugin is built on different system than mine and fails to work.

For building AppImage there is suggestions that the distributed software should be build on the oldes still supported LTS Ubuntu distro (16.04 for now) to give biggest possible compatibility. Not sure if this is relevant here.

tarmo




Kontakt Tarmo Johannes (<trmjhnns@gmail.com>) kirjutas kuupäeval P, 10. mai 2020 kell 23:51:
Hi!

I needed to install dataclasses separately (openSuse 15.1):

sudo pip3 install dataclasses

After that worked as expected!  Thanks a lot!

tarmo



Kontakt Eduardo Moguillansky (<eduardo.moguillansky@gmail.com>) kirjutas kuupäeval P, 10. mai 2020 kell 23:47:
it needs python >= 3.7

On 10.05.20 22:20, john wrote:
> Thoght I ought to try this.  I unstalled (of course after being root)
> ad then
>
> xenakis:~/csound6> risset list
> Traceback (most recent call last):
>   File "/usr/bin/risset", line 11, in <module>
>
> load_entry_point('risset===Traceback.-most.recent.call.last-..File.-.-risset.py-.line.5-.in.-module-....import.dataclasses-ModuleNotFoundError-.No.module.named.-dataclasses-',
> 'console_scripts', 'risset')()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 484, in load_entry_point
>     return get_distribution(dist).load_entry_point(group, name)
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 2725, in load_entry_point
>     return ep.load()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 2343, in load
>     return self.resolve()
>   File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py",
> line 2349, in resolve
>     module = __import__(self.module_name, fromlist=['__name__'], level=0)
>   File "/usr/lib/python3.6/site-packages/risset.py", line 5, in <module>
>     import dataclasses
> ModuleNotFoundError: No module named 'dataclasses'
>
> No idea what this mansas I d not use python directly
>
> Suggestions?
>
> ==John ff
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2020-05-11 17:15
Fromjohn
SubjectRe: [Csnd] risset - a package manager for csound
I installed dataclasses and now I have for risset list

Receiving objects: 100% (458/458), 1.93 MiB | 1.41 MiB/s, done.
Resolving deltas: 100% (185/185), done.
** Error:  Found plugins dir /usr/local/lib/csound/plugins64-6.0, but it 
does not seem to be the systems plugin path (librtpa.so should be present 
but was not found)
** Error:  System plugins path not found! Searched paths: 
['/usr/local/lib/csound/plugins64-6.0']
** Error:  Could not find the system plugin folder
** Error:  Could not find system plugins folder

Which seems a total sticker.  I do have /usr/local/lib/csound but it des 
not have any real files in it.  There is no "system plugin folder" as 
csound id not installed.

What with the compilation issues reported elsewhere risset seems to offenr 
nothing to me at all.

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-11 17:30
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound
Can you post the output of "risset --debug list" and "risser --version" ?

On 11.05.20 18:15, john wrote:
> I installed dataclasses and now I have for risset list
>
> Receiving objects: 100% (458/458), 1.93 MiB | 1.41 MiB/s, done.
> Resolving deltas: 100% (185/185), done.
> ** Error:  Found plugins dir /usr/local/lib/csound/plugins64-6.0, but 
> it does not seem to be the systems plugin path (librtpa.so should be 
> present but was not found)
> ** Error:  System plugins path not found! Searched paths: 
> ['/usr/local/lib/csound/plugins64-6.0']
> ** Error:  Could not find the system plugin folder
> ** Error:  Could not find system plugins folder
>
> Which seems a total sticker.  I do have /usr/local/lib/csound but it 
> des not have any real files in it.  There is no "system plugin folder" 
> as csound id not installed.
>
> What with the compilation issues reported elsewhere risset seems to 
> offenr nothing to me at all.
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-11 17:47
Fromjohn
SubjectRe: [Csnd] risset - a package manager for csound
xenakis:~> risset --debug list
Cloning into '/home/jpff/.local/share/risset/risset-data'...
remote: Enumerating objects: 458, done.
remote: Counting objects: 100% (458/458), done.
remote: Compressing objects: 100% (248/248), done.
remote: Total 458 (delta 185), reused 417 (delta 144), pack-reused 0
Receiving objects: 100% (458/458), 1.93 MiB | 2.08 MiB/s, done.
Resolving deltas: 100% (185/185), done.
DEBUG:  load_text: {
     "version": "0.0.1",
     "plugins": {
         "else@0.2.1": "plugins/emplugins/0.2.1/else/else.json",
         "poly@0.2.1": "plugins/emplugins/0.2.1/poly/poly.json",
         "klib@0.2.1": "plugins/emplugins/0.2.1/klib/klib.json",
         "jsfx@0.2.1": "plugins/emplugins/0.2.1/jsfx/jsfx.json",
         "mverb@1.3.7": "plugins/gogins/1.3.7/mverb/mverb.json",
         "rory@0.2.1": "plugins/rorywalsh/0.2.1/rory/manifest.json"
     }
}

DEBUG:  Parsing index text:
{
     "version": "0.0.1",
     "plugins": {
         "else@0.2.1": "plugins/emplugins/0.2.1/else/else.json",
         "poly@0.2.1": "plugins/emplugins/0.2.1/poly/poly.json",
         "klib@0.2.1": "plugins/emplugins/0.2.1/klib/klib.json",
         "jsfx@0.2.1": "plugins/emplugins/0.2.1/jsfx/jsfx.json",
         "mverb@1.3.7": "plugins/gogins/1.3.7/mverb/mverb.json",
         "rory@0.2.1": "plugins/rorywalsh/0.2.1/rory/manifest.json"
     }
}

DEBUG:  Parsing 
/home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/else/else.json
DEBUG:  Parsing 
/home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/poly/poly.json
DEBUG:  Parsing 
/home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/klib/klib.json
DEBUG:  Parsing 
/home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/jsfx/jsfx.json
DEBUG:  Parsing 
/home/jpff/.local/share/risset/risset-data/plugins/gogins/1.3.7/mverb/mverb.json
DEBUG:  Parsing 
/home/jpff/.local/share/risset/risset-data/plugins/rorywalsh/0.2.1/rory/manifest.json
DEBUG:  Finding opcodes dir:
DEBUG:     > looking at  /usr/local/lib/csound/plugins64-6.0
** Error:  Found plugins dir /usr/local/lib/csound/plugins64-6.0, but it 
does not seem to be the systems plugin path (librtpa.so should be present 
but was not found)
** Error:  System plugins path not found! Searched paths: 
['/usr/local/lib/csound/plugins64-6.0']
DEBUG:  System plugins path: None
** Error:  Could not find the system plugin folder
** Error:  Could not find system plugins folder



xenakis:~> risset --version
0.2.1

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-11 23:28
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound
Could you update risset?

pip3 install risset --upgrade

On 11.05.20 18:47, john wrote:
> xenakis:~> risset --debug list
> Cloning into '/home/jpff/.local/share/risset/risset-data'...
> remote: Enumerating objects: 458, done.
> remote: Counting objects: 100% (458/458), done.
> remote: Compressing objects: 100% (248/248), done.
> remote: Total 458 (delta 185), reused 417 (delta 144), pack-reused 0
> Receiving objects: 100% (458/458), 1.93 MiB | 2.08 MiB/s, done.
> Resolving deltas: 100% (185/185), done.
> DEBUG:  load_text: {
>     "version": "0.0.1",
>     "plugins": {
>         "else@0.2.1": "plugins/emplugins/0.2.1/else/else.json",
>         "poly@0.2.1": "plugins/emplugins/0.2.1/poly/poly.json",
>         "klib@0.2.1": "plugins/emplugins/0.2.1/klib/klib.json",
>         "jsfx@0.2.1": "plugins/emplugins/0.2.1/jsfx/jsfx.json",
>         "mverb@1.3.7": "plugins/gogins/1.3.7/mverb/mverb.json",
>         "rory@0.2.1": "plugins/rorywalsh/0.2.1/rory/manifest.json"
>     }
> }
>
> DEBUG:  Parsing index text:
> {
>     "version": "0.0.1",
>     "plugins": {
>         "else@0.2.1": "plugins/emplugins/0.2.1/else/else.json",
>         "poly@0.2.1": "plugins/emplugins/0.2.1/poly/poly.json",
>         "klib@0.2.1": "plugins/emplugins/0.2.1/klib/klib.json",
>         "jsfx@0.2.1": "plugins/emplugins/0.2.1/jsfx/jsfx.json",
>         "mverb@1.3.7": "plugins/gogins/1.3.7/mverb/mverb.json",
>         "rory@0.2.1": "plugins/rorywalsh/0.2.1/rory/manifest.json"
>     }
> }
>
> DEBUG:  Parsing 
> /home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/else/else.json
> DEBUG:  Parsing 
> /home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/poly/poly.json
> DEBUG:  Parsing 
> /home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/klib/klib.json
> DEBUG:  Parsing 
> /home/jpff/.local/share/risset/risset-data/plugins/emplugins/0.2.1/jsfx/jsfx.json
> DEBUG:  Parsing 
> /home/jpff/.local/share/risset/risset-data/plugins/gogins/1.3.7/mverb/mverb.json
> DEBUG:  Parsing 
> /home/jpff/.local/share/risset/risset-data/plugins/rorywalsh/0.2.1/rory/manifest.json
> DEBUG:  Finding opcodes dir:
> DEBUG:     > looking at  /usr/local/lib/csound/plugins64-6.0
> ** Error:  Found plugins dir /usr/local/lib/csound/plugins64-6.0, but 
> it does not seem to be the systems plugin path (librtpa.so should be 
> present but was not found)
> ** Error:  System plugins path not found! Searched paths: 
> ['/usr/local/lib/csound/plugins64-6.0']
> DEBUG:  System plugins path: None
> ** Error:  Could not find the system plugin folder
> ** Error:  Could not find system plugins folder
>
>
>
> xenakis:~> risset --version
> 0.2.1
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-12 17:30
Fromjohn
SubjectRe: [Csnd] risset - a package manager for csound
Installing as me did nort gove a working syste.  Installing as root 
allowed list to work.

Installing mver failed, but this may be because Ido not have an Ubuntu 
system.

.... lots of text followed bry....
***potential WI opcode initc14
***potential WI opcode dispfft.k
***potential WI opcode dispfft.a
***potential WI opcode initc21
** Error:  Plugin binary was installed, but opcode MVerb not present



> Could you update risset?
>
> pip3 install risset --upgrade
>

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2020-05-12 17:46
FromEduardo Moguillansky
SubjectRe: [Csnd] risset - a package manager for csound
Could you provide the output to the following commands (with all the 
text)? It might be impossible to get a binary working for all linux 
combinations, but at least I could list a known subgroup of working 
systems.

$ ldd --version

$ uname -a

$ risset --version

$ csound -z

$ risset --debug list

On 12.05.20 18:30, john wrote:
> Installing as me did nort gove a working syste.  Installing as root 
> allowed list to work.
>
> Installing mver failed, but this may be because Ido not have an Ubuntu 
> system.
>
> .... lots of text followed bry....
> ***potential WI opcode initc14
> ***potential WI opcode dispfft.k
> ***potential WI opcode dispfft.a
> ***potential WI opcode initc21
> ** Error:  Plugin binary was installed, but opcode MVerb not present
>
>
>
>> Could you update risset?
>>
>> pip3 install risset --upgrade
>>
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here