music21j-port
Version:
A toolkit for computer-aided musicology, Javascript version
7,540 lines • 106 kB
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Music21j Class: Stream</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
<link type="text/css" rel="stylesheet" href="styles/site.spruce.css">
</head>
<body>
<div class="container-fluid">
<div class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner">
<a class="brand" href="index.html">Music21j</a>
<ul class="nav">
<li class="dropdown">
<a href="namespaces.list.html" class="dropdown-toggle" data-toggle="dropdown">Namespaces<b
class="caret"></b></a>
<ul class="dropdown-menu ">
<li>
<a href="music21.html">music21</a>
</li>
<li>
<a href="music21.articulations.html">music21.articulations</a>
</li>
<li>
<a href="music21.audioSearch.html">music21.audioSearch</a>
</li>
<li>
<a href="music21.base.html">music21.base</a>
</li>
<li>
<a href="music21.beam.html">music21.beam</a>
</li>
<li>
<a href="music21.chord.html">music21.chord</a>
</li>
<li>
<a href="music21.clef.html">music21.clef</a>
</li>
<li>
<a href="music21.common.html">music21.common</a>
</li>
<li>
<a href="music21.duration.html">music21.duration</a>
</li>
<li>
<a href="music21.dynamics.html">music21.dynamics</a>
</li>
<li>
<a href="music21.expressions.html">music21.expressions</a>
</li>
<li>
<a href="music21.fromPython.html">music21.fromPython</a>
</li>
<li>
<a href="music21.instrument.html">music21.instrument</a>
</li>
<li>
<a href="music21.interval.html">music21.interval</a>
</li>
<li>
<a href="music21.key.html">music21.key</a>
</li>
<li>
<a href="music21.keyboard.html">music21.keyboard</a>
</li>
<li>
<a href="music21.meter.html">music21.meter</a>
</li>
<li>
<a href="music21.miditools.html">music21.miditools</a>
</li>
<li>
<a href="music21.note.html">music21.note</a>
</li>
<li>
<a href="music21.pitch.html">music21.pitch</a>
</li>
<li>
<a href="music21.prebase.html">music21.prebase</a>
</li>
<li>
<a href="music21.renderOptions.html">music21.renderOptions</a>
</li>
<li>
<a href="music21.roman.html">music21.roman</a>
</li>
<li>
<a href="music21.scale.html">music21.scale</a>
</li>
<li>
<a href="music21.sites.html">music21.sites</a>
</li>
<li>
<a href="music21.stream.html">music21.stream</a>
</li>
<li>
<a href="music21.tempo.html">music21.tempo</a>
</li>
<li>
<a href="music21.tie.html">music21.tie</a>
</li>
<li>
<a href="music21.tinyNotation.html">music21.tinyNotation</a>
</li>
<li>
<a href="music21.vfShow.html">music21.vfShow</a>
</li>
<li>
<a href="music21.webmidi.html">music21.webmidi</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b
class="caret"></b></a>
<ul class="dropdown-menu ">
<li>
<a href="music21.articulations.Accent.html">music21.articulations.Accent</a>
</li>
<li>
<a href="music21.articulations.Articulation.html">music21.articulations.Articulation</a>
</li>
<li>
<a href="music21.articulations.DynamicArticulation.html">music21.articulations.DynamicArticulation</a>
</li>
<li>
<a href="music21.articulations.LengthArticulation.html">music21.articulations.LengthArticulation</a>
</li>
<li>
<a href="music21.articulations.Marcato.html">music21.articulations.Marcato</a>
</li>
<li>
<a href="music21.articulations.PitchArticulation.html">music21.articulations.PitchArticulation</a>
</li>
<li>
<a href="music21.articulations.Spiccato.html">music21.articulations.Spiccato</a>
</li>
<li>
<a href="music21.articulations.Staccatissimo.html">music21.articulations.Staccatissimo</a>
</li>
<li>
<a href="music21.articulations.Staccato.html">music21.articulations.Staccato</a>
</li>
<li>
<a href="music21.articulations.StrongAccent.html">music21.articulations.StrongAccent</a>
</li>
<li>
<a href="music21.articulations.Tenuto.html">music21.articulations.Tenuto</a>
</li>
<li>
<a href="music21.articulations.TimbreArticulation.html">music21.articulations.TimbreArticulation</a>
</li>
<li>
<a href="music21.base.Music21Object.html">music21.base.Music21Object</a>
</li>
<li>
<a href="music21.beam.Beam.html">music21.beam.Beam</a>
</li>
<li>
<a href="music21.beam.Beams.html">music21.beam.Beams</a>
</li>
<li>
<a href="music21.chord.Chord.html">music21.chord.Chord</a>
</li>
<li>
<a href="music21.clef.AltoClef.html">music21.clef.AltoClef</a>
</li>
<li>
<a href="music21.clef.BassClef.html">music21.clef.BassClef</a>
</li>
<li>
<a href="music21.clef.Clef.html">music21.clef.Clef</a>
</li>
<li>
<a href="music21.clef.MezzoSopranoClef.html">music21.clef.MezzoSopranoClef</a>
</li>
<li>
<a href="music21.clef.PercussionClef.html">music21.clef.PercussionClef</a>
</li>
<li>
<a href="music21.clef.SopranoClef.html">music21.clef.SopranoClef</a>
</li>
<li>
<a href="music21.clef.TenorClef.html">music21.clef.TenorClef</a>
</li>
<li>
<a href="music21.clef.Treble8vaClef.html">music21.clef.Treble8vaClef</a>
</li>
<li>
<a href="music21.clef.Treble8vbClef.html">music21.clef.Treble8vbClef</a>
</li>
<li>
<a href="music21.clef.TrebleClef.html">music21.clef.TrebleClef</a>
</li>
<li>
<a href="music21.duration.Duration.html">music21.duration.Duration</a>
</li>
<li>
<a href="music21.duration.Tuplet.html">music21.duration.Tuplet</a>
</li>
<li>
<a href="music21.dynamics.Dynamic.html">music21.dynamics.Dynamic</a>
</li>
<li>
<a href="music21.expressions.Expression.html">music21.expressions.Expression</a>
</li>
<li>
<a href="music21.expressions.Fermata.html">music21.expressions.Fermata</a>
</li>
<li>
<a href="music21.fromPython.Converter.html">music21.fromPython.Converter</a>
</li>
<li>
<a href="music21.instrument.Instrument.html">music21.instrument.Instrument</a>
</li>
<li>
<a href="music21.interval.ChromaticInterval.html">music21.interval.ChromaticInterval</a>
</li>
<li>
<a href="music21.interval.DiatonicInterval.html">music21.interval.DiatonicInterval</a>
</li>
<li>
<a href="music21.interval.GenericInterval.html">music21.interval.GenericInterval</a>
</li>
<li>
<a href="music21.interval.Interval.html">music21.interval.Interval</a>
</li>
<li>
<a href="music21.key.Key.html">music21.key.Key</a>
</li>
<li>
<a href="music21.key.KeySignature.html">music21.key.KeySignature</a>
</li>
<li>
<a href="music21.keyboard.BlackKey.html">music21.keyboard.BlackKey</a>
</li>
<li>
<a href="music21.keyboard.Key.html">music21.keyboard.Key</a>
</li>
<li>
<a href="music21.keyboard.Keyboard.html">music21.keyboard.Keyboard</a>
</li>
<li>
<a href="music21.keyboard.WhiteKey.html">music21.keyboard.WhiteKey</a>
</li>
<li>
<a href="music21.meter.TimeSignature.html">music21.meter.TimeSignature</a>
</li>
<li>
<a href="music21.miditools.Event.html">music21.miditools.Event</a>
</li>
<li>
<a href="music21.miditools.MidiPlayer.html">music21.miditools.MidiPlayer</a>
</li>
<li>
<a href="music21.note.GeneralNote.html">music21.note.GeneralNote</a>
</li>
<li>
<a href="music21.note.Lyric.html">music21.note.Lyric</a>
</li>
<li>
<a href="music21.note.Note.html">music21.note.Note</a>
</li>
<li>
<a href="music21.note.NotRest.html">music21.note.NotRest</a>
</li>
<li>
<a href="music21.note.Rest.html">music21.note.Rest</a>
</li>
<li>
<a href="music21.pitch.Accidental.html">music21.pitch.Accidental</a>
</li>
<li>
<a href="music21.pitch.Pitch.html">music21.pitch.Pitch</a>
</li>
<li>
<a href="music21.prebase.ProtoM21Object.html">music21.prebase.ProtoM21Object</a>
</li>
<li>
<a href="music21.renderOptions.RenderOptions.html">music21.renderOptions.RenderOptions</a>
</li>
<li>
<a href="music21.roman.RomanNumeral.html">music21.roman.RomanNumeral</a>
</li>
<li>
<a href="music21.stream.Measure.html">music21.stream.Measure</a>
</li>
<li>
<a href="music21.stream.Part.html">music21.stream.Part</a>
</li>
<li>
<a href="music21.stream.Score.html">music21.stream.Score</a>
</li>
<li>
<a href="music21.stream.Stream.html">music21.stream.Stream</a>
</li>
<li>
<a href="music21.stream.Voice.html">music21.stream.Voice</a>
</li>
<li>
<a href="music21.tempo.Metronome.html">music21.tempo.Metronome</a>
</li>
<li>
<a href="music21.tie.Tie.html">music21.tie.Tie</a>
</li>
<li>
<a href="music21.vfShow.Renderer.html">music21.vfShow.Renderer</a>
</li>
<li>
<a href="music21.vfShow.RenderStack.html">music21.vfShow.RenderStack</a>
</li>
<li>
<a href="Notation.html">Notation</a>
</li>
<li>
<a href="Page.html">Page</a>
</li>
<li>
<a href="Recorder.html">Recorder</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b
class="caret"></b></a>
<ul class="dropdown-menu ">
<li>
<a href="global.html#getM21attribute">getM21attribute</a>
</li>
<li>
<a href="global.html#layout">layout</a>
</li>
<li>
<a href="global.html#midiNumDiffFromFrequency">midiNumDiffFromFrequency</a>
</li>
<li>
<a href="global.html#recorderWorkerJs">recorderWorkerJs</a>
</li>
<li>
<a href="global.html#unpickler">unpickler</a>
</li>
<li>
<a href="global.html#warnBanner">warnBanner</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="span8">
<div id="main">
<h1 class="page-title">Class: Stream</h1>
<section>
<header>
<h2>
<span class="ancestors"><a href="music21.html">music21</a><a href="music21.stream.html">.stream</a>.</span>
Stream
</h2>
</header>
<article>
<div class="container-overview">
<dt>
<h4 class="name" id="Stream"><span class="type-signature"></span>new Stream<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
<p>A generic Stream class -- a holder for other music21 objects<br>Will be subclassed into <a href="music21.stream.Score.html"><code>music21.stream.Score</code></a>,<br><a href="music21.stream.Part.html"><code>music21.stream.Part</code></a>,<br><a href="music21.stream.Measure.html"><code>music21.stream.Measure</code></a>,<br><a href="music21.stream.Voice.html"><code>music21.stream.Voice</code></a>, but most functions will be found here.</p>
</div>
<dl class="details">
<h5 class="subsection-title">Properties:</h5>
<dl>
<table class="props table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>elements</code></td>
<td class="type">
<span class="param-type">Array.<<a href="music21.base.Music21Object.html">music21.base.Music21Object</a>></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>the elements in the stream. DO NOT MODIFY individual components (consider it like a Python tuple)</p></td>
</tr>
<tr>
<td class="name"><code>length</code></td>
<td class="type">
<span class="param-type">Int</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>(readonly) the number of elements in the stream.</p></td>
</tr>
<tr>
<td class="name"><code>duration</code></td>
<td class="type">
<span class="param-type"><a href="music21.duration.Duration.html">music21.duration.Duration</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>the total duration of the stream's elements</p></td>
</tr>
<tr>
<td class="name"><code>highestTime</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><ul>
<li>the highest time point in the stream's elements</li>
</ul></td>
</tr>
<tr>
<td class="name"><code>clef</code></td>
<td class="type">
<span class="param-type"><a href="music21.clef.Clef.html">music21.clef.Clef</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>the clef for the Stream (if there is one; if there are multiple, then the first clef)</p></td>
</tr>
<tr>
<td class="name"><code>timeSignature</code></td>
<td class="type">
<span class="param-type"><a href="music21.meter.TimeSignature.html">music21.meter.TimeSignature</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>the first TimeSignature of the Stream</p></td>
</tr>
<tr>
<td class="name"><code>keySignature</code></td>
<td class="type">
<span class="param-type"><a href="music21.key.KeySignature.html">music21.key.KeySignature</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>the first KeySignature for the Stream</p></td>
</tr>
<tr>
<td class="name"><code>renderOptions</code></td>
<td class="type">
<span class="param-type"><a href="music21.renderOptions.RenderOptions.html">music21.renderOptions.RenderOptions</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>an object specifying how to render the stream</p></td>
</tr>
<tr>
<td class="name"><code>flat</code></td>
<td class="type">
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>(readonly) a flattened representation of the Stream</p></td>
</tr>
<tr>
<td class="name"><code>notes</code></td>
<td class="type">
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>(readonly) the stream with only <a href="music21.note.Note.html"><code>music21.note.Note</code></a> and <a href="music21.chord.Chord.html"><code>music21.chord.Chord</code></a> objects included</p></td>
</tr>
<tr>
<td class="name"><code>notesAndRests</code></td>
<td class="type">
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>(readonly) like notes but also with <a href="music21.note.Rest.html"><code>music21.note.Rest</code></a> objects included</p></td>
</tr>
<tr>
<td class="name"><code>parts</code></td>
<td class="type">
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>(readonly) a filter on the Stream to just get the parts (NON-recursive)</p></td>
</tr>
<tr>
<td class="name"><code>measures</code></td>
<td class="type">
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>(readonly) a filter on the Stream to just get the measures (NON-recursive)</p></td>
</tr>
<tr>
<td class="name"><code>tempo</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>tempo in beats per minute (will become more sophisticated later, but for now the whole stream has one tempo</p></td>
</tr>
<tr>
<td class="name"><code>instrument</code></td>
<td class="type">
<span class="param-type"><a href="music21.instrument.Instrument.html">music21.instrument.Instrument</a></span>
|
<span class="param-type">undefined</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>an instrument object associated with the stream (can be set with a string also, but will return an <code>Instrument</code> object)</p></td>
</tr>
<tr>
<td class="name"><code>autoBeam</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>whether the notes should be beamed automatically or not (will be moved to <code>renderOptions</code> soon)</p></td>
</tr>
<tr>
<td class="name"><code>staffLines</code></td>
<td class="type">
<span class="param-type">Int</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
5
</td>
<td class="description last"><p>number of staff lines</p></td>
</tr>
<tr>
<td class="name"><code>changedCallbackFunction</code></td>
<td class="type">
<span class="param-type">function</span>
|
<span class="param-type">undefined</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>function to call when the Stream changes through a standard interface</p></td>
</tr>
<tr>
<td class="name"><code>maxSystemWidth</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"><p>confusing... should be in renderOptions</p></td>
</tr>
</tbody>
</table>
</dl>
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-58">line 58</a>
</li>
</ul>
</dd>
</dl>
</dd>
</div>
<h3 class="subsection-title">Extends</h3>
<ul>
<li><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></li>
</ul>
<h3 class="subsection-title">Methods</h3>
<dl>
<dt>
<h4 class="name" id="append"><span class="type-signature"><static> </span>Stream#append<span class="signature">(el)</span><span class="type-signature"> → {this}</span></h4>
</dt>
<dd>
<div class="description">
<p>Add an element to the end of the stream, setting its <code>.offset</code> accordingly</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>el</code></td>
<td class="type">
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
|
<span class="param-type">Array</span>
</td>
<td class="description last"><p>element or list of elements to append</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-433">line 433</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">this</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="appendNewDOM"><span class="type-signature"><static> </span>Stream#appendNewDOM<span class="signature">(<span class="optional">appendElement</span>, <span class="optional">width</span>, <span class="optional">height</span>, elementType)</span><span class="type-signature"> → {DOMObject}</span></h4>
</dt>
<dd>
<div class="description">
<p>Creates a new canvas, renders vexflow on it, and appends it to the DOM.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>appendElement</code></td>
<td class="type">
<span class="param-type">JQueryDOMObject</span>
|
<span class="param-type">DOMObject</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
document.body
</td>
<td class="description last"><p>where to place the svg</p></td>
</tr>
<tr>
<td class="name"><code>width</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>elementType</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
svg
</td>
<td class="description last"><p>what type of element, default = svg</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1532">line 1532</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>svg (not the jQueryDOMObject -- this is a difference with other routines and should be fixed. TODO: FIX)</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">DOMObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="createDOM"><span class="type-signature"><static> </span>Stream#createDOM<span class="signature">(<span class="optional">width</span>, <span class="optional">height</span>, elementType)</span><span class="type-signature"> → {JQueryDOMObject}</span></h4>
</dt>
<dd>
<div class="description">
<p>Creates a new svg and renders vexflow on it</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>width</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>elementType</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
svg
</td>
<td class="description last"><p>what type of element svg or canvas, default = svg</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1508">line 1508</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>canvas or SVG</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">JQueryDOMObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="createNewDOM"><span class="type-signature"><static> </span>Stream#createNewDOM<span class="signature">(width, height, elementType)</span><span class="type-signature"> → {JQueryDOMObject}</span></h4>
</dt>
<dd>
<div class="description">
<p>Creates and returns a new <code>&lt;canvas&gt;</code> or <code>&lt;svg&gt;</code> object.</p>
<p>Calls setSubstreamRenderOptions() first.</p>
<p>Does not render on the DOM element.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>width</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="default">
</td>
<td class="description last"><p>will use <code>this.estimateStaffLength()</code> + <code>this.renderOptions.staffPadding</code> if not given</p></td>
</tr>
<tr>
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="default">
</td>
<td class="description last"><p>if undefined will use <code>this.renderOptions.height</code>. If still undefined, will use <code>this.estimateStreamHeight()</code></p></td>
</tr>
<tr>
<td class="name"><code>elementType</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="default">
svg
</td>
<td class="description last"><p>what type of element, default = svg</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1426">line 1426</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>svg in jquery.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">JQueryDOMObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="createPlayableDOM"><span class="type-signature"><static> </span>Stream#createPlayableDOM<span class="signature">(width, height, elementType)</span><span class="type-signature"> → {JQueryDOMObject}</span></h4>
</dt>
<dd>
<div class="description">
<p>Creates a rendered, playable svg where clicking plays it.</p>
<p>Called from appendNewDOM() etc.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>width</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">number</span>
|
<span class="param-type">string</span>
|
<span class="param-type">undefined</span>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>elementType</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="default">
svg
</td>
<td class="description last"><p>what type of element, default = svg</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1490">line 1490</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>canvas or svg</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">JQueryDOMObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="diatonicNoteNumFromScaledY"><span class="type-signature"><static> </span>Stream#diatonicNoteNumFromScaledY<span class="signature">(yPxScaled)</span><span class="type-signature"> → {int}</span></h4>
</dt>
<dd>
<div class="description">
<p>Given a Y position find the diatonicNoteNum that a note at that position would have.</p>
<p>searches this.storedVexflowStave</p>
<p>Y position must be offset from the start of the stave...</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>yPxScaled</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1781">line 1781</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Int</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="editableAccidentalDOM"><span class="type-signature"><static> </span>Stream#editableAccidentalDOM<span class="signature">(<span class="optional">width</span>, <span class="optional">height</span>)</span><span class="type-signature"> → {DOMObject}</span></h4>
</dt>
<dd>
<div class="description">
<p>Renders a stream on svg with the ability to edit it and<br>a toolbar that allows the accidentals to be edited.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>width</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1981">line 1981</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p><div> tag around the svg.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">DOMObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="estimateStaffLength"><span class="type-signature"><static> </span>Stream#estimateStaffLength<span class="signature">()</span><span class="type-signature"> → {number}</span></h4>
</dt>
<dd>
<div class="description">
<p>Estimates the length of the Stream in pixels.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1273">line 1273</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>length in pixels</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="estimateStreamHeight"><span class="type-signature"><static> </span>Stream#estimateStreamHeight<span class="signature">(<span class="optional">ignoreSystems</span>)</span><span class="type-signature"> → {number}</span></h4>
</dt>
<dd>
<div class="description">
<p>Estimate the stream height for the Stream.</p>
<p>If there are systems they will be incorporated into the height unless <code>ignoreSystems</code> is <code>true</code>.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>ignoreSystems</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1225">line 1225</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>height in pixels</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">number</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="findNoteForClick"><span class="type-signature"><static> </span>Stream#findNoteForClick<span class="signature">(svg, e, x, y)</span><span class="type-signature"> → {Array}</span></h4>
</dt>
<dd>
<div class="description">
<p>Given an event object, and an x and y location, returns a two-element array<br>of the pitch.Pitch.diatonicNoteNum that was clicked (i.e., if C4 was clicked this<br>will return 29; if D4 was clicked this will return 30) and the closest note in the<br>stream that was clicked.</p>
<p>Return a list of [diatonicNoteNum, closestXNote]<br>for an event (e) called on the svg (svg)</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>svg</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>e</code></td>
<td class="type">
<span class="param-type">Event</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>x</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>y</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1903">line 1903</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>[diatonicNoteNum, closestXNote]</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="get"><span class="type-signature"><static> </span>Stream#get<span class="signature">(index)</span><span class="type-signature"> → {<a href="music21.base.Music21Object.html">music21.base.Music21Object</a>|undefined}</span></h4>
</dt>
<dd>
<div class="description">
<p>Get the <code>index</code>th element from the Stream. Equivalent to the<br>music21p format of s[index]. Can use negative indexing to get from the end.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>index</code></td>
<td class="type">
<span class="param-type">Int</span>
</td>
<td class="description last"><p>can be -1, -2, to index from the end, like python</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-682">line 682</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
|
<span class="param-type">undefined</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getAccidentalToolbar"><span class="type-signature"><static> </span>Stream#getAccidentalToolbar<span class="signature">(minAccidental, maxAccidental, $siblingSvg)</span><span class="type-signature"> → {jQueryObject}</span></h4>
</dt>
<dd>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>minAccidental</code></td>
<td class="type">
<span class="param-type">Int</span>
</td>
<td class="description last"><p>alter of the min accidental (default -1)</p></td>
</tr>
<tr>
<td class="name"><code>maxAccidental</code></td>
<td class="type">
<span class="param-type">Int</span>
</td>
<td class="description last"><p>alter of the max accidental (default 1)</p></td>
</tr>
<tr>
<td class="name"><code>$siblingSvg</code></td>
<td class="type">
<span class="param-type">jQueryObject</span>
</td>
<td class="description last"><p>svg to use for redrawing;</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-2014">line 2014</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>the accidental toolbar.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">jQueryObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getElementsByClass"><span class="type-signature"><static> </span>Stream#getElementsByClass<span class="signature">(classList)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Find all elements with a certain class; if an Array is given, then any<br>matching class will work.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>classList</code></td>
<td class="type">
<span class="param-type">Array.<string></span>
|
<span class="param-type">string</span>
</td>
<td class="description last"><p>a list of classes to find</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1005">line 1005</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getPlayToolbar"><span class="type-signature"><static> </span>Stream#getPlayToolbar<span class="signature">()</span><span class="type-signature"> → {jQueryObject}</span></h4>
</dt>
<dd>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-2082">line 2082</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>a Div containing two buttons -- play and stop</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">jQueryObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getScaledXYforDOM"><span class="type-signature"><static> </span>Stream#getScaledXYforDOM<span class="signature">(svg, e)</span><span class="type-signature"> → {Array.<number>}</span></h4>
</dt>
<dd>
<div class="description">
<p>return a list of [scaledX, scaledY] for<br>a svg element.</p>
<p>xScaled refers to 1/scaleFactor.x -- for instance, scaleFactor.x = 0.7 (default)<br>x of 1 gives 1.42857...</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>svg</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
</td>
<td class="description last"><ul>
<li>a canvas or SVG object</li>
</ul></td>
</tr>
<tr>
<td class="name"><code>e</code></td>
<td class="type">
<span class="param-type">Event</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1761">line 1761</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>[scaledX, scaledY]</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.<number></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getStreamFromScaledXandSystemIndex"><span class="type-signature"><static> </span>Stream#getStreamFromScaledXandSystemIndex<span class="signature">(<span class="optional">xPxScaled</span>, <span class="optional">allowablePixels</span>, <span class="optional">systemIndex</span>)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Returns the stream that is at X location xPxScaled and system systemIndex.</p>
<p>Override in subclasses, always returns this; here.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>xPxScaled</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>allowablePixels</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
10
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>systemIndex</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1810">line 1810</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="getUnscaledXYforDOM"><span class="type-signature"><static> </span>Stream#getUnscaledXYforDOM<span class="signature">(svg, e)</span><span class="type-signature"> → {Array.<number>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Given a mouse click, or other event with .pageX and .pageY,<br>find the x and y for the svg.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>svg</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
</td>
<td class="description last"><p>a canvas or SVG object</p></td>
</tr>
<tr>
<td class="name"><code>e</code></td>
<td class="type">
<span class="param-type">Event</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1712">line 1712</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>two-elements, [x, y] in pixels.</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Array.<number></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="hasLyrics"><span class="type-signature"><static> </span>Stream#hasLyrics<span class="signature">()</span><span class="type-signature"> → {Boolean}</span></h4>
</dt>
<dd>
<div class="description">
<p>Returns true if any note in the stream has lyrics, otherwise false</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-952">line 952</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="hasSubStreams"><span class="type-signature"><static> </span>Stream#hasSubStreams<span class="signature">()</span><span class="type-signature"> → {Boolean}</span></h4>
</dt>
<dd>
<div class="description">
<p>Returns Boolean about whether this stream contains any other streams.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-739">line 739</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="hasVoices"><span class="type-signature"><static> </span>Stream#hasVoices<span class="signature">()</span><span class="type-signature"> → {Boolean}</span></h4>
</dt>
<dd>
<div class="description">
<p>Does this stream have a <a href="music21.stream.Voice.html"><code>music21.stream.Voice</code></a> inside it?</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-2153">line 2153</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Boolean</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="insert"><span class="type-signature"><static> </span>Stream#insert<span class="signature">(offset, el)</span><span class="type-signature"> → {this}</span></h4>
</dt>
<dd>
<div class="description">
<p>Add an element to the specified place in the stream, setting its <code>.offset</code> accordingly</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>offset</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="description last"><p>offset to place.</p></td>
</tr>
<tr>
<td class="name"><code>el</code></td>
<td class="type">
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
</td>
<td class="description last"><p>element to append</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-483">line 483</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">this</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="makeAccidentals"><span class="type-signature"><static> </span>Stream#makeAccidentals<span class="signature">()</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Sets Pitch.accidental.displayStatus for every element with a<br>pitch or pitches in the stream. If a natural needs to be displayed<br>and the Pitch does not have an accidental object yet, adds one.</p>
<p>Called automatically before appendDOM routines are called.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1033">line 1033</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="makeMeasures"><span class="type-signature"><static> </span>Stream#makeMeasures<span class="signature">(options)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Takes a stream and places all of its elements into<br>measures (:class:<code>~music21.stream.Measure</code> objects)<br>based on the :class:<code>~music21.meter.TimeSignature</code> objects<br>placed within<br>the stream. If no TimeSignatures are found in the<br>stream, a default of 4/4 is used.<br>If <code>options.inPlace</code> is true, the original Stream is modified and lost<br>if <code>options.inPlace</code> is False, this returns a modified deep copy.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-764">line 764</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="noteChanged"><span class="type-signature"><static> </span>Stream#noteChanged<span class="signature">(clickedDiatonicNoteNum, foundNote, svg)</span><span class="type-signature"> → {any}</span></h4>
</dt>
<dd>
<div class="description">
<p>Change the pitch of a note given that it has been clicked and then<br>call changedCallbackFunction</p>
<p>To be removed...</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>clickedDiatonicNoteNum</code></td>
<td class="type">
<span class="param-type">Int</span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>foundNote</code></td>
<td class="type">
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>svg</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1924">line 1924</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>output of changedCallbackFunction</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">any</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="noteElementFromScaledX"><span class="type-signature"><static> </span>Stream#noteElementFromScaledX<span class="signature">(xPxScaled, <span class="optional">allowablePixels</span>, <span class="optional">systemIndex</span>, <span class="optional">options</span>)</span><span class="type-signature"> → {<a href="music21.base.Music21Object.html">music21.base.Music21Object</a>|undefined}</span></h4>
</dt>
<dd>
<div class="description">
<p>Return the note at pixel X (or within allowablePixels [default 10])<br>of the note.</p>
<p>systemIndex element is not used on bare Stream</p>
<p>options can be a dictionary of: 'allowBackup' which gets the closest<br>note within the window even if it's beyond allowablePixels (default: true)<br>and 'backupMaximum' which specifies a maximum distance even for backup<br>(default: 70);</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>xPxScaled</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>allowablePixels</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
10
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>systemIndex</code></td>
<td class="type">
<span class="param-type">number</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1833">line 1833</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
|
<span class="param-type">undefined</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="offsetMap"><span class="type-signature"><static> </span>Stream#offsetMap<span class="signature">()</span><span class="type-signature"></span></h4>
</dt>
<dd>
<div class="description">
<p>Returns a list of OffsetMap objects</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-967">line 967</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>[music21.stream.OffsetMap]</p>
</div>
</dd>
<dt>
<h4 class="name" id="playStream"><span class="type-signature"><static> </span>Stream#playStream<span class="signature">(<span class="optional">options</span>)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Plays the Stream through the MIDI/sound playback (for now, only MIDI.js is supported)</p>
<p><code>options</code> can be an object containing:</p>
<ul>
<li>instrument: <a href="music21.instrument.Instrument.html"><code>music21.instrument.Instrument</code></a> object (default, <code>this.instrument</code>)</li>
<li>tempo: number (default, <code>this.tempo</code>)</li>
</ul>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">object</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>object of playback options</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1333">line 1333</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="pop"><span class="type-signature"><static> </span>Stream#pop<span class="signature">()</span><span class="type-signature"> → {<a href="music21.base.Music21Object.html">music21.base.Music21Object</a>|undefined}</span></h4>
</dt>
<dd>
<div class="description">
<p>Remove and return the last element in the stream,<br>or return undefined if the stream is empty</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-579">line 579</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>last element in the stream</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
|
<span class="param-type">undefined</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="recursiveGetStoredVexflowStave"><span class="type-signature"><static> </span>Stream#recursiveGetStoredVexflowStave<span class="signature">()</span><span class="type-signature"> → {Vex.Flow.Stave|undefined}</span></h4>
</dt>
<dd>
<div class="description">
<p>Recursively search downward for the closest storedVexflowStave...</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1675">line 1675</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">Vex.Flow.Stave</span>
|
<span class="param-type">undefined</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="redrawDOM"><span class="type-signature"><static> </span>Stream#redrawDOM<span class="signature">(svg)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Redraws an svgDiv, keeping the events of the previous svg.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>svg</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1953">line 1953</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="renderVexflow"><span class="type-signature"><static> </span>Stream#renderVexflow<span class="signature">(canvasOrSVG)</span><span class="type-signature"> → {vfShow.Renderer}</span></h4>
</dt>
<dd>
<div class="description">
<p>Uses <a href="music21.vfShow.Renderer.html"><code>music21.vfShow.Renderer</code></a> to render Vexflow onto an<br>existing canvas or SVG object.</p>
<p>Runs <code>this.setRenderInteraction</code> on the canvas.</p>
<p>Will be moved to vfShow eventually when converter objects are enabled...maybe.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>canvasOrSVG</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
|
<span class="param-type">JQueryDOMObject</span>
</td>
<td class="description last"><p>a canvas or the div surrounding an SVG object</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1178">line 1178</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">vfShow.Renderer</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="replaceDOM"><span class="type-signature"><static> </span>Stream#replaceDOM<span class="signature">(<span class="optional">where</span>, <span class="optional">preserveSvgSize</span>, elementType)</span><span class="type-signature"> → {JQueryDOMObject}</span></h4>
</dt>
<dd>
<div class="description">
<p>Replaces a particular Svg with a new rendering of one.</p>
<p>Note that if 'where' is empty, will replace all svges on the page.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>where</code></td>
<td class="type">
<span class="param-type">JQueryDOMObject</span>
|
<span class="param-type">DOMObject</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
</td>
<td class="description last"><p>the canvas or SVG to replace or a container holding the canvas(es) to replace.</p></td>
</tr>
<tr>
<td class="name"><code>preserveSvgSize</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>elementType</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
</td>
<td class="default">
svg
</td>
<td class="description last"><p>what type of element, default = svg</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1570">line 1570</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>the svg</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">JQueryDOMObject</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="resetRenderOptions"><span class="type-signature"><static> </span>Stream#resetRenderOptions<span class="signature">(<span class="optional">recursive</span>, <span class="optional">preserveEvents</span>)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Resets all the RenderOptions back to defaults. Can run recursively<br>and can also preserve the <code>RenderOptions.events</code> object.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Argument</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>recursive</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>preserveEvents</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="default">
false
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1140">line 1140</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="setRenderInteraction"><span class="type-signature"><static> </span>Stream#setRenderInteraction<span class="signature">(canvasOrDiv)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Set the type of interaction on the svg based on</p>
<ul>
<li>Stream.renderOptions.events.click</li>
<li>Stream.renderOptions.events.dblclick</li>
<li>Stream.renderOptions.events.resize</li>
</ul>
<p>Currently the only options available for each are:</p>
<ul>
<li>'play' (string)</li>
<li>'reflow' (string; only on event.resize)</li>
<li>customFunction (will receive event as a first variable; should set up a way to<pre class="prettyprint source"><code> find the original stream; var s = this; var f = function () { s...}
)</code></pre></li>
</ul>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>canvasOrDiv</code></td>
<td class="type">
<span class="param-type">DOMObject</span>
</td>
<td class="description last"><p>canvas or the Div surrounding it.</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1630">line 1630</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="setSubstreamRenderOptions"><span class="type-signature"><static> </span>Stream#setSubstreamRenderOptions<span class="signature">()</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Sets the render options for any substreams (such as placing them<br>in systems, etc.) DOES NOTHING for music21.stream.Stream, but is<br>overridden in subclasses.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1127">line 1127</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="stopPlayStream"><span class="type-signature"><static> </span>Stream#stopPlayStream<span class="signature">()</span><span class="type-signature"> → {musci21.stream.Stream}</span></h4>
</dt>
<dd>
<div class="description">
<p>Stops a stream from playing if it currently is.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-1394">line 1394</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type">musci21.stream.Stream</span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id="windowReflowStart"><span class="type-signature"><static> </span>Stream#windowReflowStart<span class="signature">(jSvg)</span><span class="type-signature"> → {<a href="music21.stream.Stream.html">music21.stream.Stream</a>}</span></h4>
</dt>
<dd>
<div class="description">
<p>Begins a series of bound events to the window that makes it<br>so that on resizing the stream is redrawn and reflowed to the<br>new size.</p>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>jSvg</code></td>
<td class="type">
<span class="param-type">JQueryDOMObject</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-2110">line 2110</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>this</p>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.stream.Stream.html">music21.stream.Stream</a></span>
</dd>
</dl>
</dd>
<dt>
<h4 class="name" id=".this.DOMChangerFunction"><span class="type-signature"><static> </span>this.DOMChangerFunction<span class="signature">(e)</span><span class="type-signature"> → {<a href="music21.base.Music21Object.html">music21.base.Music21Object</a>|undefined}</span></h4>
</dt>
<dd>
<div class="description">
<p>A function bound to the current stream that<br>will changes the stream. Used in editableAccidentalDOM, among other places.</p>
<pre class="prettyprint source"><code> var can = s.appendNewDOM();
$(can).on('click', s.DOMChangerFunction);</code></pre>
</div>
<h5>Parameters:</h5>
<table class="params table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>e</code></td>
<td class="type">
<span class="param-type">Event</span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source">
<ul class="dummy">
<li>
<a href="music21_stream.js.html">music21/stream.js</a>,
<a href="music21_stream.js.html#sunlight-1-line-131">line 131</a>
</li>
</ul>
</dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<ul>
<li>returns whatever changedCallbackFunction does.</li>
</ul>
</div>
<dl>
<dt>
Type
</dt>
<dd>
<span class="param-type"><a href="music21.base.Music21Object.html">music21.base.Music21Object</a></span>
|
<span class="param-type">undefined</span>
</dd>
</dl>
</dd>
</dl>
</article>
</section>
</div>
<div class="clearfix"></div>
<footer>
<span class="copyright">
Music21j, Copyright © 2013-2018 Michael Scott Cuthbert and cuthbertLab.
</span>
<br />
<span class="jsdoc-message">
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a>
on Wed Jul 4th 2018 using the <a
href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
</span>
</footer>
</div>
<div class="span3">
<div id="toc"></div>
</div>
<br clear="both">
</div>
</div>
<!--<script src="scripts/sunlight.js"></script>-->
<script src="scripts/docstrap.lib.js"></script>
<script src="scripts/bootstrap-dropdown.js"></script>
<script src="scripts/toc.js"></script>
<script>
$( function () {
$( "[id*='$']" ).each( function () {
var $this = $( this );
$this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) );
} );
$( "#toc" ).toc( {
anchorName : function ( i, heading, prefix ) {
return $( heading ).attr( "id" ) || ( prefix + i );
},
selectors : "h1,h2,h3,h4",
showAndHide : false,
scrollTo : "100px"
} );
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
$( '.dropdown-toggle' ).dropdown();
// $( ".tutorial-section pre, .readme-section pre" ).addClass( "sunlight-highlight-javascript" ).addClass( "linenums" );
$( ".tutorial-section pre, .readme-section pre" ).each( function () {
var $this = $( this );
var example = $this.find( "code" );
exampleText = example.html();
var lang = /{@lang (.*?)}/.exec( exampleText );
if ( lang && lang[1] ) {
exampleText = exampleText.replace( lang[0], "" );
example.html( exampleText );
lang = lang[1];
} else {
lang = "javascript";
}
if ( lang ) {
$this
.addClass( "sunlight-highlight-" + lang )
.addClass( "linenums" )
.html( example.html() );
}
} );
Sunlight.highlightAll( {
lineNumbers : true,
showMenu : true,
enableDoclinks : true
} );
} );
</script>
<!--Navigation and Symbol Display-->
<!--Google Analytics-->
</body>
</html>