Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Must Play[] generate a graphic?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg16008] Re: Must Play[] generate a graphic?
  • From: Paul Abbott <paul at physics.uwa.edu.au>
  • Date: Sat, 20 Feb 1999 02:52:02 -0500
  • Organization: University of Western Australia
  • References: <7ag320$aia@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Ron Griffin wrote:
 
> When I use Play[] to generate a sound, I always get an accompanying
> graphic.  Because I'm using Play merely to alert me regarding my program's
> progress during a long looping procedure, the graphic has no value.
> Inspection of the grand Mathematica book provided me with no help.  Ideas?

Two suggestions:

[1] Why not use the built-in Message mechanism to keep you updated?  See
the Mathematica book: Section 2.8.21 or use the following button to go
to the on-line documentation:

Cell[TextData[{
  "See the ",
  StyleBox["Mathematica",
    FontSlant->"Italic"],
  " book: ",
  ButtonBox["Section 2.8.21",
    ButtonData:>{"2.8.21", "21.29"},
    ButtonStyle->"MainBookLink"],
  "."
}], "Text"]
  
If you look up Warning under the Option Inspector you will see that the
default behavior for "WarningAction" is to "Beep".  You can use this
feature to alert you to the progress of your loop.

If you add a message, say

	Progress::update = "Now at iteration `1`."; 

and then, from your loop call the message, (where i is the loop index), 

	Message[Progress::update, i]

a message will be printed out and you will also get a beep.

[2] An alternative approach is to use the status bar.  The following
short Notebook is to appear in the forthcoming issue of the Mathematica
Journal:

Notebook[{

Cell[CellGroupData[{
Cell["SetNotebookStatusLine", "Section"],

Cell[TextData[{
  "Theodore Gray (",
  ButtonBox["theodore at wolfram.com",
    ButtonData:>{
      URL[ "mailto:theodore at wolfram.com"], None},
    ButtonStyle->"Hyperlink"],
  ") writes: I find the ",
  Cell[BoxData[
      FormBox[
        StyleBox["SetNotebookStatusLine",
          "Input"], TraditionalForm]]],
  " packet a useful way to monitor progress. For example, to indicate
the \
state of progress of your calculation,"
}], "Text",
  CellTags->{
  "Theodore Gray", "SetNotebookStatusLine", "monitoring progress"}],

Cell[BoxData[
    \(TraditionalForm
    \`ShowStatus(status_) := 
      LinkWrite($ParentLink, 
        SetNotebookStatusLine(FrontEnd`EvaluationNotebook(), 
          ToString(status)))\)], "InputOnly"],

Cell[TextData[{
  "displays the current value of ",
  Cell[BoxData[
      FormBox[
        StyleBox["status",
          "InlineInput"], TraditionalForm]]],
  " in the status area (bottom left-hand corner of the Notebook).  It's
a lot \
faster than ",
  Cell[BoxData[
      FormBox[
        StyleBox["Print",
          "Input"], TraditionalForm]]],
  ", and it doesn't mess up your notebook with spurious output.  As long
as \
you're not sending more than a few packets per second it should not \
significantly effect the speed of your calculation.  Here is a simple \
example:"
}], "Text",
  CellTags->{"status area", "Print"}],

Cell[BoxData[
    FormBox[
      RowBox[{
        RowBox[{"Table", "[", 
          RowBox[{
            RowBox[{\(If[Mod[i, 10] == 0, ShowStatus[i]]\), ";", 
              RowBox[{"{", 
                RowBox[{"i", ",", 
                  TagBox[
                    RowBox[{"\[Zeta]", "(", 
                      TagBox["i",
                        (Editable -> True)], ")"}],
                    InterpretTemplate[ Zeta[ #]&]]}], "}"}]}], ",", 
            \({i, 500}\)}], "]"}], ";"}], TraditionalForm]],
"InputOnly"],

Cell[TextData[{
  "The ",
  Cell[BoxData[
      FormBox[
        StyleBox[\(If[]\),
          "Input"], TraditionalForm]]],
  " test causes the status to be set only every tenth time through the
loop, \
avoiding wasting time updating the status too frequently.  You may wish
to \
adjust this parameter depending on the calculation and the speed of your
\
computer."
}], "Text",
  CellTags->"If"]
}, Open  ]]
}
]

Cheers,
	Paul

____________________________________________________________________ 
Paul Abbott                                   Phone: +61-8-9380-2734
Department of Physics                           Fax: +61-8-9380-1014
The University of Western Australia           
Nedlands WA  6907                     mailto:paul at physics.uwa.edu.au 
AUSTRALIA                        http://www.physics.uwa.edu.au/~paul

            God IS a weakly left-handed dice player
____________________________________________________________________


  • Prev by Date: Re: Simple recursive assignment
  • Next by Date: Re: Fourier and FFT: Powers of 2 only?
  • Previous by thread: Must Play[] generate a graphic?
  • Next by thread: Re: Must Play[] generate a graphic?