#!/usr/bin/perl
#
# Programmer:    Craig Stuart Sapp <craig@ccrma.stanford.edu>
# Creation Date: Tue Oct  3 13:37:52 GMTST 2006
# Last Modified: Tue Oct  3 13:37:55 GMTST 2006
# Filename:      makemeasurelabels
# Syntax:        perl 5
#
# Description:   convert incremental counter in sv layers into measures:beats
#

use strict;

die "Usage: meter pickup file\n" if @ARGV != 3;

my $meter  = $ARGV[0];
my $pickup = $ARGV[1];
my $file   = $ARGV[2];


my $counter;
my $line;
my $measure;
my $beat;
my $time;
my $frac;

open (FILE, $file) || die "Cannot open file $file";

while ($line = <FILE>) {
   if ($line =~ /^\s*([0-9\.\+-]+)\s+(\d+)/) {
      $time = $1;
      $counter = $2;
      $counter = $counter - $pickup;
      if ($counter < 1) {
         $measure = 0;
         $beat = $meter + $counter;
      } else {
         $measure = int(($counter - 1) / $meter) + 1;
         $beat = $counter - $meter * $measure + $meter;
      }

      print "$time\t$measure:$beat\n";
   }
}

close FILE;

