[Csnd] pvocex and pvocex2 programs
Date | 2008-11-22 19:07 |
From | Tobiah |
Subject | [Csnd] pvocex and pvocex2 programs |
I had been playing around with pvanal and the pvoc opcode. I found that by using pvsdiskin, and pvsynth, I could get startling quality in comparison. I found it difficult to tell the original sound (high quality voice) from the synthesized version. I had to tweak the pitch to convince myself that I hadn't made mistake, and was actually hearing the source. I wondered whether the programs pvocex and pvocex2 programs mentioned in the manual would give me the same quality over pvanal. Unfortunately, I couldn't get them to run. pvocex compiled cleanly, but when I run it (also the binary version) it only complains about the output file: sinewave:toby:pvocex2(1)> pvocex steel.wav steel.pvx Unable to open outfile steel.pvxsinewave:toby:pvocex2(1)> It's odd that there is no newline after the error message. I tried 'touching' the file name first, but got the same results. This is not a permission or space problem. pvocex2 did not compile cleanly (and the binary seems to be missing) but I was able to coerce it into compiling. Here is how it went: pvoc.cpp:40: error: new declaration ‘long int round(double)’ /usr/include/bits/mathcalls.h:310: error: ambiguates old declaration ‘double round(double)’ I edit pvoc.cpp and change to 'double round(double)'. pvoc.cpp:40: error: ‘double round(double)’ was declared ‘extern’ and later ‘static’ /usr/include/bits/mathcalls.h:310: error: previous declaration of ‘double round(double)’ I change to 'extern double round(double)'. I have know idea what I'm doing mind you. Just trying to appease the compiler. pvocex2.cpp:140: error: ‘::main’ must return ‘int’ make: *** [pvocex2.o] Error 1 So I change it to 'int main()' riffwav.c:(.text+0x0): multiple definition of `round' pvoc.o:pvoc.cpp:(.text+0x0): first defined here collect2: ld returned 1 exit status make: *** [pvocex2] Error 1 So I comment out the definition in riffwav.c Now I get an executable, but have: riffwav.c: In function ‘wavWriteFloatFrames’: riffwav.c:912: warning: incompatible implicit declaration of built-in function ‘round’ Whoops, that doesn't sound great. But I run it: pvocex2 steel2.wav steel2.pvx Outfile name has unrecognized extension.sinewave:toby:pvocex2(1)> Same missing newline. Thanks for any help. Toby |
Date | 2008-11-22 19:24 |
From | jpff@cs.bath.ac.uk |
Subject | [Csnd] Re: pvocex and pvocex2 programs |
I did not understand > pvoc.cpp:40: error: new declaration long int round(double) > /usr/include/bits/mathcalls.h:310: error: ambiguates old declaration > double round(double) > I do not have a pvoc.cpp file in my tree. Where did nyou get it? What am I missing? What is the pvocex program? ==John |
Date | 2008-11-22 19:44 |
From | Tobiah |
Subject | [Csnd] Re: Re: pvocex and pvocex2 programs |
jpff@cs.bath.ac.uk wrote: > I did not understand > >> pvoc.cpp:40: error: new declaration ‘long int round(double)’ >> /usr/include/bits/mathcalls.h:310: error: ambiguates old declaration >> ‘double round(double)’ >> > > I do not have a pvoc.cpp file in my tree. Where did nyou get it? What am > I missing? What is the pvocex program? > Sorry. There is a section in the manual: http://www.csounds.com/manual/html/SpectralRealTime.html That points the user to: http://www.cs.bath.ac.uk/~jpff/NOS-DREAM/researchdev/pvocex/pvocex.html This is the page from which I downloaded the source for the programs. Now, I noticed that I can use pvsfwrite to create a .pvx file for subsequent use as fodder for another orchestra using the pvs* opcodes. This may be a workaround. I'm able to change pitch of sounds using pvsanal, and pvsynth, but that won't give me access to time stretch unless I miss my guess. Other than using pvsfwrite and two orchestras, is there a better way to do this other than with the seemingly inferior pvanal, or the programs pvocex and pvocex2 which I am unable to get working? Thanks, Tobiah |
Date | 2008-11-22 19:57 |
From | Richard Dobson |
Subject | [Csnd] Re: Re: pvocex and pvocex2 programs |
These are my original PVOC_EX demo programs from my PVOC_EX web page. pvocex is a straight port of CARL pvoc, pvocex2 a modified C++wrapped version handling stereo sources. Totally unrelated to Csound except inasmuch as they employ the file format. Probably best discussed offlist at this stage, to avoid any suggestion they are part of Csound. The programs probably need some updating! Richard Dobson jpff@cs.bath.ac.uk wrote: > I did not understand > >> pvoc.cpp:40: error: new declaration ‘long int round(double)’ >> /usr/include/bits/mathcalls.h:310: error: ambiguates old declaration >> ‘double round(double)’ >> > > I do not have a pvoc.cpp file in my tree. Where did nyou get it? What am > I missing? What is the pvocex program? > |
Date | 2008-11-22 20:06 |
From | jpff@cs.bath.ac.uk |
Subject | [Csnd] Re: Re: Re: pvocex and pvocex2 programs |
Still confused; I do not see a file pvoc.cpp in the pvocex_src01.zip file Thsi code is rather old (May 2000), and it does not surprise me that it does not run when compiled on a Linux machine; but perhaps yu ned to wait fror Richard Dobson to reply > jpff@cs.bath.ac.uk wrote: >> I did not understand >> >>> pvoc.cpp:40: error: new declaration long int round(double) >>> /usr/include/bits/mathcalls.h:310: error: ambiguates old declaration >>> double round(double) >>> >> >> I do not have a pvoc.cpp file in my tree. Where did nyou get it? What >> am >> I missing? What is the pvocex program? >> > > Sorry. > > There is a section in the manual: > > http://www.csounds.com/manual/html/SpectralRealTime.html > > That points the user to: > > http://www.cs.bath.ac.uk/~jpff/NOS-DREAM/researchdev/pvocex/pvocex.html > > This is the page from which I downloaded the source for the programs. > > Now, I noticed that I can use pvsfwrite to create a .pvx file for > subsequent use as fodder for another orchestra using the pvs* opcodes. > This may be a workaround. I'm able to change pitch of sounds using > pvsanal, and pvsynth, but that won't give me access to time stretch > unless I miss my guess. Other than using pvsfwrite and two orchestras, > is there a better way to do this other than with the seemingly inferior > pvanal, or the programs pvocex and pvocex2 which I am unable to get > working? > > Thanks, > > Tobiah > > > Send bugs reports to this list. > To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe > csound" > > > |
Date | 2008-11-22 20:14 |
From | jpff@cs.bath.ac.uk |
Subject | [Csnd] Re: Re: Re: Re: pvocex and pvocex2 programs |
> Still confused; I do not see a file pvoc.cpp in the > pvocex_src01.zip file > > I thought this code was superceded by pvanal. I think I nissed some earlier mail, but what is wrong with pvanal? It is that that shoudl be fixed ==John |
Date | 2008-11-22 20:38 |
From | Richard Dobson |
Subject | [Csnd] Re: pvocex and pvocex2 programs |
Tobiah wrote: > I had been playing around with pvanal and the pvoc opcode. > > I found that by using pvsdiskin, and pvsynth, I could get > startling quality in comparison. I found it difficult to > tell the original sound (high quality voice) from the > synthesized version. I had to tweak the pitch to convince > myself that I hadn't made mistake, and was actually hearing > the source. > > I wondered whether the programs pvocex and pvocex2 programs > mentioned in the manual would give me the same quality over > pvanal. Unfortunately, I couldn't get them to run. > > pvocex compiled cleanly, but when I run it (also the binary version) > it only complains about the output file: > > sinewave:toby:pvocex2(1)> pvocex steel.wav steel.pvx > > Unable to open outfile steel.pvxsinewave:toby:pvocex2(1)> > It's odd that there is no newline after the error message. > I tried 'touching' the file name first, but got the same > results. This is not a permission or space problem. The pvocex command line is simply (without using any flags): pvocex insoundfile outanalfile.pvx I don't understand what your notation here means: sinewave:toby:pvocex2(1)> ostensibly this seems to be being appended to the outfile name, which is presumably not intended - it has no file extension apart from anything else. These programs do not read from stdin. They were basically written on a PC using the usual Microsoft tools, and then copied relatively indiscriminately to a Linux machine. I have done quite a lot to pvocex2 since then, not sure if it is tidy enough to publish yet. Can you email me offlist so we can continue to investigate? richarddobson@blueyonder.co.uk Richard |
Date | 2008-11-22 20:40 |
From | Tobiah |
Subject | [Csnd] Re: Re: Re: Re: Re: pvocex and pvocex2 programs |
> I thought this code was superceded by pvanal. I think I nissed some > earlier mail, but what is wrong with pvanal? It is that that shoudl be > fixed Well, I tried it again, and it works fine. I was never able to get convincing results with it in the past for some reason. I just ran it again, and got the same great results as with pvsanal. Sorry for the bother. I had simply come across better then ever results with pvsanal, and the PVS section of the manual pointed me to the pvocex and pvocex2 programs, so I figured that they use the same 'new and better' algorithms. Nevermind. pvanal seems to work fine now. |
Date | 2008-11-22 20:43 |
From | Richard Dobson |
Subject | [Csnd] Re: pvocex and pvocex2 programs |
Tobiah wrote: .. > Here is how it went: > > pvoc.cpp:40: error: new declaration ‘long int round(double)’ > /usr/include/bits/mathcalls.h:310: error: ambiguates old declaration > ‘double round(double)’ > > I edit pvoc.cpp and change to 'double round(double)'. This is an old problem between PC and unix - ANSI math.h (as done on Windows) does not define round() (one of many things added by gcc) so I had to roll my own. The simplest correction is to replace round() with lround(). It is intended to round the argument to an int, not a double. Looks like I omitted/forgot to make that change when I posted the sources. Richard Dobson |
Date | 2008-11-22 20:54 |
From | Richard Dobson |
Subject | [Csnd] Re: Re: Re: Re: Re: pvocex and pvocex2 programs |
There are two programs: pvocex, in C and pvocex2 in C++ (and which uses pvoc.cpp). The latter is in the archive pvocex2_src-0.11.tar.gz (I am up to v 0.15 here, with some more-than-slightly cumbersome experimental convolution code added). With regard to superceding, it's really the other way round - the CARL version of pvoc supercedes the old pvanal pvoc code (or rather, was added to it). The CARL code (as in pvocex) is the basis for the streaming framework. But these are ~not~ Csound programs, they should not be confused with the Csound pvanal utility, and are not meant to replace it. So this is not actually a Csound problem at all, just a problem between me, my code, and users thereof! But the idea remains that pvocex files created by either program can be read by the relevant streaming opcodes. Richard Dobson jpff@cs.bath.ac.uk wrote: >> Still confused; I do not see a file pvoc.cpp in the >> pvocex_src01.zip file >> >> > > I thought this code was superceded by pvanal. I think I nissed some > earlier mail, but what is wrong with pvanal? It is that that shoudl be > fixed > |
Date | 2008-11-23 02:20 |
From | DavidW |
Subject | [Csnd] Re: Re: Re: Re: Re: Re: pvocex and pvocex2 programs |
Hi Richard, all. Does anyone know of any work that uses these opcodes to do text-to- speech? David. On 23/11/2008, at 7:54 AM, Richard Dobson wrote: > There are two programs: pvocex, in C > and pvocex2 in C++ (and which uses pvoc.cpp). > > The latter is in the archive pvocex2_src-0.11.tar.gz > > (I am up to v 0.15 here, with some more-than-slightly cumbersome > experimental convolution code added). > > With regard to superceding, it's really the other way round - the > CARL version of pvoc supercedes the old pvanal pvoc code (or rather, > was added to it). The CARL code (as in pvocex) is the basis for the > streaming framework. But these are ~not~ Csound programs, they > should not be confused with the Csound pvanal utility, and are not > meant to replace it. So this is not actually a Csound problem at > all, just a problem between me, my code, and users thereof! > > But the idea remains that pvocex files created by either program can > be read by the relevant streaming opcodes. > > > Richard Dobson > > > > > jpff@cs.bath.ac.uk wrote: >>> Still confused; I do not see a file pvoc.cpp in the >>> pvocex_src01.zip file >>> >>> >> I thought this code was superceded by pvanal. I think I nissed some >> earlier mail, but what is wrong with pvanal? It is that that >> shoudl be >> fixed > > > > Send bugs reports to this list. > To unsubscribe, send email sympa@lists.bath.ac.uk with body > "unsubscribe csound" > ________________________________________________ David Worrall. - Experimental Polymedia: www.avatar.com.au - Education for Financial Independence: www.mindthemarkets.com.au Australian research affiliations: - Capital Markets Cooperative Research Centre: www.cmcrc.com - Sonic Communications Research Group: creative.canberra.edu.au/scrg - MARCS Auditory Laboratories: marcs.uws.edu.au |