Hi Joachim,

Following what I mentioned earlier, here's code for a UDO that will do
what are asking about:

	opcode ftmax,i,i

itablenum xin

ilen = ftlen(itablenum)

imax table 0, itablenum

icount = 1

loopStart:

itemp   table icount, itablenum

imax = (itemp > imax) ? itemp : imax

icount = icount + 1

if (icount < ilen) goto loopStart

xout	imax

	endop

steven

On Mon, Jul 7, 2008 at 12:22 PM, joachim heintz <jh@joachimheintz.de> wrote:
> Thanks to all for the suggestions. I'm just wondering the following:
> Each time csound displays a function table, it gives a message like
> "ftable 121: 16 points, max 2.670".
> So csound knows the maximum value.
> I think it would be useful to have an access to this value with an opcode
> like this
>
> imax            ftmax           ifn
>
> (Like ftlen, ftsr and so on.)
>
> What do you, Steven, and the other developers think about this?
>
>        joachim
>
>
>
> Am 06.07.2008 um 21:49 schrieb Steven Yi:
>
>> I'd say try using a loop; there's code with this ftreverse UDO to start
>> with:
>>
>> http://www.csounds.com/udo/displayOpcode.php?opcode_id=78
>>
>> Mixing the loop with David's code should yield something reusable. =)
>>
>> On Sun, Jul 6, 2008 at 12:27 PM, David Akbari <dakbari@gmail.com> wrote:
>>>
>>> Hi,
>>>
>>> This is preallocated for speed, and you may think of something better.
>>> What you might try is setting it up the table indexing using the
>>> looping opcodes inside of a UDO space. This implementation is reading
>>> each point individually, of course with 8 points in the table it's not
>>> such a problem but it will quickly prove inadequate with larger sized
>>> tables. I tried reading the table using the phasor to index it over
>>> time, but the results are not fast and if your ultimate implementation
>>> requires you to get the values "now" for realtime performance, this
>>> may not do. The extra bonus in here to answer your question is the use
>>> of Anthony Kozar's "max" opcode.
>>>
>>> <CsoundSynthesizer>
>>> <CsOptions>
>>> -m0 -odac -iadc -d -b128 -B256 -Mhw:2,0 -+rtaudio=alsa -+rtmidi=null
>>> </CsOptions>
>>> <CsInstruments>
>>>
>>> sr      =       44100
>>> ksmps   =       128
>>> nchnls  =       2
>>>
>>> giTab   ftgen   1, 0, 8, -2, 1, 5, 2, -4, -9, 8, 0, 4
>>>
>>> /*---   ---*/
>>>
>>>               instr   1
>>> ;kndx1  phasor  1/(ftlen(1))
>>> ;kndx1  =       kndx1 * ftlen(1)
>>>
>>> ktab1   table   1, 1
>>> ktab2   table   2, 1
>>> ktab3   table   3, 1
>>> ktab4   table   4, 1
>>> ktab5   table   5, 1
>>> ktab6   table   6, 1
>>> ktab7   table   7, 1
>>> ktab8   table   8, 1
>>>
>>> kmax    max     ktab1, ktab2, ktab3, ktab4, ktab5, ktab6, ktab7, ktab8
>>>
>>>       printk2 kmax
>>>
>>>               endin
>>>
>>> /*---   ---*/
>>> </CsInstruments>
>>> <CsScore>
>>> i1      0       100
>>>
>>> </CsScore>
>>> </CsoundSynthesizer>
>>>
>>> On Sun, Jul 6, 2008 at 1:58 PM, joachim heintz <jh@joachimheintz.de>
>>> wrote:
>>>>
>>>> Hello all -
>>>>
>>>> is there an opcode to get the maximum value of a function table? E.g.
>>>> for
>>>> the table
>>>> giTab   ftgen   0, 0, 8, -2, 1, 5, 2, -4, -9, 8, 0, 4
>>>> it should return 8.
>>>>
>>>> Thanks -
>>>>
>>>>       joachim
>>>>
>>>
>>>
>>> Send bugs reports to this list.
>>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>>> csound"
>>>
>>
>>
>> Send bugs reports to this list.
>> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
>> csound"
>
>
>
> Send bugs reports to this list.
> To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe
> csound"
>