2025-03-29 * Revision: 149 - bug in function edo53cor prevented playing chords when edo53 tuning was used * Revision: 148 - detect edo53 (%%MIDI temperamentequal 53) - correction of makam rast scale (major) when in edo53 - set flat to -5 comma and sharp to +4 comma when in edo53 and key is defined by a <fifths> element. 2025-03-25 * Revision: 147 - new URL parameter inst=v0:i0,v1:i1... sets initial instruments for given voice:instrument-number pairs (overrides %%MIDI, but only at the beginning) - added svg36 constant also to xmlplay_emb.js - added microtonal examples to xmlplay_emb.html 2025-03-23 * Revision: 146 - misplaced var declaration - applied changes for fractional accidentals from xmlplay.js 2025-03-22 * Revision: 145 - disable voicemaps during the model parsing to enable correct computation of fractional midi numbers for tablature scores * Revision: 144 - play and display fractional accidentals (makam and up/down variants) - added svg definitions for up/down accidentals (edo36) - function setKey accepts (explicitly added) fractional accidentals - compute midi number as an integer value plus a detune value in cents - add the cent value to functions speel and opneer - set the AudioBufferSourceNode parameter detune to the midi cent value - use midinumber from abc2svg when cent == 0 (no fractional accidental) 2025-03-18 * Revision: 143 - rewrite getPreload and parsePreload with await - remove continuation parameter from function doParms - don't start playback in function laadNoot - don't test audioCtx before calling laadNoot in function parseModel * Revision: 142 - remove promise in inst_create and change tail recursion into a loop - rewrite laadNoot with loops and await - logic bug setting withRT with parameter p.noRT - update github url for midi-js fonts - m-key should also work when menu is active xmlplay_emb.html: - larger value of stretchlast needed in the bass example of xmlplay_emb.html - use position:fixed for dialog style .dlog 2024-04-02 * Revision: 141 - allow for an initial title svg without music 2024-03-30 * Revision: 140 - bug: the intrument map was not initialized correctly 2024-03-28 * Revision: 139 - only tie a note when the note time has the expected value (implied by the tying note) 2024-03-26 * Revision: 138 - bug in swing test - copied swing logic to xmlplay_emb 2024-03-25 * Revision: 137 - swing style on/off for quarter notes with "^swing" and "^straight" 2024-03-21 * Revision: 135 - add function checkDecos() which checks dynamics and swing decoration - add !swing2! decoration that can be placed on the second note of a swing pair 2024-03-01 * Revision: 134 - changing the instrument numbers in the menu now really changes the sound and loads new SF2 soundfonts if needed. This only works for SF2 synthesis, not (yet) for MIDIjs. - function setMidiInst is the event handler of the instrument input field and implements the mapping of the voice to a new instrument. 2024-02-29 * Revision: 133 - added input fields for midi instrument numbers below the sliders - refactored code for loading instruments: tail recursion replaced by normal loops with await expressions 2024-02-28 * Revision: 132 - flex menu with sliders - implement sliders for volume and panning of all voices 2024-02-23 * Revision: 131 - added sf2 fall back directory to the parameter element <div id="parms"> in the html file (xmlplay.html. xmlplay_emb.html) - this fall back directory (./jssf_files/) contains precooked sf2 javascript files for all standard GM midi instruments. 2024-02-14 * Revision: 130 - parsePreload levert een belofte op die pas vervuld wordt als alle parameters gelezen zijn (aanroep verder('ok') in doParms()). - wacht op parsePreload met await - syntax fouten in parms.js => logerr 2024-02-13 * Revision: 129 - lees parameter file (parms.js) uit dezelfde directory als het muziekbestand - harmoniseer parameters