2007-12-30 Click on a notehead and drag up and down to change pitch. Sounds while doing so. 2007-12-30 KeySignatures rendered left of meter 2007-12-30 Going from key sig to C major renders a cancelling key sig made of naturals (no other key sig changes shows cnacelling naturals) 2007-12-30 AutoBeaming addNote(), defaults to true. Can switch on/off with AutoBeam message 2007-12-30 AutoBeamTransform . Select notes and send this message and all notes in track of selected notes will be autobeamed. Autobeaming is different than beaming because it observes beat boundaries. 2007-12-30 setActiveTrackIndexForMouseEntry, send it 0 or 1 2008-01-01 capture with timestamp argument 2008-04-11 send numMeasures out first outlet every time score renders. Then canvas can adjust range on measure scrollbar 2008-04-13 pass keys through to MaxScore so edit manager and ScoreCommand Center can handle them. 2008-04-13 dumpInstrumentInfo and getNumInstruments messages 2008-04-13 transcriber uses dimension name space of instruments associated with voice#. 2008-04-16 get/SetStaffSpacing messages, setSetMeasureWidth messages, realignMeasure message, added dumpInstruments and getNumInstrument to help file 2009-05-02 send flash x, y, diameter for noteflashing, store point in vector to handle on/off (add when on remove when off) 2009-05-15 MusicCurve Rendering 2009-05-16 ScoreLayoutListener callback when 2009-05-17 Staff line visibility ledger lin visibility 2009-06-18 changed numMeasures to scoreLayout adding zoom 2009-07-07 setSelectionBufferNoteColor r g b 2009-10-24 transcribe midi file no longer sets beatidivision scheme list to default; let's user set 2009-10-25 after loading score file, score.getEditManager().setEditStateProvider(this); so that defaults for mouse entry are active setNoteheadColor r g b setReportRenderTime true|false toggles the report of rendering time to Max window 2010-01-30 showCourtesyClefs true|false show or hide "courtesy clefs". A courtesy clef is drawn when a clef in a different staff changed new scores default to false setWrap true|false turns layout of system wrapping on/off overrideStemDirection string Lets user override layout manager's opinion of stem direction of notes in selection buffer arg is UP, DOWN, or CLEAR "CLEAR" returns control to layout manager setMeasureNumberOffset int measure number offset is a number added to measure indexes (which are zero based), for displaying measure numbers in score. Graphical only, no method calls refer to this (ie first measure is always measure 0 even if offset is non-zero 2010-02-02 addNewMaxScoreInstrumentToOrchestra Add new instrument as the last instrument in the orchestra. Its index will be orch.size - 1 setInstrument(int insIndexInOrchestra, int measureIndex, int staffIndex) Set the instrument in the orchestra whose number is insIndexInOrchestra to the indicated measure and staff. Change all subsequent measures as well dumpOrchestra dumpInstrument for each ins in orch getOrchestraSize Number of instruments in orchestra getInstrumentName(int index) Name of instrument in orchestra setInstrumentName(int index, String name) Name an instrument in orchestra 2010-03-27 newScore has optional 4th param to render or not 2010-04-20 Drag notes up and down with command-shift works now 2010-04-26 makeGraceNotesTransform makes selected notes grace notes that get attached to the following unselected note detachGraceNotesTransform detaches grace notes from selected notes. IMPORTANT: grace notes are not performed setLoopingPlayback affects playback (switch ot off and it will stop looping), works kinda well, a little funky right now does not finish on current measure, but on next repeat - need to debug some more 2010-04-27 mark_acciaccatura supported now 2010-05-31 All rendering messages arriving to MaxScore as double precision points and angles. 2010-06-01 RenderedMessage API in place! 2010-06-07 bug fix: play section was not respecting pageturn flag 2010-06-17 bug fix rendered message listener array index was crashing 2010-06-18 bug fix: creating double atoms out of double tokens in rendered message string where possible 2010-12-26 bug fix: note flashing toggled properly now 2010-12-27 Selected staff is highlighted now. Turn this feature on or off with highlightSelectedStaff true|false 2011-01-02 for flashing, noteheads are rendered in a different color instead of using flash. 2011-01-08 New note selection messages: selectAllNotesInMeasure(int measureIndex) selectAllNotesInStaff(int staffIndex) selectAllNotesInMeasureStaff(int measureIndex, int staffIndex) selectAllNotesInMeasureStaffTrack(int measureIndex, int staffIndex, int trackIndex) GENERAL PURPOSE MESSAGE FOLLOWS: IMPORTANT!!! "to" indexes are EXCLUSIVE!!! selectAllNotesInRange(int fromMeasureIndex, int toMeasureIndex, int fromStaffIndex, int toStaffIndex, int fromTrackIndex, int toTrackIndex) 2011-01-14 Select notes with pitch mod modulus = pitchClass in specified range: selectAllNotesInRange(int fromMeasureIndex, int toMeasureIndex, int fromStaffIndex, int toStaffIndex, int fromTrackIndex, int toTrackIndex, int pitchClass, int modulus) 2011-01-16 New messages for timestamped playback: getJMSLRealTime getJMSLNow start(double jmslTimeStamp) playSection(double jmslTimeStamp) Use getJMSLRealtime message to retrieve current JMSL clock time or getJMSLNow to retrieve clocktime + advance time. Advance time is typically 0.1 sec. A little jitter-absorbing buffer. Then pass that value (optionally adding some value) to start or playSection For example, you might want to add 1 second to the clock time and use this future time stamp to launch a score Or you may want to launch multiple scores at the same time. So pass the same timestamp to all of them Or you may want to play multiple scores in a round, by passing offset start times to each Note: do not launch with the result of JMSLRealtime. Add a little to it so the launch time is slightly in the future to absorb timing jitter 2011-01-17 Transcriber: shiftCapturedTimeStampsToZero true|false message gives you option of shifting the timestamp of the first capture event (and all subsequent capture events) to the downbeat of the piece or not. Default until now was true. The first capture event was shifted "left" to the timestamp of the startCapture message Transcriber: new capture message the specifies hold time (ie how long event sustains sound, not the same as duration) capture(double timeStamp, int voiceIndex, double pitch, double amp, double hold) For example the hold time for quarter notes (whose duration is 1.0) might be 0.8 while the hold time for staccato quarter notes might be 0.2 2011-01-18 setHoldTimeScaler(double scaler) specifies what fraction of duration is assigned to a note's hold time when a note is created 2011-01-24 Better grace note messages: Add grace note with specified properties to selected note(s) public void addGraceNote(double duration, double pitch, double amp, double hold, boolean accPreferSharp, boolean beamedOut, boolean slurredOut, boolean tiedOut, boolean slashed, int mark) /** remove all grace notes from all selected notes */ removeGraceNotes() 2011-01-25 sequenceDump in hyperspeed now includes tempo as 3rd param insIndex timeStampRelativeToStart TEMPO DURATION PITCH AMP UNTEMPOSCALEDHOLD Using vertical line "|" as a line break delimitter for text attached to Notes (instead of backslash). Line height is g.getFontMetrics().getMaxAdvance() 2011-01-29 Two messages for setting text in a measure: setMeasureText(int measureIndex, String text) { setMeasureTextLocation(int measureIndex, int x, int y) { 2011-03-12 Implemented JMSLMaxClock, and using as JMSL.clock Removed score.getScoreCollection().waitForDone(); from start() which causes spinning wheel of death in Max5 when using JMSLMaxClock (why?) 2011-03-13 removeAllRenderedMessagesFromSelectedNotes() removeRenderedMessagesFromNote(int measureIndex, int staffIndex, int trackIndex, int noteIndex) removeRenderedMessageFromMeasure(int measureIndex) removeRenderedMessagesFromStaff(int measureIndex, int staffIndex) 2011-03-27 Renamed the above as: removeAllRenderedMessagesFromSelectedNotes removeAllRenderedMessagesFromNote removeAllRenderedMessagesFromMeasure removeAllRenderedMessagesFromStaff New score margin support: set/getScoreLeftMargin set/getScoreRightMargin set/getScoreTopMargin set/getScoreBottomMargin 2011-03-29 New support for first page of score (ie when first measure number is 0) First page has a user settable additional top margin: getScoreTopMarginOfFirstPage, setScoreTopMarginOfFirstPage(double v) setTitleVisible(boolean show), displays or hides title, subtitle, and composer as well as extra margin setSubtitle(String subtitle) . Subtitle displayed below title on first page. Subtitle also exports to Lilypond 2011-03-30 Change in old message: setTitle echoes "title " instead of "name " new message getTitle outputs "getTitle " new message getSubtitle outputs "getSubtitle " new message getComposer outputs "getComposer " new message getCopyright outputs "getCopyright " Score's EditManager checks before adding notes to selection buffer, avoiding duplicate add's 2011-04-11 setMark supports args MARK_BOWED_TREMOLO_1, MARK_BOWED_TREMOLO_2, MARK_BOWED_TREMOLO_3 2011-04-15 MaxScore checks if Maestro font is installed. If so, it will default to useMusicGlyphRendererProxy true setTitleVisible defaults to false