[Csnd-dev] Plugin opcodes, starting with py opcodes
Date | 2019-11-15 11:24 |
From | Francois PINOT |
Subject | [Csnd-dev] Plugin opcodes, starting with py opcodes |
Hello John, Victor and Steven, I just adapted successfully the py opcodes for Python3.x. After of suggestion from Victor, I made a plugin repository in my local csound repository with the following hierarchy: csound |____csound |____plugins | |____py |____manual |____... The plugins and the py repos have their own CMakeList.txt files referencing the csound repo to keep the bells and whistle of the current build system. This plugins repo could be the first step toward building the plugins apart from the core csound repo. If you agree with this idea, I can push on github.com/csound this plugins repo so that people can already test the py opcodes with Python3 without interfering with the current csound6.14 release. François |
Date | 2019-11-15 11:43 |
From | Rory Walsh |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
I think this sounds fantastic. On Fri, 15 Nov 2019 at 11:24, Francois PINOT <fggpinot@gmail.com> wrote:
|
Date | 2019-11-15 12:17 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
yes, I think it looks very good from my perspective, thanks a lot for this. ======================== Prof. Victor Lazzarini Maynooth University Ireland > On 15 Nov 2019, at 11:24, Francois PINOT |
Date | 2019-11-15 15:45 |
From | Steven Yi |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
Question: What is the csound/csound folder? Usually one has to use installed headers because of float-version.h being updated when installing. On Fri, Nov 15, 2019 at 7:17 AM Victor Lazzarini |
Date | 2019-11-15 15:51 |
From | Francois PINOT |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
The first csound is github.com/csound. The second one is the csound repo within github.com/csound. For example, in the CMakeLists.txt of the plugins repo we'll find something like this: if(APPLE) string(REGEX REPLACE "([^;]+)(;|$)" "include/\\1\\2" csheaders "${csheaders}") file(GLOB H_headers "${CMAKE_CURRENT_SOURCE_DIR}/../csound/H/*.h") set(libcsound_SRCS "${libcsound_SRCS};${csheaders};${H_headers};${CMAKE_CURRENT_BINARY_DIR}/include/float-version.h") endif() which allow us to reference the original CMake organisation François Le ven. 15 nov. 2019 à 16:45, Steven Yi <stevenyi@gmail.com> a écrit : Question: What is the csound/csound folder? Usually one has to use |
Date | 2019-11-15 16:06 |
From | Steven Yi |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
I'm not sure I understand why plugins would need to have access to Csound source? I would imagine they would only need headers and no linking required back to csound. Also, the above makes it sound like float-version.h is generated into the current build folder. I think I'm not seeing how this works. Also, is the csound/csound a git submodule? It might be good to coordinate with Eduardo's plugin repo too: https://github.com/csound-plugins/csound-plugins On Fri, Nov 15, 2019 at 10:52 AM Francois PINOT |
Date | 2019-11-15 17:30 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
I did not look at this but two things seem important: 1) plugins don't link to Csound, they should only need the public headers and exported functions from CSOUND. 2) Repos should FINDCsound() to locate a Csound installation for building. We provide this in the source code and repos such as csound-pd use it I would also think that having these means they will be have separate installation and release packages. Prof. Victor Lazzarini Maynooth University Ireland > On 15 Nov 2019, at 16:07, Steven Yi |
Date | 2019-11-15 19:20 |
From | Francois PINOT |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
I did it this way because I'm not a CMake guru and it was the easiest way for me to derive quickly my CMakeLists.txt files from the csound repo, because my purpose was mainly to port the py opcodes to Python3. The link to Eduardo's plugings repo is inspiring. So I will rework my CMakeLists.txt files in the sense exposed in your answers. The question is then, should we have a plugins repo in github.com/csound, including the "historical plugins" that have been inside Csound until now? If yes, then I'll push my plugins repo when it is ready with the correct CMakeFiles.txt François Le ven. 15 nov. 2019 à 18:31, Victor Lazzarini <Victor.Lazzarini@mu.ie> a écrit : I did not look at this but two things seem |
Date | 2019-11-15 20:08 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
Have a look at the CMakeLists.txt in csound-pd, it used FINDCsound.
I like the idea of the repos under the Csound
project
Prof. Victor Lazzarini
Maynooth University
Ireland
|
Date | 2019-11-15 20:22 |
From | Steven Yi |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
Yes, I like the idea of a plugin repo too under csound on Github. On Fri, Nov 15, 2019 at 3:08 PM Victor Lazzarini |
Date | 2019-11-15 21:17 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
If desired I can move the csound-plugins repo to the csound project. Eduardo On 15.11.19 21:22, Steven Yi wrote: > Yes, I like the idea of a plugin repo too under csound on Github. > > On Fri, Nov 15, 2019 at 3:08 PM Victor Lazzarini |
Date | 2019-11-15 22:06 |
From | Francois PINOT |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
That would be nice Eduardo. Thanks. François Le ven. 15 nov. 2019 à 22:17, Eduardo Moguillansky <eduardo.moguillansky@gmail.com> a écrit : If desired I can move the csound-plugins repo to the csound project. |
Date | 2019-11-15 22:33 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
That would require that we agree on how plugins are to be
documented. Should they be integrated in the manual? Should we use
the documentation system already implemented within this repo
(which uses mkdocs to generate the docs)? On 15.11.19 23:06, Francois PINOT
wrote:
|
Date | 2019-11-16 10:03 |
From | Francois PINOT |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
I see here two different topics: 1) Having a plugin repository under Csound in github, which seems to find agreement from a majority of devs 2) Reorganization of the manual, which is still under discussion in the community. For now, I created a plugins repository with the Python 3.x version of the py opcodes so that people can test them. This is a first step. Do you want me to put a link to your csound-plugins repo, which could be integrated when the community will find an agreement on the plugins documentation and the reorganization of the manual? François Le ven. 15 nov. 2019 à 23:34, Eduardo Moguillansky <eduardo.moguillansky@gmail.com> a écrit :
|
Date | 2019-11-16 11:22 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
If there is general consent, I will see how I can transfer the
repo to the csound project. To be procise, this does not mean
putting it inside the source tree. Plugins should have their own
build system and should only depend on the include files being
present. Regarding documentation, I think that plugin manpages should not
be integrated into the manual as long as it is in its current
docbook format. I would propose to use the documentation system
already in place (mkdocs). I can see how viable an automated
conversion from the docbook to a markdown based manual would be. On 16.11.19 11:03, Francois PINOT
wrote:
|
Date | 2019-11-16 11:27 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
Do you have developer access? If not, I can add you, just give me your user name. That's the simplest way to make this move. Prof. Victor Lazzarini Maynooth University Ireland > On 15 Nov 2019, at 21:17, Eduardo Moguillansky |
Date | 2019-11-16 11:28 |
From | Victor Lazzarini |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
That's fine. Simplest way is for us to grant you rights. Prof. Victor Lazzarini
Maynooth University
Ireland
|
Date | 2019-11-16 11:32 |
From | Rory Walsh |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
I think having a single plugin opcode repo on the Csund github domain is the best thing. It should have a CI/build system for automatically generating binaries for major systems. My plugin opcode repo, which uses Victor's plugin SDK, has an Azure pipeline that will build binaries for OSX, Windows and Linux. I've also tried out a new docs system called Docsify which I think is really nice. It's just a single JS file, that also includes the syntax highlighter. I hacked their example so that works a little better with Csound. All docs are written in MD. They render quite nicely I find. This doc system is really the most minimal one I've used, and I like it. Way fewer moving parts than any other systems I've encountered. But exporting to different formats might need some work. @Eduardo Moguillansky I just saw your latest post. I wrote an Azure pipeline for your repo too but as you know I couldn't get some of the opcodes to build due to 3rd party library issues. I've no problem with your repo moving over, but I think we should have a strict policy of forks and PRs when it comes to adding opcodes. That way we can be sure an opcode passes all build tests before merging it. Also, I'm not a fan of the mkdocs system, but I think that's a bigger question in general. There has been talk about doing some work on the docs. I'd rather we discuss this a little bit before we get stuck into using another doc system. What say you? On Sat, 16 Nov 2019 at 10:04, Francois PINOT <fggpinot@gmail.com> wrote:
|
Date | 2019-11-16 11:36 |
From | Francois PINOT |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
That's what I did after Victor's remarks: the plugins repo is in the Csound project (https://github.com/csound/plugins) but not in the source tree (https://github.com/csound/csound), and it has it's own build system (see py directory). If Victor gives you access rights, you can then push directly in this repo. François Le sam. 16 nov. 2019 à 12:22, Eduardo Moguillansky <eduardo.moguillansky@gmail.com> a écrit :
|
Date | 2019-11-16 14:12 |
From | Stephen Kyne |
Subject | Re: [Csnd-dev] Plugin opcodes, starting with py opcodes |
+1 on the build system/CI comment. This could be the basis of a future package manager so we should have all that stuff in place and building for every platform. Also agree on being strict about PRs for new opcodes, there should be a checklist to ensure there are no gaps in compatibility or quality e.g. no missing documentation.
The CMake files need to be generic and flexible enough to easily slot in new opcodes and deploy them afterwards. Possibly running some basic sanity tests after.
Stephen
From: Rory Walsh
I think having a single plugin opcode repo on the Csund github domain is the best thing. It should have a CI/build system for automatically generating binaries for major systems. My plugin opcode repo, which uses Victor's plugin SDK, has an Azure pipeline that will build binaries for OSX, Windows and Linux. I've also tried out a new docs system called Docsify which I think is really nice. It's just a single JS file, that also includes the syntax highlighter. I hacked their example so that works a little better with Csound. All docs are written in MD. They render quite nicely I find. This doc system is really the most minimal one I've used, and I like it. Way fewer moving parts than any other systems I've encountered. But exporting to different formats might need some work.
@Eduardo Moguillansky I just saw your latest post. I wrote an Azure pipeline for your repo too but as you know I couldn't get some of the opcodes to build due to 3rd party library issues. I've no problem with your repo moving over, but I think we should have a strict policy of forks and PRs when it comes to adding opcodes. That way we can be sure an opcode passes all build tests before merging it. Also, I'm not a fan of the mkdocs system, but I think that's a bigger question in general. There has been talk about doing some work on the docs. I'd rather we discuss this a little bit before we get stuck into using another doc system. What say you?
On Sat, 16 Nov 2019 at 10:04, Francois PINOT <fggpinot@gmail.com> wrote:
If desired I can move the csound-plugins repo to the csound project.
|