Re: playTone duration in Arduino package

Cathy Zupke <[email protected]>
Newsgroups gmane.comp.gnu.octave.general
Message-ID <CAHSEGpc=1Xrh+pYG7KXpsyuseZs+62KKVzbEweMQ9qH7tnpThQ@mail.gmail.com>
John,

Thanks so much for the help.  I didn't appreciate that the code was
available to look at and modify.  I made the change and it works!

Is there a mechanism to report the bug/fix to the developers so that the
fix becomes official?

-Cathy


On Thu, Mar 11, 2021 at 4:39 AM JohnD <[email protected]> wrote:

>
>
> > -----Original Message-----
> > From: JohnD [mailto:[email protected]]
> > Sent: Thursday, March 11, 2021 12:21 AM
> > To: 'Cathy Zupke'
> > Cc: [email protected]
> > Subject: RE: playTone duration in Arduino package
> >
> >
> > >> playTone(a,'D10',440,1) %piezo speaker is attached to D10 and makes a
> > tone that never stops
> > >> playTone(a,'D10',300,1) %frequency changes but never stops
> > >> playTone(a,'D10',0,1) %sound stops
> > >> playTone(a,'D10',180,3) %makes a tone that never stops
> > >> playTone(a,'D10',440,0) %frequency changes but never stops
> > >> version   %I think this gives the version of octave
> >
> > > It is my understanding that the last parameter is supposed to be
> duration in
> > seconds. So I'd expect the tones to stop after that time has elapsed.
> >
> >
> >
> >
> > It looks good to me, so must be a bug in the code - the duration should
> be
> > passed to the Arduino tone function in the library code, so if its not
> turning
> > off, its acting like the duration its receiving is 0 that would play
> until the stop
> > is called.
> >
> >  I will have to hook up an Arduino and take a look.
>
>
> Found an obvious mistake in inst/@arduino/playTone.m. If you change the
> line
> if nargin >= 3
>
> to be
>
> if nargin < 4
>
> It then works for me.
>
> Diff format:
> --- a/inst/@arduino/playTone.m  Wed Mar 10 15:57:09 2021 -0500
> +++ b/inst/@arduino/playTone.m  Thu Mar 11 07:35:29 2021 -0500
> @@ -35,7 +35,7 @@
>    if nargin < 3
>      error ("@arduino.playTone: expected pin name and frequency");
>    endif
> -  if nargin >= 3
> +  if nargin < 4
>      duration = 0;
>    endif
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.