%
% My Freeze Ray
%
% Compositors: Joss Whedon, Jed Whedon, Zack Whedon, Maurissa Tancharoen
% From: Dr. Horrible's Sing-Along Blog
%
%#ok<*BDSCA>
clc
NoteInit_fr
DD = Note( 1/8 );
P = [ S:R bar ];
%% MAIN
MARK9 = Note('Marker', 'M9');
MARK15 = Note('Marker', 'M15');
MARK22 = Note('Marker', 'M22');
MARK29 = Note('Marker', 'M29');
MARK35 = Note('Marker', 'M35');
MARK42 = Note('Marker', 'M42');
MARK49 = Note('Marker', 'M49');
MARK56 = Note('Marker', 'M56');
MARK62 = Note('Marker', 'M62');
MAIN = [ P*8 ...
MARK9 P*6 ...
MARK15 P*7 ...
MARK22 P*7 ...
MARK29 P*6 ...
MARK35 P*7 ...
MARK42 P*7 ...
MARK49 P*7 ...
MARK56 P*6 ...
MARK62 ];
%% RHODES
RIFF1 = [ [ V-1:'.':N S:B' ] / ( (V-2:'.':N)*4 ) bar ];
RIFF2 = [ [ V-1:'.':N S:B' ] / [ (V-2:'.':N)*3 V-2:'.':C' V-3:D ] bar ];
RHODES = [ Note('+') ...
DynP [ -do do+mi+sol ]*RIFF1 ...
[ --si -si+mi+sol ]*RIFF1 ...
[ --la -la+mi+sol ]*RIFF1 ...
[ --sol -sol+-si++re ]*RIFF1 ...
[ -do do+mi+sol ]*RIFF1 ...
[ --si -si+mi+sol ]*RIFF1 ...
[ --la -la+mi+sol ]*RIFF1 ...
[ --sol -sol+-si++re ]*RIFF1 ...
MARK9 ...
P*4 ...
DynMP [ -do do+mi+sol la ]*RIFF2 ...
[ --si -si+mi+sol ]*RIFF1 ...
MARK15 ~MARK56 ...
P*5 ...
DynMP [ -do do+mi+sol la ]*RIFF2 ...
MARK62 ...
[ --si -si+mi+sol ]*RIFF1 ...
];
%% STRINGS
STRINGS = [ Note('') ...
~MARK42 ...
P ...
DynPP re+sol+si:R bar ...
~re+sol+si:R bar ...
doD+mi+la:R bar ...
~doD+mi+la:R bar ...
re+faD+la:R bar ...
~re+faD+la:R bar ...
MARK49 ...
do:R bar ...
~do:R bar ...
];
%% CLARINET
CLARINET = [ Note('-') ...
~MARK15 ...
P*3 ...
Note('Dynamics*', 'mp') Note('Cresc*', R, 'mf' ) fa+la:R bar ...
P*3 ...
MARK22 ...
Note('Dynamics*', 'mp') Note('Cresc*', R, 'mf' ) fa+la:R bar ...
~MARK29 ...
P*5 ...
Note('Dynamics*', 'mp') Note('Cresc*', R, 'mf' ) fa+la:R bar ...
MARK35 ...
P*3 ...
Note('Dynamics*', 'mp') Note('Cresc*', R*3, 'mf' ) fa+la:R bar ...
laB++do:R bar ...
faD++re:R bar ...
laB++do:B laB++miB:B bar ...
MARK42 ...
faD++re:B faD+la:B bar ...
~MARK62 ...
P*4 ...
Note('Dynamics*', 'mp') Note('Cresc*', R, 'mf' ) fa+la:R bar ...
P ...
];
%% FLUTE
FLUTE = [ ...
~MARK29 ...
Note('+') DynP mi:[B' C] re:D do:D bar ...
-si:B' -la:N bar ...
~MARK49 ...
P*2 ...
DynMP Note('') -la:R bar ...
-sol:R bar ...
DynMF ~[ +mi:B' ~+mi:C +re:D +do:D bar ...
si:B' la:N ] bar ...
S:[B N C] ~[ si:D +do:D bar ...
MARK56 ...
sol:B' fa:N bar ...
mi:'.':N ] S:[N B] bar ...
];
%% BILLY
MESA = [ S:B sol:[T T] la:T sol:N bar ];
MESB = [ S:B miB:[T T] re:T do:[T T] ~re:T bar ];
BILLY = [ Note('') ...
~MARK9 DynMF MESA*3 MESB MESA*2 ...
MARK15 MESA MESB ...
S:B DynF do:C re:N mi:C bar ...
~mi:N do:N re:N do:N bar ...
DynMP sol:'.':N S:[N N] la:C mi:C bar ...
~mi:N S:[N B] bar ...
S:B DynF do:C re:N mi:C bar ...
MARK22 ~mi:N do:N re:N do:N bar ...
sol:N fa:C fa:[C N] do:N bar ...
sol:N faD:C faD:[C N] do:N bar ...
DynMF MESA*3 MESB ...
MARK29 MESA*3 MESB ...
S:B DynF do:C re:N mi:C bar ...
~mi:N do:N do:N -sol:N bar ...
MARK35 ...
DynMP sol:'.':N S:[N N] la:C mi:C bar ...
~mi:N S:[N B] bar ...
S:B DynF Note('cresc',[B R],'ff') do:C re:N mi:C bar ...
~mi:N do:N re:N do:N bar ...
sol:N fa:N fa:N do:N bar ...
sol:C faD:N faD:N S:N do:C bar ...
sol:N fa:N miB:N do:N bar ...
MARK42 ...
sol:N' faD:C re:N -la:C si:C bar ...
~si:N la:C sol:N' mi:C re:C bar ...
~re:C mi:N sol:N S:N re:C bar ...
la:N si:N la:C si:N la:C bar ...
~la:C sol:C mi:N S:N S:C do:C bar ...
la:N si:N la:N ~si:N bar ...
la:C si:N +do:N S:N DynF la:C bar ...
MARK49 ...
sol:N sol:B mi:N bar ...
~mi:N re:B' bar ...
+re:R bar ...
~+miB:R bar ...
P*3 ...
MARK56 ...
P DynMF MESA*3 MESB MESA ...
MARK62 ...
P*2 DynF MESB ...
S:B do:C re:N mi:C bar ...
~mi:N do:N do:N -sol:N bar ...
sol:'.':N S:[N B] bar ...
];
%% PIANO
RIFF1 = [ (V:'.':N)*4 bar ];
DECAL = [ (V-1:R) / [ S:D V-2:[D C B'] ] / [ S:C V-3:[C B'] ] bar ];
PIANO_MD = [ ...
~MARK9 ...
DynMP (do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
(-la+mi+sol)*RIFF1 ...
(-sol+-si+re)*RIFF1 ...
(do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
MARK15 ...
(-la+mi+sol)*RIFF1 ...
(-sol+-si+re)*RIFF1 ...
DynF (-fa+-la+do).*[B N] -fa+-la:C -fa+-la+do:C bar ...
~-fa+-la+do:C -la+do+fa:[C N] -la+do:N -fa+-la:N bar ...
DynMP (do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
DynF (-fa+-la+do).*[B N] -fa+-la:C -fa+-la+do:C bar ...
MARK22 ...
~-fa+-la+do:C -la+do+fa:[C N] -fa+-la+do:N -fa+-la:N bar ...
-laB+do+fa:B -laB+do+fa:B bar ...
-la+re+faD:B -la+re+faD:B bar ...
DynMP (do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
(-la+mi+sol)*RIFF1 ...
(-sol+-si+re)*RIFF1 ...
MARK29 ...
(do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
(-la+mi+sol)*RIFF1 ...
(-sol+-si+re)*RIFF1 ...
DynF -fa+-la+do:B -fa+-la+do:N' -la+do:C bar ...
-la+do+fa:N -fa+-la+do:B' bar ...
MARK35 ...
DynMP (do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
DynF -fa+-la+do:B -fa+-la+do:N -fa+-la:C -fa+-la+do:C bar ...
~-fa+-la+do:C -la+do+fa:[C N] -la+do:N -fa+-la:N bar ...
-laB+do+fa:B -laB+do+fa:B bar ...
-la+re+faD:B -la+re+faD:B bar ...
-laB+do+fa:B -laB+do+fa:B bar ...
MARK42 ...
-la+re+faD:B -la+re+faD:B bar ...
DynP re+sol+si:B re+sol+si:B bar ...
re+sol+si:B re+sol+si:B bar ...
doD+mi+la:B doD+mi+la:B bar ...
doD+mi+la:B doD+mi+la:B bar ...
Note('cresc',R*2,'f') re+faD+la:B re+faD+la:B bar ...
re+faD+la:B re+faD+la:B bar ...
MARK49 ...
-si+do+mi+sol:B -si+do+mi+sol:B bar ...
~-si+do+mi+sol:N do:B' bar ...
[faD la +re] * DECAL ...
[sol siB +miB] * DECAL ...
DynMP (do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
(-la+mi+sol)*RIFF1 ...
MARK56 ...
(-sol+-si+re)*RIFF1 ...
(do+mi+sol)*RIFF1 ...
(-si+mi+sol)*RIFF1 ...
(-la+mi+sol)*RIFF1 ...
(-sol+-si+re)*RIFF1 ...
(do+mi+sol)*RIFF1 ...
MARK62 ...
(-si+mi+sol)*RIFF1 ...
(-la+mi+sol)*RIFF1 ...
(-sol+-si+re)*RIFF1 ...
DynF -fa+-la+do:B -fa+-la+do:N -fa+-la:C -fa+-la+do:C bar ...
~-fa+-la+do:C -la+do+fa:[C N] -fa+-la+do:N -fa+-la:N bar ...
do+mi+sol:'.':N S:[N B] bar ...
];
RIFF1 = [ V:'.':N S:B' bar ];
PIANO_MG = [ Note('--') ...
P*7 ...
S:B S:N [ sol:C' la:DD si:DD ]/ (+sol:N) bar ...
MARK9 ...
+do*RIFF1 ...
si*RIFF1 ...
la*RIFF1 ...
sol*RIFF1 ...
+do*RIFF1 ...
si*RIFF1 ...
MARK15 ...
la*RIFF1 ...
sol*RIFF1 ...
DynF -fa+fa:R bar ...
~-fa+fa:R bar ...
DynMP +do*RIFF1 ...
si*RIFF1 ...
DynF -fa+fa:R bar ...
MARK22 ...
-fa+fa:R bar ...
-laB+laB:R bar ...
re++re:R bar ...
DynMP +do*RIFF1 ...
si*RIFF1 ...
la*RIFF1 ...
sol*RIFF1 ...
MARK29 ...
+do*RIFF1 ...
si*RIFF1 ...
la*RIFF1 ...
sol*RIFF1 ...
DynF -fa+fa:R bar ...
~-fa+fa:R bar ...
MARK35 ...
DynMP +do*RIFF1 ...
si*RIFF1 ...
DynF -fa+fa:R bar ...
~-fa+fa:R bar ...
-laB+laB:B -laB+laB:B bar ...
re++re:B re++re:N +re:N bar ...
-laB+laB:R bar ...
MARK42 ...
re++re:R bar ...
Note('-') DynMF sol:B sol:N sol:'>':N bar ...
sol:B sol:N sol:'>':N bar ...
sol:B sol:N sol:'>':N bar ...
sol:B sol:N sol:'>':N bar ...
Note('cresc',R*2,'f') faD:B faD:N faD:'>':N bar ...
faD:B faD:B bar ...
MARK49 ...
do:B do:N do:N bar ...
~do:N do:B' bar ...
re:R bar ...
re:R bar ...
Note('--') +do*RIFF1 ...
si*RIFF1 ...
la*RIFF1 ...
MARK56 ...
sol:N S:[N N] DynMF [ sol:C' la:DD si:DD ]/ (+sol:N) bar ...
DynMP +do*RIFF1 ...
si*RIFF1 ...
la*RIFF1 ...
sol*RIFF1 ...
+do*RIFF1 ...
MARK62 ...
si*RIFF1 ...
la*RIFF1 ...
sol*RIFF1 ...
DynF -fa+fa:R bar ...
~-fa+fa:R bar ...
+do:'.':N S:[N B] bar ...
];
%% BASS
BASS = [ Note( '--' ) ...
P*7 ...
S:B S:N DynMF sol:N bar ...
MARK9 ...
+do:N S:[N N T T] sol:T bar ...
si:N S:[N B] bar ...
la:N S:[N B] bar ...
sol:N S:[N B] bar ...
+do:N S:[N N] +sol:N bar ...
si:N S:[N N T T] sol:T bar ...
MARK15 ...
la:N S:[N N T T] fa:T bar ...
sol:N S:[N B] bar ...
DynF fa:[B' C] la:C bar ...
~la:N fa:N la:N fa:N bar ...
DynMP +do:N S:[N N T T] sol:T bar ...
si:N S:[N N] DynF +do:N bar ...
~fa:R bar ...
MARK22 ...
la:N fa:N la:N fa:N bar ...
laB:B laB:B bar ...
+re:B +re:B bar ...
+do:N S:[N N T T] sol:T bar ...
si:N S:[N B] bar ...
la:N S:[N B] bar ...
sol:N S:[N N] sol:N bar ...
MARK29 ...
+do:N S:[N N] +mi:N bar ...
~si:N S:[N B] bar ...
la:N S:[N N T T] fa:T bar ...
sol:N S:[N B] bar ...
DynF fa:[B' C] la:C bar ...
~la:N fa:N la:N fa:N bar ...
MARK35 ...
+do:N S:[N N T T] sol:T bar ...
si:N S:[N N] +do:N bar ...
fa:[B' C] sol:C bar ...
la:N fa:B' bar ...
laB:B laB:B bar ...
+re:R bar ...
+laB:R bar ...
MARK42 ...
Note('-') re:B re:B bar ...
DynP sol:B sol:B bar ...
sol:B sol:B bar ...
sol:B sol:B bar ...
sol:B sol:B bar ...
Note('cresc',[R B'],'f') faD:B faD:N' faD:C bar ...
faD:N faD:B -si:N bar ...
MARK49 ...
do:B' do:N bar ...
~do:N do:B do:N bar ...
re:B +re:T*2 +re:T*2 +re:T*2 bar ...
re:B +re:B bar ...
DynMP Note('--') +do:N S:[N N T T] sol:T bar ...
si:N S:[N B] bar ...
la:N S:[N N C] mi:C bar ...
MARK56 ...
sol:N S:[N N] sol:N bar ...
+do:N S:[N N] +sol:N bar ...
~si:N S:[N N T T] sol:T bar ...
la:N S:B' bar ...
sol:N S:[N N] sol:N bar ...
+do:N S:[N N] +mi:N bar ...
MARK62 ...
~si:N S:[N B] bar ...
la:N S:[N N T T] mi:T bar ...
sol:N S:[N N] DynF si:N bar ...
~fa:[B' C] la:C bar ...
~la:N fa:N la:N fa:N bar ...
+do:'.':N S:[S B] ...
];
%% TIMPANI
RIFF = [ V:N S:[N B] bar ];
DO = do*RIFF;
LA = -la*RIFF;
TIMPANI = [ Note('-') ...
~MARK9 DynMP DO P LA P DO P ...
MARK15 LA P*6 ...
MARK22 P P P DO P LA ...
S:[B N] -sol:N bar ...
MARK29 DO P LA P P P ...
MARK35 ...
~MARK49 P*4 DO P LA ...
MARK56 ...
S:[B N] -sol:N bar ...
DO P LA ...
S:[B N] -sol:N bar ...
DO ...
MARK62 ...
P DO P P P P ...
];
%% DRUMS
RIFF1 = [ V:D V:D V:C V:N V:N V:N bar ];
RIFF2 = [ V:N V:N V:N V:N bar ];
SNARE = [ ...
~MARK9 DynPP RIFF1 RIFF2 RIFF1 RIFF2 RIFF1 RIFF2 ...
MARK15 RIFF1 RIFF2 P*2 RIFF2 RIFF1 P ...
MARK22 P*3 DynPP RIFF2 RIFF2 RIFF1 RIFF2 ...
MARK29 RIFF1 RIFF2 RIFF1 RIFF2 P*2 ...
MARK35 RIFF2 RIFF1 ...
~MARK49 P*4 RIFF1 RIFF2 RIFF1 ...
MARK56 RIFF2 RIFF1 RIFF2 RIFF1 RIFF2 RIFF1 ...
MARK62 RIFF2 RIFF1 RIFF2 P*2 V:N S:[N B] bar ...
];
RIFF1 = [ V:N S:B' bar ];
RIFF2 = [ V:N S:B V:N bar ];
LOWTOM = [ DynPP ...
~MARK9 RIFF1*6 MARK15 RIFF1*7 ...
MARK22 RIFF1*7 MARK29 RIFF1*6 ...
MARK35 RIFF1*7 MARK42 RIFF1*2 RIFF2 RIFF1 RIFF2 RIFF1 RIFF2 ...
MARK49 RIFF1 RIFF2 RIFF1*5 MARK56 RIFF1*6 ...
MARK62 RIFF1*6 ];
HIGHMIDTOM = [ DynPP ~MARK42 S:B' V:N bar ];
HIGHTOM = [ DynPP ~MARK42 S:B V:C V:C S:N bar ];
RIFF1 = [ S:B (V-1):N S:N bar ];
RIFF2 = [ S:B (V-2):N S:N bar ];
HIHAT = [ ...
~MARK9 RIFF1*6 MARK15 RIFF1*2 RIFF2*2 RIFF1*2 RIFF2*1 ...
MARK22 RIFF2*3 RIFF1*4 MARK29 RIFF1*4 RIFF2*2 ...
MARK35 RIFF1*2 RIFF2*5 MARK42 P RIFF1*6 ...
MARK49 RIFF1*2 P*2 RIFF1*3 MARK56 RIFF1*6 ...
MARK62 RIFF1*3 RIFF2*2 P ];
RIFF = [ [ V S S S ].*N bar ];
CRASH1 = [ DynPP ...
~MARK15 P*2 RIFF P*3 RIFF ...
MARK22 P RIFF P*5 ...
MARK29 P*4 RIFF P ...
MARK35 P*2 RIFF P RIFF P RIFF ...
MARK42 ~MARK62 P*3 RIFF P*2 ];
RIFF1 = [ [ V V V V ].*N bar ];
RIFF2 = [ [ S V V V ].*N bar ];
RIFF3 = [ [ V S S S ].*N bar ];
CRASH2 = [ DynPP ...
~MARK15 P*2 RIFF2 RIFF1 P*2 RIFF2 ...
MARK22 RIFF1 RIFF2 RIFF1 P*4 ...
MARK29 P*4 RIFF2 RIFF1 ...
MARK35 P*2 RIFF2 RIFF1 RIFF2 RIFF1 RIFF2 ...
MARK42 RIFF1*7 ...
MARK49 RIFF1*2 RIFF3*2 P*3 ...
MARK56 ~MARK62 P*3 RIFF2 RIFF1 P ];
%% CACOFONIX
cacofonix( 'MyFreezeRay', 'Tempo', 144, 'Velocity', linspace( 50, 126, 8 ), ...
MAIN, ...
'Pizzicato Strings', RHODES, ...
'Slow String Ensemble', STRINGS, ...
'Clarinet', CLARINET, ...
'Piccolo', FLUTE, ...
'Voice Oohs', BILLY, ...
'Piano', PIANO_MD / PIANO_MG, ...
'Acoustic Bass', BASS, ...
'Timpani', TIMPANI, ...
'Acoustic Snare', SNARE, ...
'Low Tom', LOWTOM, 'Hi-Mid Tom', HIGHMIDTOM, 'High Tom', HIGHTOM, ...
'Closed Hi-Hat', HIHAT ); %, ...
%'Crash Cymbal 1', CRASH1, 'Crash Cymbal 2', CRASH2 );