UNPKG

music21j-port

Version:

A toolkit for computer-aided musicology, Javascript version

76 lines (60 loc) 2.64 kB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <title>stream.clone()</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <!-- midi.js package --> <script data-main="../src/music21.js" src="../ext/require/require.js"></script> <link rel="stylesheet" href="http://web.mit.edu/music21/doc/_static/m21.css" type="text/css" /> <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Source+Code+Pro|Open+Sans:300italic,400italic,700italic,400,300,700" type="text/css" /> </head> <body> <script type="text/javascript"> let allStream; require(['music21'], function (music21) { const $b = $('body'); $b.append("<div>s = one measure tinyNotation</div>"); const s = music21.tinyNotation.TinyNotation('3/4 C4 D2'); s.appendNewDOM(); $b.append("<div>clone and change step from C to E</div>"); const y = s.clone(true); y.flat.notes.get(0).pitch.step = 'E'; y.flat.notes.get(0).stemDirection = undefined; y.appendNewDOM(); $b.append("<div>s (original) unchanged?</div>"); s.appendNewDOM(); $b.append("<div><h1>three measure tiny notation Part</h1></div>"); const s2 = music21.tinyNotation.TinyNotation('3/4 b2. a2. g2.'); s2.appendNewDOM(); $b.append("<div>cloned right?</div>"); const y2 = s2.clone(true); y2.appendNewDOM(); $b.append("<div>s3 = three measure tiny notation Part (s.clone(), s.clone([D=A]), s.clone())</div>"); const s3 = new music21.stream.Part(); s3.append(s.clone(true)); const sScrewy = s.clone(true); sScrewy.flat.notes.get(1).pitch.step = 'A'; sScrewy.flat.notes.get(1).stemDirection = undefined; s3.append(sScrewy); s3.append(s.clone(true)); s3.appendNewDOM(); $b.append("<h1>Score</h1><div>s4 = three parts (s3.clone(), s3.clone()-inverted, s3.clone()</div>"); const s4 = new music21.stream.Score(); s4.insert(0, s3.clone(true)); const s3Second = s3.clone(true); const s3SecondFlat = s3Second.flat; for (const n of s3SecondFlat.flat.notes) { n.stemDirection = undefined; n.pitch.diatonicNoteNum = 22 + (29 - n.pitch.diatonicNoteNum); } s4.insert(0, s3Second); s4.insert(0, s3.clone(true)); s4.appendNewDOM(); $b.append("<div>is s3Second activeSite s4? " + (s3Second.activeSite === s4).toString() + "</div>"); $b.append("<div>s3 unchanged?</div>"); s3.appendNewDOM(); }); </script> <h1>Stream.clone() tests...</h1> </body> </html>