diff options
Diffstat (limited to 'scripts/mtcspeak')
-rwxr-xr-x | scripts/mtcspeak | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/mtcspeak b/scripts/mtcspeak new file mode 100755 index 0000000..6ea6c27 --- /dev/null +++ b/scripts/mtcspeak | |||
@@ -0,0 +1,34 @@ | |||
1 | #!/usr/bin/perl -w -- | ||
2 | $|=1; # disable output buffering | ||
3 | use strict; | ||
4 | open (MTCSOURCE, "amidi --dump --port=hw:1,0,0|"); | ||
5 | open (STDOUT, "|espeak"); | ||
6 | my $hour=0; | ||
7 | my $min=0; | ||
8 | my $sec=0; | ||
9 | my $frame=0; | ||
10 | my $qframe=-1; | ||
11 | my $roundedframe; | ||
12 | while (<MTCSOURCE>) { | ||
13 | chomp($_); | ||
14 | if (/F0 7F (.*) 06 44 06 01 (.*) F7/) { | ||
15 | my @tc=split(' ',substr($_,21,17)); | ||
16 | $hour=hex("0x".$tc[0]) & 31; | ||
17 | $min=hex("0x".$tc[1]); | ||
18 | $sec=hex("0x".$tc[2]); | ||
19 | $frame=hex("0x".$tc[3]); | ||
20 | $qframe=hex("0x".$tc[4]); | ||
21 | $roundedframe=$frame; | ||
22 | if ($qframe>=50) { | ||
23 | $roundedframe++; | ||
24 | } | ||
25 | if ($hour>0) { | ||
26 | print "$hour hours $min minutes $sec seconds $roundedframe frames\r\n"; | ||
27 | } | ||
28 | else | ||
29 | { | ||
30 | print "$min minutes $sec seconds $roundedframe frames\r\n"; | ||
31 | } | ||
32 | } | ||
33 | } | ||
34 | close (MTCSOURCE); | ||