Closed gogins closed 3 years ago
Yes, this is very important. As you point out, there are clear limitations in the csound language regarding the flat namespace.
Things to clear, in random order:
.udo
?
opcode bufRead, i, S
/* Read a soundfile via gen1
Args:
Spath: the path of the soundfile
Returns:
itab: the table number
*/
Spath xin
itab ftgen 0, 0, 0, -1, Spath, 0, 0, 0
xout itab
endop
Such a format could be parsed via risset and a markdown file could be autogenerated (the syntax can be parsed from the xin / xout declarations).
Regarding conflicts in filenames: this can be solved by including filenames inside folders. Given a folder structure
foo/
barudos.udo
bazudos.udo
These could be included as
#include "foo/barudos.udo"
#include "foo/bazudos.udo"
Thanks for your response to my comments. Your proposals make sense to me. I prefer ".inc" to ".udo" because that is not limited in meaning to UDOs, for example I store whole instruments in .inc files, but I don't really care. Your suggestions are fine.
Using folders for namespace is fine for filenames, does not work for UDO names, but it is certainly a good idea.
I think it is reasonable to require the author of a UDO to provide a markdown file. Risset can no doubt be gotten to display this in a pretty format.
Thanks, Mike
Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com
On Sun, Jul 19, 2020 at 4:09 PM Eduardo Moguillansky < notifications@github.com> wrote:
Yes, this is very important. As you point out, there are clear limitations in the csound language regarding the flat namespace.
Things to clear, in random order:
- Which is the extension of include files? .udo?
- What to do if the system does not define INCDIR? Should risset install to a default location and prompt the user to set INCDIR? Or should csound query a default location if INCDIR is not defined and an include file is not found relative to the .csd file?
- What should that default location be? Following the standards, something like (I'm prefixing everything with csound6 in the event that csound7 would break compatibility in some way):
- linux: ~/.local/share/csound6/udos
- macos: ~/Library/Application Support/csound6/udos
- windows: C:\Documents and Settings
\Application Data\csound6\udos - What about documentation for udos? Should each udo need a man page, similar to opcodes, in markdown format? Couldn't we make it possible to include inline documentation?
opcode bufRead, i, S / Read a soundfile via gen1 Args: Spath: the path of the soundfile Returns: itab: the table number / Spath xin itab ftgen 0, 0, 0, -1, Spath, 0, 0, 0 xout itabendop
Such a format could be parsed via risset and a markdown file could be autogenerated (the syntax can be parsed from the xin / xout declarations).
Regarding conflicts in filenames: this can be solved by including filenames inside folders. Given a folder structure
foo/ barudos.udo bazudos.udo
These could be included as
include "foo/barudos.udo"#include "foo/bazudos.udo"
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/csound-plugins/risset/issues/3#issuecomment-660701099, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQIGJLASC5SOXWR27IZDUDR4NHITANCNFSM4PBM6XSQ .
The idea of Risset is good but it is not being improved or maintained.
The idea behind the current design is that potential contributors would require commit rights for this repo and could add their own plugins and potentially other resources under their own folder. Since the number of such contributors is in reality very small, this seemed to be a good compromise between flexibility and simplicity (this is more/less how pd's deken works). But feedback was not very positive in this regard, requiring a design in which risset would work more like an aggregator of other repositories.
I completely agree that there is a need for a compromise between flexibility and simplicity. The problem that is getting in the way is multi-platform support. I think if you had continuous integration working in risset-data for each platform, and with built-in build recipes, then it might be possible for somebody who really only works on one platform, such as Linux or Mac OS, to contribute code that risset-data's continuous integration builds would provide for other platforms. But this already requires a certain degree of complexity and makes a number of assumptions to which there would inevitably be exceptions...
The fact that Steven Yi is still talking about a "package system" that has never been implemented indicates that there is a real need for something like this.
I'll keep watching and thinking about this.
Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com
On Fri, Jan 22, 2021 at 7:37 PM Eduardo Moguillansky < notifications@github.com> wrote:
The idea behind the current design is that potential contributors would require commit rights for this repo and could add their own plugins and potentially other resources under their own folder. Since the number of such contributors is in reality very small, this seemed to be a good compromise between flexibility and simplicity (this is more/less how pd's deken works). But feedback was not very positive in this regard, requiring a design in which risset would work more like an aggregator of other repositories.
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/csound-plugins/risset/issues/3#issuecomment-765800502, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQIGJLJSGSHOIJARQ6XCGDS3IK6NANCNFSM4PBM6XSQ .
risset-data is just a data repository. For the csound-plugins (https://github.com/csound-plugins/csound-plugins) I have a nicely working build environment plus continuous integration for all three major desktop platforms plus a script to copy the resulting binaries and the documentation to the corresponding folder in risset-data. If anyone needs such an environment they can simply clone this repository and fill it with their own plugins or even ask for commit rights to that repository. risset and risset-data are for distribution only.
Okay, somehow I id not know about that. I'll try it out.
Thanks, Mike
On Sat, Jan 23, 2021, 01:45 Eduardo Moguillansky notifications@github.com wrote:
risset-data is just a data repository. For the csound-plugins ( https://github.com/csound-plugins/csound-plugins) I have a nicely working build environment plus continuous integration for all three major desktop platforms plus a script to copy the resulting binaries and the documentation to the corresponding folder in risset-data. If anyone needs such an environment they can simply clone this repository and fill it with their own plugins or even ask for commit rights to that repository. risset and risset-data are for distribution only.
— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/csound-plugins/risset/issues/3#issuecomment-765878561, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABQIGJKIEG2UXZ7X3AR7D4TS3JWABANCNFSM4PBM6XSQ .
Risset should copy UDO code to a standard location, first looking at Csound's standard INCDIR environment variable, second using a standard location in the user's home directory configuration.
Name collisions should be managed by requiring the user to rename a colliding UDO or filename, and encouraging the use of a pseudo-namespace filename and UDO prefix, e.g. "my_udo" in "my_udo.csd."