Csound Csound-dev Csound-tekno Search About

sound in function tables and pvsanal: does this work together?

Date2016-02-16 13:37
FromKarin Daum
Subjectsound in function tables and pvsanal: does this work together?
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

Date2016-02-16 13:49
FromVictor Lazzarini
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-16 14:40
FromSteven Yi
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-16 14:47
FromVictor Lazzarini
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-16 14:53
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
thanks, Victor, Steven

pvstanal (and the sequence Steven mentioned) is what I was looking for.

I think latency will not be an issue, since this is not a live performance.

kind regards,

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

Date2016-02-17 17:11
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-17 17:59
FromVictor Lazzarini
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-17 18:09
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-17 18:10
FromVictor Lazzarini
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-17 18:31
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
I still understand too little of Csound. Do you have an example how this works together?

> 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

Date2016-02-17 18:55
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-17 20:12
FromVictor Lazzarini
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-18 15:00
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-18 15:06
FromVictor Lazzarini
SubjectRe: sound in function tables and pvsanal: does this work together?
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

Date2016-02-18 15:16
FromKarin Daum
SubjectRe: sound in function tables and pvsanal: does this work together?
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