aboutsummaryrefslogtreecommitdiff
path: root/scripts/mtcspeak
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/mtcspeak')
-rwxr-xr-xscripts/mtcspeak34
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
3use strict;
4open (MTCSOURCE, "amidi --dump --port=hw:1,0,0|");
5open (STDOUT, "|espeak");
6my $hour=0;
7my $min=0;
8my $sec=0;
9my $frame=0;
10my $qframe=-1;
11my $roundedframe;
12while (<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}
34close (MTCSOURCE);