//7 has graphics
#define X	330
#define Y	15

#define NUM_BEAMS	256

F64 beams_r[NUM_BEAMS],beams_é[NUM_BEAMS];

U0 DrawIt(CTask *,CDC *dc)
{
  I64 i;
  F64 r,x1,y1,x2,y2;
  dc->color=YELLOW;
  GrCircle(dc,X,Y,10);
  GrFloodFill(dc,X,Y,10);
  dc->color=BROWN;
  GrCircle(dc,X,Y,10);
  dc->color=YELLOW;
  for (i=0;i<NUM_BEAMS;i++) {
    r=125.0*((0.25*Beat+beams_r[i])%1.0);
    P2R(&x1,&y1,r     ,beams_é[i]);
    P2R(&x2,&y2,r+10.0,beams_é[i]);
    GrLine(dc,x1+X,y1+Y,x2+X,y2+Y);
  }
}

U0 Song()
{
  I64 i;
  CTask *task;
  SettingsPush; //See $LK,"SettingsPush",A="MN:SettingsPush"$
  Fs->text_attr=LTCYAN<<4+BLACK;
  Fs->draw_it=&DrawIt;
  Fs->task_end_cb=&SndTaskEndCB;
  MusicSettingsRst;
  music.tempo= 2.480;
  music.stacatto_factor= 0.902;
  for (i=0;i<NUM_BEAMS;i++) {
    beams_r[i]=Rand;
    beams_é[i]=2*ã*Rand;
  }
  try {
    task=PopUpViewPrint(
	  "$LK,"Numbers,6:25",A="BF:Numbers,6:25"$\n"
	  "$LK,"Psalms,31:16",A="BF:Psalms,31:16"$\n"
	  "$LK,"Psalms,67:1",A="BF:Psalms,67:1"$\n"
	  "$LK,"Psalms,80:3",A="BF:Psalms,80:3"$\n"
	  "$LK,"Psalms,80:19",A="BF:Psalms,80:19"$\n"
	  "$LK,"Psalms,119:135",A="BF:Psalms,119:135"$\n"
	  "$LK,"Daniel,9:17",A="BF:Daniel,9:17"$\n"
	  );
    TaskWait(task);
    SetWinHorz(Fs->win_left,Fs->win_right,task);
    SetWinVert(Fs->win_bottom+3,Fs->win_bottom+15,task);
    "$$BG+H,LTCYAN$$$$FG+H,BLACK$$";
    while (!ScanKey) {
      Play("2qG3eCB2hGqG3eCB2qG3A",
	    "Umm...\0God?\n\0\0\0Let\0Your\0\0\0\0");
      Play("CeBA2G3DqEeDCBA2qG3A",
	    "face\0shine\0on\0down\n\0on\0us,\0Your\0\0luck\0y\0\0peo\0");
      Play("eBA2h.G3qECAF",
	    "\0ple.\n\0\0Fath\0e\0r\0a\0");
      Play("FDAeEDqECAF",
	    "bove,\n\0\0\0I\0\0feel\0\0\0Your\0");
      Play("FDAeED",
	    "love.\n\0\0\0\0\0");
    }
  } catch
    PutExcept;
  SettingsPop;
}

Song;
