Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2013

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

Search the Archive

Re: producing a noise

  • To: mathgroup at smc.vnet.net
  • Subject: [mg131669] Re: producing a noise
  • From: Francisco Gutierrez <fgutiers2002 at yahoo.com>
  • Date: Wed, 18 Sep 2013 06:28:44 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-outx@smc.vnet.net
  • Delivered-to: mathgroup-newsendx@smc.vnet.net
  • References: <20130916092722.C0A306A2D@smc.vnet.net>
  • Reply-to: Francisco Gutierrez <fgutiers2002 at yahoo.com>

This is a treat Alexei, many thanks! (and yes, the calculation has an iterator in it)
Francisco


________________________________

From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
To: mathgroup at smc.vnet.net 
Sent: Monday, September 16, 2013 4:27 AM
Subject: [mg131669] Re: producing a noise


Dear Group:
Suppose I am running a simulation, and go on to work on another issue. I would like Mathematica to produce a sound as soon as it ends (but not always, only when told so).
I imagine this is quite easy, but don't know how. Any ideas?
Thanks
Francisco

Hi, Francisco,

Below I am sending you one program that has a comparable functionality. This is a toy to teach a school pupil of the first classes to count. As the outcome they receive a sound signal, the one in the case of a correct answer different from that in the case of the incorrect one. In addition two short cartoons are played after a correct and an incorrect answers correspondingly. I am afraid that to view the program you will need to save the notebook with this code into some folder, and place two gif images or gif movies with the names (1) cataround.gif and (2) argue01.gif into this same folder.

Now to the point: the two sounds used in the program are kept in the form of the two functions g1[ ] and g2[ ]. It is done in the beginning of the program. You then apply the functions where you need. This may include the place where your calculation is finished. In my case they have been applied in the very end depending upon the correctness of the answer given. The functions g1 and g2 are stand alone ones. You may play them just by evaluation.

You did not write, what type of calculation do you do there. I can imagine that if your procedure has an iterator in it, (like, say, a Table or a loop) the sound may play as soon as the iterator achieves a certain value.

Find the program below. Have fun, Alexei

right := 0;
wrong := 0;
Clear[cat, dummy];
cat = Import[NotebookDirectory[] <> "cataround.gif"];
dummy = Import[NotebookDirectory[] <> "argue01.gif"];
DarkRed = RGBColor[0.9, 0, 0];



g1[] :=
 EmitSound[
   Sound[{SoundNote["E", 0.5], SoundNote["C", 0.5],
   SoundNote["E", 0.5], SoundNote["C", 0.5], SoundNote["F", 0.5],
   SoundNote["E", 0.5], SoundNote["D", 1]}]];
g2[] := EmitSound[
=
   Sound[{SoundNote["G", 0.2], SoundNote["G", 0.2],
     SoundNote[=
"G", 0.2], SoundNote["Eb", 7]}]];


sign = RandomChoice[{"+", "-"}]=
;
a = RandomInteger[{0, 100}];
b = If[sign == "+", RandomInteger[{0, 100 - a}],
   FromDigits[{RandomInteger[{0, IntegerDigits[a][[1]]}],
     RandomInteger[{0, IntegerDigits[a][[2]]}]}]];
countOK = 0;
lst = {};
c = "??";

Panel@Column[{
           Row[{    
             Dynamic@
      Button[Style[1, 30], lst = Append[lst, 1]; c = FromDigits[lst]],
      Dynamic@
      Button[Style[2, 30], lst = Append[lst, 2]; c = FromDigits[lst]],
           Dynamic@
      Button[Style[3, 30], lst =
 Append[lst, 3]; c = FromDigits[lst]],
              
    Dynamic@Button[Style[4, 30], lst = Append[lst, 4];
       c = FromDigits[lst]],
            
    Dynamic@Button[Style[5, 30], lst = Append[lst, 5];
       c = FromDigits[lst]],
       Dynamic@
      Button[Style[6, 30], lst = Append[lst, 6]; c = FromDigits[lst]],
             Dynamic@
    Button[Style[7, 30], lst = Append[lst, 7]; c = FromDigits[lst]], Dynamic@      But= ton[Style[8, 30], lst = Append[lst, 8]; c = FromDigits[lst]],
       Dynamic@Button[Style[9, 30], lst = Append[lst, 9];
       c = FromDigits[lst]],

    Dynamic@Button[Style[0, 30], lst = Append[lst, 0];
     c = FromDigits[lst]]
                                    }], "",
  Panel@Row[{Style[a, 28, Bold, DarkRed],
      Style[sign, 28, Bold, DarkRed], Style[b, 28, Bold, DarkRed],
      Style[" = ", 28 , Bold, DarkRed],
      Style[Dynamic[c], 28, Bold, DarkRed]}], Spacer[{10, 20}],  

   Button["OK", countOK++;

    If[countOK > 1, wrong++;
     mov = ListAnimate[dummy, AnimationRepetitions -> 1,
       AnimatorElements -> None]; g2[], If[sign == "+",

      If[c == a + b, right++;
       mov = ListAnimate[cat, AnimationRepetitions -> 1, AnimatorElements -> None]; g1[], wrong++;
       mov = ListAnimate[dummy, AnimationRepetitions -> 1,
         AnimatorElements -> None]; g2[]],
      If[c == a - b, right++; mov = ListAnimate[cat, AnimationRepetitions -> 1,
     AnimatorElements -> None]; g1[], wrong++;
       mov = ListAnimate[dummy, AnimationRepetitions -> 1,
         AnimatorElements -> None]; g2[]]
                          ]           ]               ] ,
   "",

   Dynamic[mov], "",

   Column[{
  Row[{Style["Richtig:", 20], Spacer[10],
       Style[Dynamic[right], 20, Bold, RGBColor[0, 0.8, 0]]}], "",
     Row[{Style["Falsch:", 20], Spacer[15],
       Style[Dynamic[wrong], 20, Bold, RGBColor[0.8, 0, 0]]}], "",
     Row[{Style["Wiefiel?", 20], Spacer[10], Style[Dynamic[right + wrong], 20]}]
     }, Alignment -> Center],
   "",

   Row[{
     Button[Style["Weiter", 16],
      SelectionMove[EvaluationNotebook[], All, EvaluationCell] ;
      SelectionMove[EvaluationNotebook[], Previous,
     Cell] SelectionEvaluate[EvaluationNotebook[]],
      ImageSize-> {100, 20}],
     Spacer[10],
     Button[Style["Aufh=F6ren", 16], NotebookClose[],
      ImageSize -> {100, 20}]
     }]
           }, Alignment -> Center]



(*   Here the program ends  *)


AAlexei BOULBITCH, Dr., habil.
IEE S.A.=0AZAEWeiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG

Office phone :  +352-2454-2566
Office fax:       +352-2454-3566
mobile phone:  +49 151 52 40 66 44

e-mail: alexei.boulbitch at iee.lu



  • Prev by Date: Re: very odd failure of Solve
  • Next by Date: Re: very odd failure of Solve
  • Previous by thread: Re: producing a noise
  • Next by thread: Re: NDSolve is using Solve?