2025-01-15 * Revision: 192 - updated compile script for the new pdf.min.mjs version * Revision: 191 - corrected a crash in showSyncInfo when detix == -1, which can happen when one checks/unchecks enable sync multiple times on a new score * Revision: 190 - used promise and await to change recursive calls into a loop while reading pdf pages - new test page "onepdf.html" added * Revision: 189 - added example with new panning and volume URL-parameters for the mixer - updated pdf.js to latest minimized module version pdf.min.mjs - small changes to adapt synpdf to the new version of pdf.js 2024-12-09 * Revision: 188 - added option "solo=n", n >= 1 The solo button of track n is set 2024-12-08 * Revision: 187 - added options "tvol" and "tpan" to set the volume and panning sliders. tvol=<comma separated list of volumes (0..100) without spaces> tpan=<comma separated list of pannings (0..100) without spaces> These lists have the same length as the number of tracks. The master slider is set by adding an extra volume to the tvol list - new functions setTrkVol, setTrkPan and setMstrVol - new function mixerOpties 2024-12-07 * Revision: 186 - also include play_list when evaluating the preload file - new function muteTrk(tracknumber) - changed boolean option "muted" into option "mute=track list" where the track list is a comma sepated list of track numbers (1..). 2024-12-05 * Revision: 185 synpdf.js: - new option: opt.muted with URL parameter &muted. starts mixer with mastervolume muted - pass whole option object (opt) to deMixed.init() mixer.js: - call mutemstr() when opt.muted is true - accommodate whole option object in initMixer() and mixplayer.init() compile: - compile scripts updated 2024-08-25 * Revision: 184 - website van Gertim gecorrigeerd 2024-02-11 * Revision: 183 - initial-scale bug 2023-04-05 * Revision: 182 - added demo section for the mixer to web site - inhibit all mouse clicks while audio files are loading, by showing a grey background covering the whole window - add padding to the credit div 2023-03-19 * Revision: 181 - media_file needs to be imported in mixer, because it is no longer a global - add parsing of media_dir and msc_tracks in evalPreload * Revision: 180 - improved the preload parser (evalPreload) - replaced the two remaining eval's by evalPreload * Revision: 179 - define onYouTubeIframeAPIReady in the synpdf module by assigning to windows - in evalPreload () only assign variables that are present in the preload 2023-03-18 * Revision: 178 - added a special interpreter for the preload to avoid eval() 2023-03-17 * Revision: 177 - replace jquery $.get by XHR - remove global vars into module except onYouTubeIframeAPIReady 2023-03-15 * Revision: 176 - changed synpdf.js into a module - removed dynamic import ans used regular import - moved global definitions to sympdf.html in a script tag * Revision: 175 - add global variabl media_dir. When this variable is set to a path, that path is added to all media files. These are: pdf_file, media_file and the files defined by msc_tracks. - media_dir can be set in the preload file or by the URL parameter mdir. - media_dir is not saved in the preload. In stead all file names are saved as complete file paths, including the prefix set by media_dir. * Revision: 174 - mixer module added - documentation of changes are in the mixer revision tree - updated compiler script for the mixer module 2023-03-02 * Revision: 173 - display body element as flex box - only #notation area has flex: 1 1 auto, #err has flex: 0 0 5% - move credit field (#crediv) to the main level of the buttons flex box - new globals xcurprev and ycurprev to optimize cursor drawing - the cursor is created only once, when Wijzer() is initialized (cursor object) - draw the cursor by only setting the coordinates and width - setNotationHeight only sets the video width and the top margin of the dotted line - only the button area can be used for changing its size (msc_shift)