We also added Std.ftoi(x) to the language a while back (at 1.3.2.0).  It’s much 
clearer to read, and more obvious as to what’s going on and why, than the 
casting notation.  To round, just add 0.5 to x in the function arg.

so:

> Std.ftoi(0.4*myBuf.samples()+0.5) => myBuf.pos;

would set your play pointer to the 40% point in the sound buffer.

Prc

Sent from my iPhone

>   1. Conversion float to int using SndBuf (M?che?l ? Cath?in)
>  
> 40.0 => float pctPosInit;
> pctPosInit/100*myBuf.samples() => myBuf.pos;
> 
> 
> This throws the error argument types don't match.
> I'm not seeing how to convert the float to an int here.
> Thanks for your help!
> 
> Micheal
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: 
> <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200121/6b83ba90/attachment-0001.html>
> 
> ------------------------------
> 
> Message: 2
> Date: Tue, 21 Jan 2020 09:35:12 -0600
> From: Michael Heuer <heue...@gmail.com>
> To: ChucK Users Mailing List <chuck-users@lists.cs.princeton.edu>
> Subject: Re: [chuck-users] Conversion float to int using SndBuf
> Message-ID: <20797eb6-c4bc-4d00-91b9-b9d4e6568...@gmail.com>
> Content-Type: text/plain;    charset=utf-8
> 
> Hello M?che?l,
> 
> The ChucK language has a cast operator '$' which might come in handy in this 
> situation
> 
> (pctPosInit/100*myBuf.samples()) $ int => myBuf.pos;
> 
> Cheers,
> 
>   michael
> 
> 
>> On Jan 21, 2020, at 7:08 AM, M?che?l ? Cath?in <micheal.ocath...@gmail.com> 
>> wrote:
>> 
>> Hi
>> What is the best way to convert a float to int in the following please?
>> 
>> //I want to set myBuf.pos to a percentage of myBuf.samples()...
>> //Start playing at say 40% through the total number of samples.
>> 
>> 40.0 => float pctPosInit;
>> pctPosInit/100*myBuf.samples() => myBuf.pos;
>> 
>> 
>> This throws the error argument types don't match. 
>> I'm not seeing how to convert the float to an int here.
>> Thanks for your help!
>> 
>> Micheal
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users@lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
> 
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Tue, 21 Jan 2020 16:47:40 +0100
> From: ermina <erm...@studioplume.com>
> To: chuck-users@lists.cs.princeton.edu
> Subject: Re: [chuck-users] Conversion float to int using SndBuf
> Message-ID: <bc93ce0d-c4bd-0616-2f3c-15562f9ff...@studioplume.com>
> Content-Type: text/plain; charset=utf-8; format=flowed
> 
> Hi,
> 
> to convert a float to an int,
> you need to explicitly cast the value with
> 4.8 $ int => int foo;  // foo == 4
> (as written here: https://chuck.cs.princeton.edu/doc/language/oper.html)
> 
> So you would do something like
> pctPosInit $ int => int pctPosInitInt
> pctPosInitInt/100*myBuf.samples() => myBuf.pos;
> 
> . e
>> On 01/21/2020 02:08 PM, M?che?l ? Cath?in wrote:
>> Hi
>> What is the best way to convert a float to int in the following please?
>> 
>> //I want to set myBuf.pos to a percentage of myBuf.samples()...
>> //Start playing at say 40% through the total number of samples.
>> 
>> 40.0 => float pctPosInit;
>> pctPosInit/100*myBuf.samples() => myBuf.pos;
>> 
>> 
>> This throws the error argument types don't match.
>> I'm not seeing how to convert the float to an int here.
>> Thanks for your help!
>> 
>> Micheal
>> 
>> 
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users@lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>> 
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Tue, 21 Jan 2020 12:58:36 -0300
> From: Jean Menezes da Rocha <j...@menezesdarocha.info>
> To: ChucK Users Mailing List <chuck-users@lists.cs.princeton.edu>
> Subject: Re: [chuck-users] Conversion float to int using SndBuf
> Message-ID:
>    <CALRb6hJimYGzoV7tChQ=ugg5uvftkqnrrd3umn8nselpn0j...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> I would suggest that you call Math.round() before casting, as to prevent
> undesirable effects: notice that in the example sent by ermina, 4.8 rounds
> down to 4 when cast to int, which could cause miscalculations *depending on
> your use case*.
> The previous example would look something like this if we used Math.round():
> 
> Math.round(pctPosInit) $ int => int pctPosInitInt;
> pctPosInitInt/100*myBuf.samples() => myBuf.pos;
> 
> Best regards!
> 
>> On Tue, Jan 21, 2020 at 12:49 PM ermina <erm...@studioplume.com> wrote:
>> 
>> Hi,
>> 
>> to convert a float to an int,
>> you need to explicitly cast the value with
>> 4.8 $ int => int foo;  // foo == 4
>> (as written here: https://chuck.cs.princeton.edu/doc/language/oper.html)
>> 
>> So you would do something like
>> pctPosInit $ int => int pctPosInitInt
>> pctPosInitInt/100*myBuf.samples() => myBuf.pos;
>> 
>> . e
>>> On 01/21/2020 02:08 PM, M?che?l ? Cath?in wrote:
>>> Hi
>>> What is the best way to convert a float to int in the following please?
>>> 
>>> //I want to set myBuf.pos to a percentage of myBuf.samples()...
>>> //Start playing at say 40% through the total number of samples.
>>> 
>>> 40.0 => float pctPosInit;
>>> pctPosInit/100*myBuf.samples() => myBuf.pos;
>>> 
>>> 
>>> This throws the error argument types don't match.
>>> I'm not seeing how to convert the float to an int here.
>>> Thanks for your help!
>>> 
>>> Micheal
>>> 
>>> 
>>> _______________________________________________
>>> chuck-users mailing list
>>> chuck-users@lists.cs.princeton.edu
>>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>>> 
>> _______________________________________________
>> chuck-users mailing list
>> chuck-users@lists.cs.princeton.edu
>> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
>> 
> 
> 
> -- 
> Jean Menezes da Rocha
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: 
> <http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200121/b08c368e/attachment-0001.html>
> 
> ------------------------------
> 
> _______________________________________________
> chuck-users mailing list
> chuck-users@lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
> 
> 
> End of chuck-users Digest, Vol 173, Issue 10
> ********************************************

_______________________________________________
chuck-users mailing list
chuck-users@lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users

Reply via email to