[Csnd] Include UDOs within UDOs: what's the etickette
Date | 2020-08-06 18:25 |
From | "Jeanette C." |
Subject | [Csnd] Include UDOs within UDOs: what's the etickette |
Hey hey, in my current project I have a lot of recurring code, which in a software llibrary I would normally encapsulate into a separate function. I can encapsulate that code into a UDO (maybe only for internal use). My question is: what's the feeling/verdict/advice on this method regarding UDO collections/libraries for release? So far I have shied away from it, because it will require that the internal opcodes are included in the Csound file, not sure if they necessarily have to be included before the "higher level" UDOs in the source code. It somehow - irrationally - felt awkward. Could you give me some thoughts on this, please? Best wishes, Jeanette -- * Website: http://juliencoder.de - for summer is a state of sound * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g * SoundCloud: https://soundcloud.com/jeanette_c * Twitter: https://twitter.com/jeanette_c_s * Audiobombs: https://www.audiobombs.com/users/jeanette_c * GitHub: https://github.com/jeanette-c Top down, on the strip Lookin' in the mirror I'm checkin' out my lipstick <3 (Britney Spears) 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 |
Date | 2020-08-07 10:27 |
From | thorin kerr |
Subject | Re: [Csnd] Include UDOs within UDOs: what's the etickette |
Hi Jeanette, I'm not entirely sure I catch your meaning. I notice you tend to put individual UDO's in their own file. Are you concerned with including UDO's from separate files into other UDO's? My library uses lots of interdependent embedded UDO's. In fact, the more UDO's, the more higher-level ideas you come up with to use them. Except of course it can get very messy. Something I don't do - which you do really well - is use a pseudo-namespaces (e.g. 'm_scene_ ... ') to ensure there aren't name clashes. It's a good policy, although it does get a little combersom if your library contains lots of other top level things like globals and tables. In short... I'm not sure I've contributed anything useful to this conversation except to say a convention for this kind of thing would be useful. Thorin On Fri, 7 Aug. 2020, 3:24 am Jeanette C., <julien@mail.upb.de> wrote: Hey hey, |
Date | 2020-08-07 17:13 |
From | "Jeanette C." |
Subject | Re: [Csnd] Include UDOs within UDOs: what's the etickette |
Hi Thorin! Aug 7 2020, thorin kerr has written: ... > My library uses lots of interdependent embedded UDO's. In fact, the more > UDO's, the more higher-level ideas you come up with to use them. Thanks, that was exactly my concern. Making UDOs interdependent. I have already encapsulated my code and will now edit the other UDOs accordingly. This will make a lot of things easier. ... > Except of course it can get very messy. Something I don't do - which you do > really well - is use a pseudo-namespaces (e.g. 'm_scene_ ... ') Thanks. Naming UDOs is one thing, but it was Steven who unlocked the real power for me wiith hirarchical channel names. They allow for a fantastic amount of power and clarity. ... > In short... I'm not sure I've contributed anything useful to this > conversation except to say a convention for this kind of thing would be > useful. Your response definitely boosted my confidence. I haven't found anything in a way of "guideline" or convention, but now we have something we might call "common practise". I think for a library or system interdependent UDOs can be made a little safer by supplied one include file for an orchestra including all UDOs and possibly a few macros or global constants for symbolic names to allow even more intuitive work. Best wishes and thanks, Jeanette -- * Website: http://juliencoder.de - for summer is a state of sound * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g * SoundCloud: https://soundcloud.com/jeanette_c * Twitter: https://twitter.com/jeanette_c_s * Audiobombs: https://www.audiobombs.com/users/jeanette_c * GitHub: https://github.com/jeanette-c you made me realize..not to compromise the fact that you and i should meet... <3 (Britney Spears) 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 |
Date | 2020-08-08 00:00 |
From | Kevin Welsh |
Subject | Re: [Csnd] Include UDOs within UDOs: what's the etickette |
Hello Jeanette! I also don't have a lot that's useful to contribute here, but I'll take a shot: > I think for a library or system interdependent UDOs can be made a little > safer by supplied one include file for an orchestra including all This is exactly what I do! I usually have something like "standards.inc.csd" that includes all of the other common includes needed for the project. I'll also suggest using ifndef and define as a way to ensure included files don't get duplicated. This way a lower level include file can still include the higher level"dependency" locally, so anyone looking at it will have a hint that this file requires another... even if the "standards" file already included it. I do something like this for each of my include files: #ifndef UNIQUE_FILE_FLAG #define UNIQUE_FILE_FLAG ## ... code goes here ... #endif So now if it's already been included, the unique macro is set, so the code won't ever appear again. On Fri, Aug 7, 2020 at 12:13 PM Jeanette C. <julien@mail.upb.de> wrote: Hi Thorin! |