from Cacofonix by Benoit Charles
Cacofonix is a library to create midi files.

MyFreezeRay.m
%
% 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 );
	

Contact us