[Csnd] A Csound Instrument using poly to do ATS synthesis
Date | 2019-04-08 23:48 |
From | Oscar Pablo Di Liscia |
Subject | [Csnd] A Csound Instrument using poly to do ATS synthesis |
Attachments | ATSsinnoi_instrument.zip |
I share this instrument here in case someone wants to test, and experiment with ATS synthesis. The recent poly Opcode is really great and allow a lot of possibilities. Many thanks to Eduardo Moguillansky for this. Basically I've used the ATSread and ATSreadnz Opcodes to read deterministic and residual data from an ATS Analysis file and poly to use arrays of oscillators and band-pass filters feeded by noise to do the resynthesis. Using poly it works like a charm and the code is most compact. The instrument is simple, but may be expanded in several ways. IMHO, this is the best way in which the ATS synthesis should be done, because it allows an independent treatment of each partial or noise band in many ways. Any comment, advice or bug report will be most welcome. The Csound code is fully commented. The Zip file attached has the csound code (ATSsinnoi_instrument.csd) and the needed ATS files to perform the examples. Best Pablo -- Dr. Oscar Pablo Di Liscia Profesor Titular Director Programa de Investigación "Sistemas Temporales y Síntesis Espacial en el Arte Sonoro" http://stseas.web.unq.edu.ar/ Director Colección Editorial "Música y Ciencia" Escuela Universitaria de Artes Universidad Nacional de Quilmes Argentina 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 | 2019-04-09 03:16 |
From | Michael Gogins |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Looks very useful! Best, Mike On Tue, Apr 9, 2019, 10:48 Oscar Pablo Di Liscia <oscarpablodiliscia@gmail.com> wrote: I share this instrument here in case someone wants to test, and experiment |
Date | 2019-04-09 07:56 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
nice to see this used :-) would you mind sharing the compiled plugins, to put them at the github page for download for other windows users? saludos, eduardo On Di, Apr 9, 2019 at 4:16 AM, Michael Gogins |
Date | 2019-04-09 08:52 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
One thing to notice, to make the code more terse: arrays returned by poly do not need to be initialized. So instead of kAb[] init inb ;noise energy k-rate array kAbp[] init inb ;noise amplitude k-rate array aAbp[] init inb ;noise amplitude a-rate array ; read the noise energy values for the requested bands kAb[] poly inb, "ATSreadnz", ktimpnt, iatsfile, iNoiarray ; take the square root of the energy values (convert to amplitude) kAbp[] poly inb, "pow", kAb, 0.5 ; interpolate k-rate noise amplitude values aAbp[] poly inb, "interp", kAbp you can do simply do kAb[] poly inb, "ATSreadnz", ktimpnt, iatsfile, iNoiarray kAb poly inb, "pow", kAb, 0.5 ; reuse previous array, no [] aAbp[] poly inb, "interp", kAb And you can avoid the allocation of one of the arrays. All the arrays will be of correct size (inb) NB: this instrument is really just replicating the opcode "beadsynt". It is of course very nice to see this possible in pure csound. On Di, Apr 9, 2019 at 4:16 AM, Michael Gogins |
Date | 2019-04-09 10:16 |
From | Menno Knevel |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
hi, i just built Csound and the manual, but there is no opcode called "poly" nor is it documented. and while building the manual i got this error: Error: no ID for constraint linkend: "cpsfreqnn". -- Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html 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 | 2019-04-09 10:36 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
I replied earlier, but some emails don't seem to be getting through to the list Nice to see poly being used like this. Notice that you don't need to initialize the arrays to use them with poly, so code like this: kFreqs[] init ipars ;partials frequency k-rate array kAmps[] init ipars ;partials amplitude k-rate array aFreqs[] init ipars ;partials frequency a-rate array aAmps[] init ipars ;partials amplitude a-rate array ;read the partial's frequency and amplitude values kFreqs[], kAmps[] poly ipars, "ATSread", ktimpnt, iatsfile, iPararray ;scale the frequency of the data, if requested if(ifreq !=1) then kFreqs = kFreqs * ifreq endif ;interpolate the deterministic data aAmps[] poly ipars, "interp", kAmps aFreqs[] poly ipars, "interp", kFreqs ;synthesize the deterministic data adata[] poly ipars, "oscili", aAmps, aFreqs Can just be kFreqs[], kAmps[] poly ipars, "ATSread", ktimpnt, iatsfile, iPararray if(ifreq !=1) then kFreqs *= ifreq endif aAmps[] poly ipars, "interp", kAmps aFreqs[] poly ipars, "interp", kFreqs adata[] poly ipars, "oscili", aAmps, aFreqs Also notice that this instr is just a reproduction of the opcode "beadsynt", which already does all freq and amp interpolation, and can be used to resynthesize the residual part also. The thing which can be useful with this approach is to access the signal of every partial to do some processing before mixing all down (for example, to do spectral spatialization) poly is not a part of the csound distribution but lives here: https://csound-plugins.github.io/csound-plugins/ On 09.04.19 00:48, Oscar Pablo Di Liscia wrote: > I share this instrument here in case someone wants to test, and experiment > with ATS synthesis. > The recent poly Opcode is really great and allow a lot of possibilities. > Many thanks to Eduardo Moguillansky for this. > Basically I've used the ATSread and ATSreadnz Opcodes to read deterministic > and residual data from an ATS Analysis file and poly to use arrays of > oscillators > and band-pass filters feeded by noise to do the resynthesis. Using poly it works > like a charm and the code is most compact. > The instrument is simple, but may be expanded in several ways. > IMHO, this is the best way in which the ATS synthesis should be done, because it > allows an independent treatment of each partial or noise band in many ways. > Any comment, advice or bug report will be most welcome. The Csound > code is fully commented. > The Zip file attached has the csound code (ATSsinnoi_instrument.csd) > and the needed ATS files to perform the examples. > Best > Pablo > > -- > Dr. Oscar Pablo Di Liscia > Profesor Titular > Director Programa de Investigación "Sistemas Temporales y Síntesis > Espacial en el Arte Sonoro" > http://stseas.web.unq.edu.ar/ > Director Colección Editorial "Música y Ciencia" > Escuela Universitaria de Artes > Universidad Nacional de Quilmes > Argentina > > 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 |
Date | 2019-04-09 14:14 |
From | Oscar Pablo Di Liscia |
Subject | [Csnd] A Csound Instrument using poly to do ATS synthesis |
Yes, that's because the poly opcode is a plugin, not a csound built-in opcode. So, you need to compile and install it in the proper folder in order to use it. You can get its code, compilation directives and its documentation and examples here: Hope this helps. Best Pablo El martes, 9 de abril de 2019, Menno Knevel <magknevel@gmail.com> escribió: hi, -- Dr. Oscar Pablo Di Liscia Profesor Titular Director Programa de Investigación "Sistemas Temporales y Síntesis Espacial en el Arte Sonoro" http://stseas.web.unq.edu.ar/ Director Colección Editorial "Música y Ciencia" Escuela Universitaria de Artes Universidad Nacional de Quilmes Argentina 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 | 2019-04-09 20:14 |
From | Oscar Pablo Di Liscia |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Hi Eduardo: Thanks for your advice. The code looks now much more compact and neat. I always get scared when using arrays in Csound... :) I could not find the "beadsynth" opcode you mentioned, but I suppose that is something similar to the code I've found on the poly.csd example that you provide in the poly examples. Very pleased to learn that our opinions are coincident, as I already wrote in this thread: "IMHO, this is the best way in which the ATS synthesis should be done, because it allows an independent treatment of each partial or noise band in many ways." I will include in the documentation the warning that "poly" is a Csound plugin, as well as how to get it, so the users are awared. Best Pablo El mar., 9 abr. 2019 a las 6:36, Eduardo Moguillansky ( |
Date | 2019-04-09 20:44 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
https://csound.com/docs/manual/beadsynt.html On 09.04.19 21:14, Oscar Pablo Di Liscia wrote: > Hi Eduardo: > Thanks for your advice. The code looks now much more compact and neat. > I always get scared when using arrays in Csound... > :) > I could not find the "beadsynth" opcode you mentioned, but I suppose > that is something similar to the code I've found > on the poly.csd example that you provide in the poly examples. > Very pleased to learn that our opinions are coincident, as I already > wrote in this thread: > "IMHO, this is the best way in which the ATS synthesis should be done, > because it > allows an independent treatment of each partial or noise band in many ways." > I will include in the documentation the warning that "poly" is a > Csound plugin, as well as > how to get it, so the users are awared. > Best Pablo > > El mar., 9 abr. 2019 a las 6:36, Eduardo Moguillansky > ( |
Date | 2019-04-10 00:10 |
From | Oscar Pablo Di Liscia |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Eduardo: Ahhh...this is very new! It looks really excellent. Thanks, i will try it as well. BTW: My LAC (2013) Paper http://lac.linuxaudio.org/2013/papers/26.pdf My Examples on ATS in Csound (2014): http://floss.booktype.pro/csound/k-ats-resynthesis/ There I show examples and implementations on the use of the ATSread and ATSreadnz to do ATS-based synthesis (using oscillators, interpolated noise units or band-pass filters) from which I took the idea for the instrument I submitted. The basic source bibliography is fully presented there as well. Now, thanks to your excellent Opcodes, this may be accomplished in a much more ellegant and efficient way! Many thanks again. All the best. Pablo El martes, 9 de abril de 2019, Eduardo Moguillansky <eduardo.moguillansky@gmail.com> escribió: https://csound.com/docs/manual/beadsynt.html |
Date | 2019-04-11 00:57 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Attachments | ATSsinnoi_instrument2.csd |
beadsynt was developed to synthesize loris analysis files in
csound, but it can be used to synthesize anything. Here is a
version of your instrument were the deterministic part is
resynthesized via beadsynt. With beadsynt cpu usage is reduced to
1/3 of the pure poly version (poly is still used to calculate
frequencies and read values though)
notice that you need the latest version of csound-plugins, since poly was recently updated to support string arguments. eduardo On 10.04.19 01:10, Oscar Pablo Di
Liscia wrote:
|
Date | 2019-04-12 12:17 |
From | Menno Knevel |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Hi, another report :) i was able to install the csound-plugins from https://github.com/csound-plugins/csound-plugins, and using csound -z found the dict and poly opcodes. The cache opcodes that should have been part of libklib.so but are not present. This means that i was not able to run ATSsinnoi_instrument2.csd. Can you have a look if they install properly? I'm using Linux Mint. -- Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html 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 | 2019-04-12 13:29 |
From | Eduardo Moguillansky |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
I probably forgot to push those to github, try again now. The cache opcodes implement a global string cache to make it easy to pass strings to instruments via event or similar opcodes https://csound-plugins.github.io/csound-plugins/opcodes/cacheput.html On 12.04.19 13:17, Menno Knevel wrote: > Hi, > another report :) > > i was able to install the csound-plugins from > https://github.com/csound-plugins/csound-plugins, and using csound -z found > the dict and poly opcodes. The cache opcodes that should have been part of > libklib.so but are not present. This means that i was not able to run > ATSsinnoi_instrument2.csd. > > Can you have a look if they install properly? > I'm using Linux Mint. > > > > -- > Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html > > 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 |
Date | 2019-04-12 13:55 |
From | Menno Knevel |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
yes, much better, got it running now! This does need some studying, with all the new opcodes, but the sounding result is inspiring. Thanks! -- Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html 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 | 2019-04-15 20:06 |
From | Pablo Zoani Heffele |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Thanks for sharing Pablo! I am learning a lot.
Regards
De: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> en nombre de Oscar Pablo Di Liscia <oscarpablodiliscia@GMAIL.COM>
Enviado: lunes, 8 de abril de 2019 15:48 Para: CSOUND@LISTSERV.HEANET.IE Asunto: [Csnd] A Csound Instrument using poly to do ATS synthesis I share this instrument here in case someone wants to test, and experiment
with ATS synthesis. The recent poly Opcode is really great and allow a lot of possibilities. Many thanks to Eduardo Moguillansky for this. Basically I've used the ATSread and ATSreadnz Opcodes to read deterministic and residual data from an ATS Analysis file and poly to use arrays of oscillators and band-pass filters feeded by noise to do the resynthesis. Using poly it works like a charm and the code is most compact. The instrument is simple, but may be expanded in several ways. IMHO, this is the best way in which the ATS synthesis should be done, because it allows an independent treatment of each partial or noise band in many ways. Any comment, advice or bug report will be most welcome. The Csound code is fully commented. The Zip file attached has the csound code (ATSsinnoi_instrument.csd) and the needed ATS files to perform the examples. Best Pablo -- Dr. Oscar Pablo Di Liscia Profesor Titular Director Programa de Investigación "Sistemas Temporales y Síntesis Espacial en el Arte Sonoro" http://stseas.web.unq.edu.ar/ Director Colección Editorial "Música y Ciencia" Escuela Universitaria de Artes Universidad Nacional de Quilmes Argentina 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 | 2019-04-20 22:54 |
From | Oscar Pablo Di Liscia |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Great. Me too. :) Regards El lunes, 15 de abril de 2019, Pablo Zoani Heffele <pablozoani@hotmail.com> escribió:
-- Dr. Oscar Pablo Di Liscia Profesor Titular Director Programa de Investigación "Sistemas Temporales y Síntesis Espacial en el Arte Sonoro" http://stseas.web.unq.edu.ar/ Director Colección Editorial "Música y Ciencia" Escuela Universitaria de Artes Universidad Nacional de Quilmes Argentina 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 | 2019-09-15 20:09 |
From | Oscar Pablo Di Liscia |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Eduardo: yes, I will put the binaries ASAP in the github repository. However, because I suspect that in order to these work, must be compiled against the newest version of Csound, I'm not sure that will work for any Windows version. Anyway, using the proper header files and your Cmake file the compilation under Windows using Mingw is straightforward. Best Pablo El martes, 9 de abril de 2019, Eduardo Moguillansky <eduardo.moguillansky@gmail.com> escribió: nice to see this used :-) -- Dr. Oscar Pablo Di Liscia Profesor Titular Director Programa de Investigación "Sistemas Temporales y Síntesis Espacial en el Arte Sonoro" http://stseas.web.unq.edu.ar/ Director Colección Editorial "Música y Ciencia" Escuela Universitaria de Artes Universidad Nacional de Quilmes Argentina 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 | 2019-09-16 00:23 |
From | Oscar Pablo Di Liscia |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
Eduardo: I´m almost in travel now. I´ve made a small package including the Windows64 binary file for poly (poly.dll) and a readme file that explain which version of Csound and Mingw gcc were used to build it. You can download it here and put it where you find appropriate in your repository. https://www.dropbox.com/s/vh0f6itug7h44y9/poly.zip?dl=0 I´ve checked once again in my system the example that I submitted to this thread using this binary file and worked fine for me. Hope this is useful. Let me know if you find any problem. Best. El dom., 15 sept. 2019 a las 16:09, Oscar Pablo Di Liscia ( |
Date | 2019-09-16 00:54 |
From | Oscar Pablo Di Liscia |
Subject | Re: [Csnd] A Csound Instrument using poly to do ATS synthesis |
And at this link anyone interested can download the Csound code and the ATS files to try the examples with the improving of the code you suggested and the mention to the beadsynth opcode. https://www.dropbox.com/s/tls3t9os54m0wmj/ATSsinnoi_instrument.zip?dl=0 I am working on some other examples, but I don´t have them ready yet. When done, I will put all the stuff at a github repository. Best Pablo El dom., 15 sept. 2019 a las 20:23, Oscar Pablo Di Liscia ( |