| this was not exactly correct. there was still a small gap of size ihop. It must be (ifftsize+2*ihop)/sr instead of (ifftsize+ihop)/sr
> On 18 Feb 2016, at 16:06, Victor Lazzarini wrote:
>
> Thanks, that needs to go there somewhere.
> ========================
> Dr Victor Lazzarini
> Dean of Arts, Celtic Studies and Philosophy,
> Maynooth University,
> Maynooth, Co Kildare, Ireland
> Tel: 00 353 7086936
> Fax: 00 353 1 7086952
>
>> On 18 Feb 2016, at 15:00, Karin Daum wrote:
>>
>> this works, however the duration (p3) has to be extended by (ifftsize+ihop)/sr so in my case the trigger has to be changed from:
>>
>> event_i "i",2,giBegin,giEnd,giVolume,giPan,itablen,ipnt,2
>>
>> to
>>
>> event_i "i",2,giBegin,giEnd+(gifftsize+gihop)/sr,giVolume,giPan,itablen,ipnt,2
>>
>> I think, this may be worth mentioning in the manual
>>
>> cheers,
>>
>> karin
>>
>>> On 17 Feb 2016, at 21:12, Victor Lazzarini wrote:
>>>
>>> yes, that is it.
>>>
>>> Victor Lazzarini
>>> Dean of Arts, Celtic Studies, and Philosophy
>>> Maynooth University
>>> Ireland
>>>
>>>> On 17 Feb 2016, at 18:55, Karin Daum wrote:
>>>>
>>>> I guess I know what you mean: pvsanal instead pvstanal
>>>>
>>>>> On 17 Feb 2016, at 19:10, Victor Lazzarini wrote:
>>>>>
>>>>> you can also use a table reader and pvsanal.
>>>>>
>>>>> Victor Lazzarini
>>>>> Dean of Arts, Celtic Studies, and Philosophy
>>>>> Maynooth University
>>>>> Ireland
>>>>>
>>>>>> On 17 Feb 2016, at 18:09, Karin Daum wrote:
>>>>>>
>>>>>> this was the only thing I could thing of but I didn’t find it very elegant
>>>>>> I'm just try another thing because according to the manual switching of tables should be possible at k-time, i.e. using an instrument which handles a word instead of the phonemes of it.
>>>>>> If this will work then I can say: well, there is always a tiny gap before a word starts :)
>>>>>>> On 17 Feb 2016, at 18:59, Victor Lazzarini wrote:
>>>>>>>
>>>>>>> What about padding the beginning and end of the table with zeros to avoid that?
>>>>>>>
>>>>>>> Victor Lazzarini
>>>>>>> Dean of Arts, Celtic Studies, and Philosophy
>>>>>>> Maynooth University
>>>>>>> Ireland
>>>>>>>
>>>>>>>> On 17 Feb 2016, at 17:11, Karin Daum wrote:
>>>>>>>>
>>>>>>>> latency may not be a problem in my case but what is a problem for me is the fact that pvstanal cuts off ifftsize+ihop samples from the table at the beginning and also cuts about ifftsize/2 at the end of the table. This is a real problem in my case at least with the current algorithm of generating the text to be spoken at i-time and launching triggers to the instrument which finally outputs the sound. For each phoneme to be spoken a trigger is generated of the kind
>>>>>>>>
>>>>>>>> event_i "i",22,giBegin,giEnd,giVolume,giPan,itablen,ipnt,1
>>>>>>>>
>>>>>>>> and the instrument is (just for testing pvstanal):
>>>>>>>>
>>>>>>>> instr 22
>>>>>>>> kvol = p4
>>>>>>>> kpan = p5
>>>>>>>> kcnt init 0
>>>>>>>> if p8==1 then
>>>>>>>>
>>>>>>>> ; get table for a vowel
>>>>>>>>
>>>>>>>> fsig pvstanal 1.,1.,1.,giVow[p7],0,0,0,gifftsize,gihop
>>>>>>>> elseif p8==2 then
>>>>>>>>
>>>>>>>> ; get table for a consonant
>>>>>>>>
>>>>>>>> fsig pvstanal 1.,1.,1.,giCons[p7],0,0,0,gifftsize,gihop
>>>>>>>> endif
>>>>>>>> asnd pvsynth fsig
>>>>>>>> outs asnd*kvol*kpan,asnd*kvol*(1-kpan)
>>>>>>>> endin
>>>>>>>>
>>>>>>>> for each phoneme a part is cut off at the beginning and at the end.
>>>>>>>>
>>>>>>>> the problem is that only at i-time I know everything about the text: I know the sentence, the words of the sentence, the syllables of the words, the vowels and consonants making up the words of this pseudo-language. It is here where I can control envelops of the individual words and of the sentence and its intonation in the way it would be in the underlying real language.
>>>>>>>>
>>>>>>>> is there a way to force pvstanal/pvsynth to output the full content of the tables?
>>>>>>>>
>>>>>>>> cheers,
>>>>>>>>
>>>>>>>> Karin
>>>>>>>>
>>>>>>>>> On 16 Feb 2016, at 15:47, Victor Lazzarini wrote:
>>>>>>>>>
>>>>>>>>> Btw the latency between input and output of pvsanal->pvsynth is equivalent to fftsize+hopsize.
>>>>>>>>> ========================
>>>>>>>>> Dr Victor Lazzarini
>>>>>>>>> Dean of Arts, Celtic Studies and Philosophy,
>>>>>>>>> Maynooth University,
>>>>>>>>> Maynooth, Co Kildare, Ireland
>>>>>>>>> Tel: 00 353 7086936
>>>>>>>>> Fax: 00 353 1 7086952
>>>>>>>>>
>>>>>>>>>> On 16 Feb 2016, at 14:40, Steven Yi wrote:
>>>>>>>>>>
>>>>>>>>>> Adding on to what Victor mentioned, once you have the fsig
>>>>>>>>>> representation of the audio, you could use pvswarp to do formant
>>>>>>>>>> shifting. Afterwards you can use pvsynth or pvsadsyn to resynthesize
>>>>>>>>>> the signal. So:
>>>>>>>>>>
>>>>>>>>>> audio-table -> pvstanal => pvswarp => pvsynth or pvsadsyn -> audio-signal
>>>>>>>>>>
>>>>>>>>>> Also, using streaming PV generally introduces a delay. I'm not sure it
>>>>>>>>>> will be much of a factor for your system but thought it worth noting.
>>>>>>>>>>
>>>>>>>>>> On Tue, Feb 16, 2016 at 8:49 AM, Victor Lazzarini
>>>>>>>>>> wrote:
>>>>>>>>>>> With streaming PV processing, fftsizes are indepedent from ksmps, so it is all taken care of. You can use pvstanal to read audio data from a
>>>>>>>>>>> table and produce an fsig, or you can read the table with an oscillator or table reader and then use pvsanal to convert it to an fsig. Not quite sure
>>>>>>>>>>> exactly how your scheme works, but you could potentially use it.
>>>>>>>>>>>
>>>>>>>>>>> For concatenating tables you could possibly use a table reader where you can change the source table during performance, for example
>>>>>>>>>>> http://csound.github.io/docs/manual/TableSelect.html
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ========================
>>>>>>>>>>> Dr Victor Lazzarini
>>>>>>>>>>> Dean of Arts, Celtic Studies and Philosophy,
>>>>>>>>>>> Maynooth University,
>>>>>>>>>>> Maynooth, Co Kildare, Ireland
>>>>>>>>>>> Tel: 00 353 7086936
>>>>>>>>>>> Fax: 00 353 1 7086952
>>>>>>>>>>>
>>>>>>>>>>>> On 16 Feb 2016, at 13:37, Karin Daum wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> for my first exercise "smalltalk" in Csound I've written a word and sentence generators for a pseudo-language based on statistics (probability distributions of syllables, correlation of # of syllables and # of phonemes, vowels, consonants, grouping of vowels and consonants...) extracted from German. Some hundred of (groups of) phonemes are stored in function tables. Currently each phoneme to be spoken triggers an instrument via the event_i opcode, e.g.:
>>>>>>>>>>>>
>>>>>>>>>>>> event_i "i",2,giBegin,giEnd,giVolume,giPan,itablen,ipnt,2
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> The code of the instrument is as follows:
>>>>>>>>>>>>
>>>>>>>>>>>> instr 2
>>>>>>>>>>>> kvol = p4
>>>>>>>>>>>> kpan = p5
>>>>>>>>>>>> kcnt init 0
>>>>>>>>>>>> if p8==1 then
>>>>>>>>>>>> kcnt +=ksmps
>>>>>>>>>>>> andx interp kcnt-1
>>>>>>>>>>>> asnd table andx,giVow[p7]
>>>>>>>>>>>> outs asnd*kvol*kpan,asnd*kvol*(1-kpan)
>>>>>>>>>>>> elseif p8==2 then
>>>>>>>>>>>> kcnt +=ksmps
>>>>>>>>>>>> andx interp kcnt-1
>>>>>>>>>>>> asnd table andx,giCons[p7]
>>>>>>>>>>>> outs asnd*kvol*kpan,asnd*kvol*(1-kpan)
>>>>>>>>>>>> endif
>>>>>>>>>>>> endin
>>>>>>>>>>>>
>>>>>>>>>>>> Now I want to implement intonation such that I can implement emotions or ask questions etc. This implies dynamically changing the frequencies of the formants of the voice depending on the effect I want to achieve. For this I need to use FFT (pvsanal.... ) I did not use it so far and I have to confess that I do not understand how this exactly works when looking at the examples.
>>>>>>>>>>>> 1. Does this work together with sound stored in function tables (ifftsize is much larger than ksmps )?
>>>>>>>>>>>> 2. Does this work together with my current scheme of outputting the individual phonemes which are in general short (50-100 ms) or do I have first to copy the series of phonemes making up the words and the phrase to a function table which will then contain e.g. the full sentence to be spoken?
>>>>>>>>>>>> 3. Is there a tool for concatenating function tables containing wav sound?
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks for any help.
>>>>>>>>>>>>
>>>>>>>>>>>> Karin
>>>>>>>>>>>>
>>>>>>>>>>>> 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
>>>>>>>>>>
>>>>>>>>>> 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
>>>>>>>>
>>>>>>>> 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
>>>>>>
>>>>>> 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
>>>>
>>>> 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
>>
>> 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
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 |