Add arrange of Year-Round Absorbed Curiosity
This commit is contained in:
parent
1f749b0cef
commit
90914ac95d
|
@ -0,0 +1,235 @@
|
||||||
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
|
use warnings;
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
=begin
|
||||||
|
Copyright (C) 2022 Job Bautista
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use lib '..';
|
||||||
|
use SoXMusicGen;
|
||||||
|
|
||||||
|
our @notes;
|
||||||
|
|
||||||
|
setTempo(161);
|
||||||
|
setDefaultSynthType("square", "square", "square", "square");
|
||||||
|
our $maxSynthChannels=4;
|
||||||
|
|
||||||
|
# intro
|
||||||
|
sub intro_verse2 {
|
||||||
|
sub common {
|
||||||
|
push @notes, (
|
||||||
|
"$ei:F4/F$_[1]/F2",
|
||||||
|
"$ei:G4/G$_[1]/C3",
|
||||||
|
"$ei:G#4/G#$_[2]/G#2",
|
||||||
|
"$ei:C5/C$_[1]/D#3",
|
||||||
|
"$ei:F$_[0]",
|
||||||
|
"$ei:D#5/D#$_[2]"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
common(2,$_[0],$_[1]);
|
||||||
|
push @notes, (
|
||||||
|
"$ei:G#2",
|
||||||
|
"$ei:D5/D$_[1]",
|
||||||
|
"$ei:A#2",
|
||||||
|
"$ei:A#4/A#$_[0]",
|
||||||
|
"$ei:C3",
|
||||||
|
"$si:F4/F3",
|
||||||
|
"$si:C5/C$_[1]",
|
||||||
|
"$qu:C#5/C#$_[1]/C#3",
|
||||||
|
"$ei:C5/C$_[1]/C3",
|
||||||
|
"$ei:C3"
|
||||||
|
);
|
||||||
|
common(3,$_[0],$_[1]);
|
||||||
|
push @notes, (
|
||||||
|
"$ei:C3",
|
||||||
|
"$ei:F5/F$_[1]/G#2",
|
||||||
|
"$ei:A#2",
|
||||||
|
"$ei:A#4/A#$_[0]",
|
||||||
|
"$ei:D#5/D#$_[1]/C3",
|
||||||
|
"$ei:G5/G$_[1]/D#3",
|
||||||
|
"$ei:E5/E$_[1]/E3",
|
||||||
|
"$ei:C#5/C#$_[1]/F3",
|
||||||
|
"$ei:A#4/A#$_[0]/G3",
|
||||||
|
"$ei:G4/G$_[0]/F3"
|
||||||
|
);
|
||||||
|
common(2,3,4);
|
||||||
|
push @notes, (
|
||||||
|
"$si:G#2",
|
||||||
|
"$si:G2",
|
||||||
|
"$ei:D5/D4/D#3",
|
||||||
|
"$ei:F2",
|
||||||
|
"$ei:A#4/A#3/C3",
|
||||||
|
"$si:C3",
|
||||||
|
"$si:F3",
|
||||||
|
"$si:F4/F3/E3",
|
||||||
|
"$si:C5/C3",
|
||||||
|
"$qu:C#5/C#4/C#3",
|
||||||
|
"$ei:C5/C4/C3",
|
||||||
|
"$ei:G#2"
|
||||||
|
);
|
||||||
|
common(2,3,4);
|
||||||
|
push @notes, (
|
||||||
|
"$si:G#2",
|
||||||
|
"$si:G2",
|
||||||
|
"$ei:F5/F4/D#3",
|
||||||
|
"$ei:F2",
|
||||||
|
"$ei:A#4/A#3/C3",
|
||||||
|
"$ei:D#5/D#4/C3",
|
||||||
|
"$ei:G5/G4/D#3",
|
||||||
|
"$dqu:E5/E4/E3"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
intro_verse2(4,5);
|
||||||
|
createSynths();
|
||||||
|
print "\n"; # non-loop ends
|
||||||
|
|
||||||
|
# loop starts
|
||||||
|
# verse 1
|
||||||
|
push @notes, ( "$si:C5/C4", "$si:E5/E4" );
|
||||||
|
sub verse1 {
|
||||||
|
sub verse1common {
|
||||||
|
for (iterate(1,2)) { push (@notes, "$ei:F5/F4/G#2/C#2"); silence("$ei"); };
|
||||||
|
push @notes, (
|
||||||
|
"$ei:D#5/D#4/A#2/D#2",
|
||||||
|
"$ei:F5/F4",
|
||||||
|
"$ei:C5/C4/A#2/D#2"
|
||||||
|
);
|
||||||
|
silence("$ei");
|
||||||
|
push @notes, (
|
||||||
|
"$ei:D#5/D#4/C3/F2",
|
||||||
|
"$ei:F5/F4",
|
||||||
|
"$ei:C5/C4/C3/F2"
|
||||||
|
);
|
||||||
|
silence("$ei");
|
||||||
|
push @notes, (
|
||||||
|
"$ei:D#5/D#4/A#2/D#2",
|
||||||
|
"$ei:F5/F4",
|
||||||
|
"$ei:C5/C4/A#2/D#2",
|
||||||
|
"$ei:D#5/D#4",
|
||||||
|
"$ei:G#2/C#2",
|
||||||
|
"$ei:F5/F4",
|
||||||
|
"$ei:G#2/C#2",
|
||||||
|
"$ei:G#5/G#4",
|
||||||
|
"$ei:D#5/D#4/A#2/D#2",
|
||||||
|
"$ei:F5/F4",
|
||||||
|
"$ei:C5/C4/A#2/D#2",
|
||||||
|
"$ei:D#5/D#4"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
verse1common(); push @notes, (
|
||||||
|
"$ei:F5/F4/C3/F2",
|
||||||
|
"$ei:D#5/D#4",
|
||||||
|
"$ei:C5/C4/C3/F2",
|
||||||
|
"$ei:A#4/A#3",
|
||||||
|
"$dqu:A4/A3",
|
||||||
|
|
||||||
|
"$si:C5/C4",
|
||||||
|
"$si:D#5/D#4"
|
||||||
|
);
|
||||||
|
verse1common(); push ( @notes, ".931:F5/F4" ); # half + eighth note
|
||||||
|
}
|
||||||
|
verse1();
|
||||||
|
push @notes, (
|
||||||
|
"$si:C5/C4",
|
||||||
|
"$si:C5/C4",
|
||||||
|
"$ei:D#5/D#4",
|
||||||
|
"$ei:C5/C4"
|
||||||
|
);
|
||||||
|
verse1();
|
||||||
|
silence("$ei");
|
||||||
|
|
||||||
|
# verse 2
|
||||||
|
push @notes, ( "$ei:A4/A3", "$ei:G4/G3" ); intro_verse2(3,4);
|
||||||
|
|
||||||
|
# verse 3
|
||||||
|
push @notes, ( "$si:A#4", "$si:C#5" );
|
||||||
|
sub verse3 {
|
||||||
|
sub verse3common {
|
||||||
|
push @notes, (
|
||||||
|
"$ei:D#5/B4/G#2/E2",
|
||||||
|
"$ei:C#5/A#4",
|
||||||
|
"$ei:D#5/B4/G#2/E2",
|
||||||
|
"$ei:F#5/D#5"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
verse3common(); push @notes, (
|
||||||
|
"$qu:D#5/B4/G#2/E2",
|
||||||
|
"$si:G#2/E2",
|
||||||
|
"$si:D5",
|
||||||
|
"$qu:D#5/G#4",
|
||||||
|
"$ei:C#5/F#4",
|
||||||
|
"$ei:D#5/G#4/A#2/F#2",
|
||||||
|
"$ei:G#5/B4",
|
||||||
|
"$ei:D#5/G#4/A#2/F#2",
|
||||||
|
"$qu:G#4",
|
||||||
|
"$ei:A#4",
|
||||||
|
"$dei:B4/G#2/D#2"
|
||||||
|
);
|
||||||
|
silence("$si"); push ( @notes, "$dei:C#5" );
|
||||||
|
silence("$si"); push ( @notes, "$dei:A#4/G#2/D#2" );
|
||||||
|
silence("$si"); push @notes, (
|
||||||
|
"$ei:F#4/G#2/D#2",
|
||||||
|
"$ei:D#4",
|
||||||
|
"$qu:G#4/D#4/F#2/C#2",
|
||||||
|
"$qu:D#5/G#4/F#2/C#2",
|
||||||
|
"$qu:C#5/G#4/F#2/C#2",
|
||||||
|
"$ei:F#5/A#4/F#2/C#2"
|
||||||
|
);
|
||||||
|
silence("$ei"); verse3common();
|
||||||
|
push @notes, (
|
||||||
|
"$ei:D#5/B4/G#2/E2",
|
||||||
|
"$ei:C#5/G#4",
|
||||||
|
"$ei:G#4/E4",
|
||||||
|
"$ei:A#4/F#4",
|
||||||
|
|
||||||
|
"$ei:A#2/F#2",
|
||||||
|
"$ei:C#5/G#4",
|
||||||
|
"$ei:D#5/A#4/A#2/F#2",
|
||||||
|
"$ei:G#5/D#5",
|
||||||
|
"$ei:D#5/B4/A#2/F#2",
|
||||||
|
"$qu:G#4",
|
||||||
|
"$ei:A#4",
|
||||||
|
"$qu:B4/G#2/D#2",
|
||||||
|
"$dei:C#5",
|
||||||
|
"$dei:B4",
|
||||||
|
"$ei:A#4",
|
||||||
|
"$ei:F#4/G#2/D#2",
|
||||||
|
"$ei:D#4"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
verse3(); push @notes, (
|
||||||
|
"$ha:G#4/G#3/F#2/C#2",
|
||||||
|
"$qu:A#4/A#3/F#2/C#2",
|
||||||
|
"$ei:F#4/F#3/F#2/C#2",
|
||||||
|
"$ei:A#4/A#3"
|
||||||
|
);
|
||||||
|
verse3(); push @notes, (
|
||||||
|
"$dha:G#4/G#3/F#2/C#2",
|
||||||
|
"$ei:F#4/F#3/F#2/C#2",
|
||||||
|
"$ei:A#4/A#3"
|
||||||
|
);
|
||||||
|
|
||||||
|
# ending the loop smoothly...
|
||||||
|
intro_verse2(3,4);
|
||||||
|
|
||||||
|
createSynths();
|
|
@ -0,0 +1,11 @@
|
||||||
|
___ __ __ __ __
|
||||||
|
\ / |__ /\ |__) __ |__) / \ | | |\ | | \
|
||||||
|
| |___ /~~\ | \ | \ \__/ \__/ | \| |__/
|
||||||
|
|
||||||
|
__ __ __ __ __ ___ __ __ __ __ __ ___
|
||||||
|
/\ |__) /__` / \ |__) |__) |__ | \ / ` | | |__) | / \ /__` | | \ /
|
||||||
|
/~~\ |__) .__/ \__/ | \ |__) |___ |__/ \__, \__/ | \ | \__/ .__/ | | |
|
||||||
|
|
||||||
|
Year-Round Absorbed Curiosity
|
||||||
|
Composed by ZUN for Yousei Daisensou: Touhou Sangetsusei
|
||||||
|
Arranged by Job Bautista
|
|
@ -0,0 +1,5 @@
|
||||||
|
#/bin/sh
|
||||||
|
./absorbed-curiosity.pl | tail -n +65 | xargs ../mysox.sh loop.wav
|
||||||
|
|
||||||
|
./absorbed-curiosity.pl | head -n +65 | xargs play
|
||||||
|
play loop.wav repeat $1
|
Reference in New Issue