+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-my $dt = 0.5;
-my $pattern = '';
-my $time = 0;
-my $staccato = 0.25;
-my @script = ();
-
-while(<DATA>)
-{
- chomp;
- my (@arg) = split /\s+/, $_;
- if($arg[0] eq 'time')
- {
- $time = $arg[1];
- }
- elsif($arg[0] eq 'bpm')
- {
- $dt = 60.0 / $arg[1];
- }
- elsif($arg[0] eq 'pattern')
- {
- $pattern = $arg[1];
- }
- elsif($arg[0] eq 'range')
- {
- my ($begin, $end) = ($arg[1], $arg[2]);
- my $n = $end - $begin;
- for(0..($n - 1))
- {
- my $char = substr $pattern, ($_ % length $pattern), 1;
- push @script, [$char, $time, 1], [$char, $time + $dt * (1 - $staccato), 0]
- unless $char eq '_';
- $time += $dt;
- }
- }
-}
-
-for(sort { $a->[0] cmp $b->[0] or $a->[1] <=> $b->[1] } @script)
-{
- printf "%s %f %d\n", @$_;
-}
-
-__DATA__
-time 0.200
-bpm 254
-pattern aaa_____aaa_____
-range 0 32
-pattern aaa_b__caaa_bccc
-range 32 160
-pattern aaa_b__caaa_b__c
-range 160 272
-pattern aaa_b__caaa_b_bb
-range 272 288
-pattern abc_c_c_c_c_c_c_
-range 288 352
-pattern aaa_b__caaa_bccc
-range 352 480
-pattern aaa_b__caaa_b__c
-range 480 592
-pattern aaa_b__caaa_b_bb
-range 592 608
-pattern aaa_b__caaa_b__c
-range 608 656
-pattern aaa_b__caaa_b_bb
-range 656 672
-pattern aaa_b__caaa_b__c
-range 672 720
-pattern aaa_b__caaa_b_bb
-range 720 736
-pattern aaa_b__caaa_b__c
-range 736 864
-pattern a_______________
-range 864 865