Support stdin as a method to input notes
Added arrange of The Internationale as example for custom samples Pierrot of the Star-Spangled Banner as well for synths (incomplete)
This commit is contained in:
parent
90914ac95d
commit
a5f6a964de
|
@ -0,0 +1,34 @@
|
|||
$qu:G#3
|
||||
$qu:D#4/C4
|
||||
$qu:G#3
|
||||
$qu:D#4/C4
|
||||
$qu:C#4
|
||||
$qu:G#4/F4
|
||||
|
||||
$qu:C#4
|
||||
$qu:G#4/F4
|
||||
$qu:D#4
|
||||
$qu:C#4
|
||||
$qu:C4
|
||||
$qu:A#3
|
||||
$qu:G#3
|
||||
$qu:G3
|
||||
$qu:F3
|
||||
|
||||
$qu:D#3
|
||||
$qu:G#3
|
||||
$qu:D#4/C4
|
||||
$qu:G#3
|
||||
$qu:G4/D#4
|
||||
$qu:F4
|
||||
$qu:C5/G#4
|
||||
$qu:D#4
|
||||
$qu:A#4/G4
|
||||
|
||||
$qu:C#4
|
||||
$qu:G#4/F4
|
||||
$qu:A#3
|
||||
$qu:F4/C#4
|
||||
$qu:D#3
|
||||
$qu:A#3
|
||||
$qu:D#4
|
|
@ -0,0 +1,33 @@
|
|||
$qu:A#4/G4
|
||||
$qu:G#3
|
||||
$qu:C4
|
||||
$qu:D#4
|
||||
$qu:C4
|
||||
$qu:C#4
|
||||
$qu:F4
|
||||
$qu:G#4
|
||||
|
||||
$qu:C#4
|
||||
$qu:D#4
|
||||
$qu:C#4
|
||||
$qu:C4
|
||||
$qu:A#3
|
||||
$qu:G#3
|
||||
$qu:C4
|
||||
$qu:D#4
|
||||
|
||||
$qu:C4
|
||||
$qu:F4
|
||||
$qu:D#4
|
||||
$qu:C4
|
||||
$qu:A#3
|
||||
$qu:C#4
|
||||
$qu:F4
|
||||
$qu:G#4
|
||||
$qu:C#4
|
||||
|
||||
$qu:D#4
|
||||
$qu:G4
|
||||
$qu:A#4
|
||||
$qu:G4
|
||||
$fu:G#4/D#4
|
|
@ -0,0 +1,4 @@
|
|||
$qu:D#4
|
||||
$qu:A#4/F4
|
||||
$qu:D#4
|
||||
$qu:A#4/F4
|
|
@ -0,0 +1,2 @@
|
|||
$qu:D#4
|
||||
$qu:A#4/G4
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
(echo "\$qu:0";
|
||||
cat verse1 \
|
||||
verse2 \
|
||||
verse1 \
|
||||
verse3 ;
|
||||
echo "\$qu:0";
|
||||
cat dasg dasg dasg \
|
||||
dasg dasf verse5 \
|
||||
verse6 \
|
||||
verse7 \
|
||||
chorus/1 chorus/2 \
|
||||
) | ../stdin/samples.pl 100 4 2 ../piano/ff
|
|
@ -0,0 +1,7 @@
|
|||
$qu:G#3
|
||||
$qu:D#4
|
||||
$qu:C#4
|
||||
$qu:C4
|
||||
$qu:C#4
|
||||
$qu:C4
|
||||
$ha:A#3
|
|
@ -0,0 +1,7 @@
|
|||
$qu:G3
|
||||
$qu:D#4
|
||||
$qu:C#4
|
||||
$qu:A#3
|
||||
$qu:G#3
|
||||
$qu:C4
|
||||
$ha:D#4
|
|
@ -0,0 +1,7 @@
|
|||
$qu:D#4
|
||||
$qu:C#4
|
||||
$qu:G4
|
||||
$qu:D#4
|
||||
$qu:G#3
|
||||
$qu:D#4
|
||||
$qu:G#4
|
|
@ -0,0 +1,3 @@
|
|||
$qu:D#4
|
||||
$qu:D4
|
||||
$qu:C4
|
|
@ -0,0 +1,9 @@
|
|||
$qu:A#3
|
||||
$qu:D#3
|
||||
$qu:A#3
|
||||
$qu:D#4
|
||||
$qu:A#3
|
||||
$qu:G#3
|
||||
$qu:D#4/C4
|
||||
$qu:G#3
|
||||
$qu:D#4/C4
|
|
@ -0,0 +1,5 @@
|
|||
$qu:A#3
|
||||
$qu:G4/D#4
|
||||
$qu:A#3
|
||||
$qu:F4/D4
|
||||
$fu:G4/D#4
|
|
@ -0,0 +1,30 @@
|
|||
$dei:C6
|
||||
$si:A#5
|
||||
$ha:G#5
|
||||
$dqu:D#5
|
||||
$ei:C5
|
||||
$ha:F5
|
||||
$qu:C#5
|
||||
|
||||
$dei:A#5
|
||||
$si:G#5
|
||||
$ha:G5
|
||||
$qu:F5
|
||||
$qu:D#5/C#5
|
||||
1.8:D#5/C5
|
||||
|
||||
$qu:D#5/C#5
|
||||
$dqu:C6
|
||||
$ei:C6
|
||||
$qu:A#5
|
||||
$qu:D#5
|
||||
$ha:G#5
|
||||
$dqu:G5
|
||||
$ei:G5
|
||||
|
||||
$dqu:F5
|
||||
$ei:E5
|
||||
$qu:F5
|
||||
$qu:A#5
|
||||
$ha:A#5
|
||||
$qu:A#5
|
|
@ -0,0 +1,30 @@
|
|||
$dei:C7/C6
|
||||
$si:A#6/A#5
|
||||
$ha:G#6/G#5
|
||||
$dqu:D#6/D#5
|
||||
$ei:C6/C5
|
||||
$ha:F6/F5
|
||||
$qu:C#6/C#5
|
||||
|
||||
$dei:A#6/A#5
|
||||
$si:G#6/G#5
|
||||
$ha:G6/G5
|
||||
$qu:F6/F5
|
||||
$qu:D#6/D#5
|
||||
1.8:C7/C6
|
||||
|
||||
$qu:C7/C6
|
||||
$dqu:D#7/D#6
|
||||
$ei:D#7/D#6
|
||||
$qu:C#7/C#6
|
||||
$qu:C7/C6
|
||||
$qu:A#6/A#5
|
||||
$qu:C7/C6
|
||||
$dqu:C#7/C#6
|
||||
$ei:C#7/C#6
|
||||
|
||||
$dqu:C7/C6
|
||||
$ei:C7/C6
|
||||
$dqu:A#6/A#5
|
||||
$ei:A#6/A#5
|
||||
$fu:G#6/G#5
|
|
@ -0,0 +1,4 @@
|
|||
$ei:D#5
|
||||
$ei:D#5
|
||||
$ei:D5
|
||||
$ei:D#5
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
cat verse1 \
|
||||
verse2 \
|
||||
verse1 \
|
||||
verse3 \
|
||||
verse4 \
|
||||
dsdsdds verse5 \
|
||||
verse6/1 dsdsdds verse6/2 \
|
||||
verse7 \
|
||||
chorus/1 chorus/2 |
|
||||
../stdin/samples.pl 100 4 2 ../piano/ff
|
|
@ -0,0 +1,9 @@
|
|||
$qu:D#5
|
||||
$dqu:G#5/C5
|
||||
$ei:G5
|
||||
$ei:A#5
|
||||
$ei:G#5
|
||||
$ei:D#5
|
||||
$ei:C5
|
||||
$ha:F5
|
||||
$qu:C#5/A#4
|
|
@ -0,0 +1,9 @@
|
|||
$ei:C5
|
||||
$ei:F5
|
||||
$dqu:A#5/D#5
|
||||
$ei:G#5
|
||||
$ei:G5
|
||||
$ei:F5
|
||||
$ei:D#5
|
||||
$ei:C#5
|
||||
1.8:C5
|
|
@ -0,0 +1,7 @@
|
|||
$ei:A#5
|
||||
$ei:G#5
|
||||
$qu:G5/D#5
|
||||
$qu:A#5
|
||||
$qu:C#6/C#5
|
||||
$qu:G5/A#4
|
||||
1.8:G#5/C5
|
|
@ -0,0 +1,9 @@
|
|||
$dei:C6/D#5
|
||||
$si:A#5
|
||||
$dqu:G5
|
||||
$ei:G5
|
||||
$ei:F5
|
||||
$ei:G5
|
||||
$ei:G#5
|
||||
$ei:F5
|
||||
$ha:G5
|
|
@ -0,0 +1,7 @@
|
|||
$dqu:F5
|
||||
$ei:F5
|
||||
$dqu:A#5
|
||||
$ei:G#5
|
||||
$qu:G5/D#5
|
||||
$qu:D5
|
||||
$qu:D#5/C5
|
|
@ -0,0 +1,3 @@
|
|||
$qu:A#5
|
||||
$dqu:A#5/D#5
|
||||
$ei:G5
|
|
@ -0,0 +1,5 @@
|
|||
$ha:C6
|
||||
$ei:G#5
|
||||
$ei:F5
|
||||
$ei:G5
|
||||
$ei:G#5
|
|
@ -0,0 +1,5 @@
|
|||
$qu:G5
|
||||
$qu:A#5
|
||||
$qu:G#5
|
||||
$qu:F5
|
||||
1.8:D#5
|
|
@ -0,0 +1,16 @@
|
|||
$ha:C#2/F#1/C#3
|
||||
$ha:F#4/E4/C#4
|
||||
$ha:C#2/F#1/C#3
|
||||
$ha:F#4/E4/C#4
|
||||
$ha:B1/F1/B2
|
||||
$qu:F#4/B3/G#3
|
||||
$ei:F#3
|
||||
$ei:G#3
|
||||
$ei:A#1/F1/A#2/A#3
|
||||
$ei:F#3
|
||||
$ei:D#3
|
||||
$ei:A#3
|
||||
$ei:A1/F1/A2/A3
|
||||
$ei:F3
|
||||
$ei:G#1/E1/G#2/D3
|
||||
$ei:C3
|
|
@ -0,0 +1,33 @@
|
|||
$ei:G2/E2/G2/C#3/D3/G1
|
||||
$ei:D3/G1
|
||||
$ei:G2/E2/G2/C#3/G1
|
||||
$ei:D3/G1
|
||||
$ei:G2/E2/G2/C#3/G1
|
||||
$ei:D3/G1
|
||||
$ei:G2/E2/G2/D#3/G1
|
||||
$ei:E3/G1
|
||||
$ei:G#2/F2/G#2/D3/G#1
|
||||
$ei:D#3/G#1
|
||||
$ei:G#2/F2/G#2/F3/G#1
|
||||
$ei:F#3/G#1
|
||||
$ei:G#2/F2/G#2/G#3/G#1
|
||||
$ei:F3/G#1
|
||||
$ei:G#2/F2/G#2/F#3/G#1
|
||||
$ei:C4/G#1
|
||||
$ei:C3/F#2/C3/F#3/C2
|
||||
$ei:C4/C2
|
||||
$ei:C3/F#2/C3/D#4/C2
|
||||
$si:F4/C2
|
||||
$dei:C3/F#2/C3/F#4/C2
|
||||
$ei:C3/F#2/C3/D#4/C2
|
||||
$ei:C3/F#2/C3/C4/C2
|
||||
$ei:D#4/C2
|
||||
|
||||
$ei:C#3/G#2/C#3/F4/C#4/C#2
|
||||
$ei:G#4
|
||||
$ei:F4/C#4
|
||||
$ei:G#4
|
||||
$ei:C#3/G#2/C#3/F4/C#4
|
||||
$ei:C#3/G#2/C#3/F4/C#4
|
||||
$ei:C#3/G#2/C#3/F#4/D#4
|
||||
$ei:C#3/G#2/C#3/G#4/F4
|
|
@ -0,0 +1,15 @@
|
|||
$dqu:C#2/G#2/C#2/F#4/C#4/F#4
|
||||
$dqu:C#3/F#2/C#3/A4/F#4/A4
|
||||
$qu:C#2/F#2/C#2/C#5/A4/C#5
|
||||
$dqu:C2/F#2/C2/C5/A4/C5
|
||||
$dqu:C3/F#2/C3/A4/F$4/A4
|
||||
$qu:C2/F#2/C2/G#4/C#4/G#4
|
||||
$qu:B1/F#2/B1/B4/F4/B4
|
||||
$qu:B1/F2/B1/G#4/C#4/G#4
|
||||
$qu:B1/F2/B1/F4/B3/F4
|
||||
$qu:B1/F2/B1/C#4/G#3/C#4
|
||||
$ha:A#1/F2/A#1/F#4/A#3/F#4
|
||||
$ei:A1/F2/A1/F#4/A#3/F#4
|
||||
$ei:A2/F2/A2/D#4/D#4
|
||||
$ei:G#1/F2/G#1/C4/C4
|
||||
$ei:G#2/E2/G#2/G#3/G#3
|
|
@ -0,0 +1,2 @@
|
|||
$ei:G1/C#2/G1/A3/D#3/A3
|
||||
$ei:G2/C#2/G2/A#3/E3/A#3
|
|
@ -0,0 +1,2 @@
|
|||
$ei:G#1/D2/G#1/G#3/D3/G#3
|
||||
$ei:G#2/D2/G#2/A3/D#3/A3
|
|
@ -0,0 +1,2 @@
|
|||
$ei:G1/C#2/G1/G3/C#3/G3
|
||||
$ei:G2/C#2/G2/G#3/D3/G#3
|
|
@ -0,0 +1,18 @@
|
|||
$ei:G#1/D2/G#1/A#3/E3/A#3
|
||||
$ei:G#2/D2/G#2/B3/F3/B3
|
||||
$ei:C2/F#2/C2/C4/F#3/C4
|
||||
$ei:C3/F#2/C3/F#4/C4/F#4
|
||||
$ei:C2/F#2/C2/A4/D#4/A4
|
||||
$si:C3/F#2/C3/B4/F4/B4
|
||||
$dei:C2/F#2/C2/C5/F#4/C5
|
||||
$ei:C3/F#2/C3/A4/D#4/A4
|
||||
$ei:C2/F#2/C2/F#4/C#4/F#4
|
||||
$ei:C3/F#2/C3/A4/D#4/A4
|
||||
$ei:C#3/G#2/C#3/F4/C#4/F4
|
||||
$ei:C#3/G#2/C#3/C#5
|
||||
$ei:C#3/G#2/C#3/F4/C#4/F4
|
||||
$ei:C#3/G#2/C#3/C#5
|
||||
$ei:C#3/G#2/C#3/C#5/C#4/C#5
|
||||
$ei:C#3/G#2/C#3/B4/F4/B4
|
||||
$ei:C#3/G#2/C#3/A4/F#4/A4
|
||||
$ei:C#3/G#2/C#3/G#4/F4/G#4
|
|
@ -0,0 +1,15 @@
|
|||
$ei:G#3/B3/E2/A4
|
||||
$ei:G#3/E3/E2/G#4
|
||||
$ei:D2/E3/D2/F#4
|
||||
$ei:D2/F#2/D2/C#4
|
||||
$ei:A2/F#2/D2/B3
|
||||
$ei:A2/D3/D2/F#4
|
||||
$ei:F#3/D3/D2/C#4
|
||||
$ei:F#3/A3/D2/B3
|
||||
$ei:F#3/A3/D2/A3
|
||||
$ei:F#3/D3/D2/B3
|
||||
$ha:C#2/F2/C#2/G#3
|
||||
$ei:F3/C#3/C#2/G#3
|
||||
$ei:F3/G#3/C#2/A3
|
||||
$ei:F3/G#3/C#2/B3
|
||||
$ei:F3/C#3/C#2/C#4
|
|
@ -0,0 +1,7 @@
|
|||
$ei:F#2/A2/F#2/F#4
|
||||
$ei:F#2/A2/F#2/C#4
|
||||
$ei:C#3/F#3/F#2/F#4
|
||||
$ei:C#3/F#3/F#2/C#4
|
||||
$qu:A3/C#4/F#2/F#4
|
||||
$qu:A3/C#4/F#2/C#5
|
||||
$dha:E2/F#3/E2/F#4/B4/B4
|
|
@ -0,0 +1,2 @@
|
|||
$ei:G#3/B3/E2/B4
|
||||
$ei:G#3/E3/E2/C#5
|
|
@ -0,0 +1,18 @@
|
|||
PIERROT="pierrot-of-the-star-spangled-banner/"
|
||||
cat $PIERROT/00 \
|
||||
$PIERROT/01 \
|
||||
$PIERROT/02 \
|
||||
$PIERROT/03/gg \
|
||||
$PIERROT/03/gg \
|
||||
$PIERROT/03/gg \
|
||||
$PIERROT/03/aa \
|
||||
$PIERROT/03/ga \
|
||||
$PIERROT/03/ga \
|
||||
$PIERROT/03/ga \
|
||||
$PIERROT/03/therest \
|
||||
$PIERROT/04-05-common \
|
||||
$PIERROT/04 \
|
||||
$PIERROT/04-05-common \
|
||||
$PIERROT/05 |
|
||||
../stdin/synths.pl 180 6 square square triangle square square sawtooth |
|
||||
xargs play
|
|
@ -0,0 +1,47 @@
|
|||
#!/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($ARGV[0]);
|
||||
our $maxSynthChannels=$ARGV[1];
|
||||
our $maxSamplesChannels=$ARGV[2];
|
||||
our $samplesDir=$ARGV[3];
|
||||
|
||||
our @notestemp=<STDIN>;
|
||||
|
||||
for my $note (@notestemp) {
|
||||
if ($note ne "\n") { # Check first if string is just a trailing newline,
|
||||
$note =~ s/(\$\w+)/$1/ee; # Evaluate variable names in stdin
|
||||
$note =~ s/\R\z//; # Remove trailing newlines, else xargs will get confused
|
||||
push (@notes, $note);
|
||||
} # we don't want to print a forever synth after all
|
||||
}
|
||||
|
||||
createSamples();
|
|
@ -0,0 +1,54 @@
|
|||
#!/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($ARGV[0]);
|
||||
our $maxSynthChannels=$ARGV[1];
|
||||
|
||||
my @synths;
|
||||
for my $synth (iterate(2,@ARGV)) {
|
||||
if (exists($ARGV[$synth])) {
|
||||
push (@synths, $ARGV[$synth]);
|
||||
}
|
||||
}
|
||||
|
||||
setDefaultSynthType(@synths);
|
||||
|
||||
our @notestemp=<STDIN>;
|
||||
|
||||
for my $note (@notestemp) {
|
||||
if ($note ne "\n") { # Check first if string is just a trailing newline,
|
||||
$note =~ s/(\$\w+)/$1/ee; # Evaluate variable names in stdin
|
||||
$note =~ s/\R\z//; # Remove trailing newlines, else xargs will get confused
|
||||
push (@notes, $note);
|
||||
} # we don't want to print a forever synth after all
|
||||
}
|
||||
|
||||
createSynths();
|
Reference in New Issue