view nykyaeka/musa.c @ 0:acb5694e93d9

Initial import.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 18 May 2010 04:25:44 +0300
parents
children
line wrap: on
line source

#define pwplib_volume 64
      /* to pwplib.h -- pwplib.setup[SOUND_VOLUME] */

#include "pwpdemo.h"

#include "musa.h"

struct
{
   int ord,patt,row;
   int tick,tempo;
}player;

void newnote()
{
   int c=0;
   
   for(;c<3;c++)
   {
      int note=pwpmusic[player.patt][c][player.row];

      if(note==253)
      {
         if(player.tempo==6)player.tempo=50;else
                            player.tempo=4;
      }else
      if(note==254)
         pwplib_sound_nv(c,0,0);
      else 
      if(note!=255)
         pwplib_sound_nv(c,(note-5)<<8,pwplib_volume);
   }
   player.row++;
   if(player.row==64)
   {
      player.row=0;
      player.ord++;
      player.patt=pwpmusic_order[player.ord];

      if(player.patt>128)
      {
         if(player.patt==255)player.ord=0;else
         {
            if(player.patt==254)player.tempo=5;
            player.ord++;
         }
         player.patt=pwpmusic_order[player.ord];
      }
   }
}

void playtick()
{
   if(player.tick==0)
      newnote();

   player.tick++;
   if(player.tick==player.tempo)
     player.tick=0;
}

void initplayer()
{
   player.row=player.ord;
   player.patt=pwpmusic_order[0];
   player.tick=0;
   player.tempo=6;
   pwplib_setplayer(playtick);
}


/* loopflush(); */