Message Boards Message Boards

0
|
2088 Views
|
0 Replies
|
0 Total Likes
View groups...
Share
Share this post:

Adding chords to MIDI?

Posted 2 years ago

Hello,

I put together a file that creates Mary Had a Little Lamb using the MIDI function and the appropriate numbers associated with the correct notes.

I'm trying to add chords to this song but it doesn't seem to be playing correctly. The below version does not have the chord sections added.

My plan was to add additional notes on separate speaker channels. This worked when playing two single notes at the same time, but doesn't seem to produce a good effect with chords.

Any suggestions for how to add chords to the piece below?

(*MIDI FUNCTION*) 
f[x_] := 440*2^((x - 69)/12);

(*BREAK AFTER THE NOTE*)
e4longrest = .2;
e4standardrest = .1;

c4shortrest = .1;
c4longrest = .2;
c4longlongrest = .5;

d4shortrest = .05;
d4standardrest = .1;
d4longrest = .2;

g4standardrest = .1;
g4longrest = .2;

(*DURATION OF THE NOTE*)

eduration = .3;
elongduration = .3;

cduration = .3;

dduration = .3; 
dlongduration = .3;

gduration = .3; 

(*MELODY/FOURTH OCTAVE*)
e4 = 64;
c4 = 60;
d4 = 62;
g4 = 67; 

(*MELODY/THIRD OCTAVE*)
a3 = 57;
c3 = 48;
d3 = 50;
e3 = 52;
f3 = 53;
g3 = 55;

(*MELODY/SECOND OCTAVE*)
g2 = 43;
b2 = 47;
d3 = 50; 



Sound[{

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, elongduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) , 

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dlongduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4shortrest}](*d4 REST*) ,

Play[{SquareWave[f[c4] x], SquareWave[f[c4] x]}, {x, 0, cduration}](*C*) ,
Play[SquareWave[x], {x, 0, c4longrest}](*c4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}](*D4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4standardrest}](*D4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4standardrest}](*D4 REST*),

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}] (*D4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[g4] x], SquareWave[f[g4] x]}, {x, 0, gduration}](*G*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*g4 REST*) ,

Play[{SquareWave[f[g4] x], SquareWave[f[g4] x]}, {x, 0, gduration}](*G*) ,
Play[SquareWave[x], {x, 0, g4longrest}](*g4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, elongduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) , 

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dlongduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4shortrest}](*d4 REST*) ,

Play[{SquareWave[f[c4] x], SquareWave[f[c4] x]}, {x, 0, cduration}](*C*) ,
Play[SquareWave[x], {x, 0, c4longrest}](*c4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}](*D4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4standardrest}](*D4 REST*),

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}] (*D4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}] (*D4 REST*) ,

(*MEASURE*)

Play[{SquareWave[f[c4] x], SquareWave[f[c4] x]}, {x, 0, cduration}](*E*) ,
Play[SquareWave[x], {x, 0, c4longlongrest}](*e4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[c3] x]}, {x, 0, elongduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) , 

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dlongduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4shortrest}](*d4 REST*) ,

Play[{SquareWave[f[c4] x], SquareWave[f[a3] x]}, {x, 0, cduration}](*C*) ,
Play[SquareWave[x], {x, 0, c4longrest}](*c4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}](*D4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[c3] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[a3] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[d4] x], SquareWave[f[g3] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4standardrest}](*D4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4standardrest}](*D4 REST*),

Play[{SquareWave[f[d4] x], SquareWave[f[d3] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}] (*D4 REST*) ,


(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[c3] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[g4] x], SquareWave[f[g4] x]}, {x, 0, gduration}](*G*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*g4 REST*) ,

Play[{SquareWave[f[g4] x], SquareWave[f[a3] x]}, {x, 0, gduration}](*G*) ,
Play[SquareWave[x], {x, 0, g4longrest}](*g4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[c3] x]}, {x, 0, elongduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) , 

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dlongduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4shortrest}](*d4 REST*) ,

Play[{SquareWave[f[c4] x], SquareWave[f[a3] x]}, {x, 0, cduration}](*C*) ,
Play[SquareWave[x], {x, 0, c4longrest}](*c4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}](*D4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[e4] x], SquareWave[f[c3] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[a3] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[e4] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4longrest}](*e4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[d4] x], SquareWave[f[g3] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4standardrest}](*D4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}] (*D4 REST*) ,

Play[{SquareWave[f[e4] x], SquareWave[f[d3] x]}, {x, 0, eduration}](*E*) ,
Play[SquareWave[x], {x, 0, e4standardrest}](*e4 REST*) ,

Play[{SquareWave[f[d4] x], SquareWave[f[d4] x]}, {x, 0, dduration}](*D*) ,
Play[SquareWave[x], {x, 0, d4longrest}] (*D4 REST*) ,

(*TWO NOTES/MEASURE*)

Play[{SquareWave[f[c4] x], SquareWave[f[c3] x]}, {x, 0, cduration}](*E*) ,
Play[SquareWave[x], {x, 0, c4longlongrest}](*e4 REST*) 
}]
POSTED BY: Ziggy Stardust
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract