1. 12 Mar, 2022 1 commit
    • Chris Wraight's avatar
      Consolidate Gate data · 63fcc7fb
      Chris Wraight authored
      - Expand Gate blocks to 8 bytes, and store x positions and widths in the main Gate bytestream
      - Remove PTYPE%(), PX%() and PW%() arrays from code
      - Remove check for max gates in file - files now limited only by available memory
      - Rewrite typesetting, printing and loading/saving routines to use the new Gate blocks
      - Update Notes documentation
      Version 2.19. Tagged as 'Maestro-2_19'
  2. 27 Oct, 2021 1 commit
    • Chris Wraight's avatar
      Add beaming · d69459a4
      Chris Wraight authored
      Dynamically beam barbed notes (quavers, etc). Beams are added to score on loading a file, and updated as notes are edited. Only notes of the same orientation are beamed and notes in the same chord must be placed in the same column on the score.
      Version 2.18. Tagged as 'Maestro-2_18'
  3. 27 Mar, 2021 1 commit
    • Chris Wraight's avatar
      Bug fixes · e7ba1c44
      Chris Wraight authored
      A number of fixes following testing of recent changes:
      - PROCinsert_gate: Ensure pointers to music data are preserved when the Gate heap block is resized, to prevent possible corruption
      - PROCmove_note: Call to PROCSetupBarStarts is superfluous here, since it's called later on
      - PROCplay_notes: Fix calculation of tie lengths
      - PROCdraw_notes: Ensure dots are positioned correctly after staggered notes
      - A number of Maestro files tested have key signatures of 1/x. It's not clear how these were created (the interface has never allowed it) but since such signatures are technically legal, add sprites to display them correctly when encountered. Also extend the interface to allow them to be entered into scores. These bar lengths seem to cause the scrolling to become a little jerky but otherwise appear to work fine.
      Version 2.17. Tagged as 'Maestro-2_17'
  4. 13 Mar, 2021 1 commit
    • Chris Wraight's avatar
      Memory Changes · 09cae55f
      Chris Wraight authored
        Each Maestro file is held in memory as nine blocks of bytes: one for 'Gate' data,
        and eight for Note information for each audio channel. Maestro reserved a very big
        WimpSlot of 720K, and merely divided the space between the end of the program and
        the end of the Wimpslot by 9 to get equally spaced pointers for each byte block.
        This was very wasteful (Maestro files are typically only 1-2K in size), and there's
        no checking to prevent writes from running off the end of the Wimpslot.
        These changes
        - Add new memory management routines
        - Place all program data in resizable heap blocks
        - Remove EnsureRMA check
        Tested on a variety of Maestro files. There's still plenty of inefficiency in
        the way Maestro handles its data but typically, even with Sprites11 loaded, the
        Wimpslot goes down to 380K.
      Version 2.16. Tagged as 'Maestro-2_16'
  5. 10 Feb, 2021 1 commit
    • Chris Wraight's avatar
      Add Chords · 29a59e31
      Chris Wraight authored
        Maestro doesn't have any concept of chords, so notes in the same x column are just
        overlaid on one another. In the case of notes with barbs (quavers, etc) this can result
        in messy or unintelligible layouts. 'Staggered' notes (where note heads are in too close
        proximity and need to be nudged) are just shifted right, with no proper algorithm to
        determine which note heads need to be moved or where they should go. To address this
        - Expand Note blocks to 1 word to make space to hold more data
        - Calculate Chord and Stagger data for Notes within Gates
        - Update typesetting routines to space and redraw chords accurately
        Tested with a variety of Maestro files
      Version 2.15. Tagged as 'Maestro-2_15'
  6. 04 Nov, 2020 1 commit
    • Chris Wraight's avatar
      Improvements to tie handling · 87f67c8f
      Chris Wraight authored
      -Ties can be now be over or under the note.
      -Only notes in the current or next bar are checked for being tied to.
      -The tie sprite is scaled to match the gap between notes.
      -Ties can no longer be attached to rests.
      -Deleting the second note also deletes the tie.
      Version 2.14. Tagged as 'Maestro-2_14'
  7. 01 Jun, 2019 1 commit
    • ROOL's avatar
      Rest positioning changes · e5b5e114
      ROOL authored
        The vertical position of rests can now be set. As a consequence of this, you can now also put more than one rest on the same vertical column on a stave.
        A longstanding redraw bug has been fixed, meaning that multi-part scores shouldn't experience corruption when notes/rests are added or deleted in multi-part staves.
        Minor spacing tweaks made to barlines and rests.
        Submission from Chris Wraight.
      Version 2.13. Tagged as 'Maestro-2_13'
  8. 13 Apr, 2019 1 commit
    • ROOL's avatar
      Comment and indentation improvements · 003f6b2b
      ROOL authored
        Readability improvements ahead of some other changes
        Submission from Chris Wraight.
      Version 2.12. Tagged as 'Maestro-2_12'
  9. 02 Feb, 2019 1 commit
    • ROOL's avatar
      Further UI improvements · b693b127
      ROOL authored
      - Barline popup menu is now the right width for the title string
      - Toolbar opens at the right size if the main window is very wide on first open
      - MIDI channel menu handles ticks correctly
      - Audio output is only set when the dialogue box's Set button is clicked
      - Double barlines implemented in printing as well as on screen
      - Double barlines, key signatures and time signatures positioned and spaced more accurately
      - Tweaks to sprite handling to ensure correct alignment in all screen modes (sdsqu, sharp, squ, streble)
        Submission from Chris Wraight
      Version 2.11. Tagged as 'Maestro-2_11'
  10. 08 Dec, 2018 1 commit
    • ROOL's avatar
      User interface overhaul · 720a9d0e
      ROOL authored
        Largely rewritten interface, designed to be more Style Guide compliant, as well as enabling easy addition of new features. Key changes are:
        * New templates, sprites, messages and supporting Wimp code. Some bugs squashed. Menus and dialogue boxes redesigned
        * Keypresses and input focus added
        * Breve, semibreve and minim rests are now properly distinguished and given their own sprites and positions
        * Double barlines can be added
        * The only other functional change is that if MIDI is present Maestro no longer sends music to both the internal system and the MIDI device when playing. The user can select which one to use from the Instruments window, and there is a tidier method of selecting MIDI channels.
        Submission from Chris Wraight.
      Version 2.10. Tagged as 'Maestro-2_10'
  11. 22 Mar, 2018 1 commit
  12. 11 Jun, 2017 1 commit
  13. 10 Jun, 2017 2 commits
    • ROOL's avatar
      Substitute common SWI names for strings · 2ac764e3
      ROOL authored
        During a build Squish will look up OS and Wimp SWIs (and others), so remove the run time lookup.
        SendMessage->Wimp_SendMessage; OS_File->OS_File; GetWindowOutline->Wimp_GetWindowOutline; unused SetColour deleted.
      Version 2.04. Tagged as 'Maestro-2_04'
    • ROOL's avatar
      Time signature and positional improvements · df537fce
      ROOL authored
        * Time signatures are now displayed as sprites, both on screen and printed
        * Take the plunge and delete the sprites that are unused
        * Some minor positioning tweaks and updates to the sprite files
        Submission from Chris Wraight.
      Version 2.03. Tagged as 'Maestro-2_03'
  14. 27 May, 2017 1 commit
    • ROOL's avatar
      Update sprites to use 16 colours (greys) · d1726911
      ROOL authored
        Improve the visual appearance of scores by using blended graphics.
        Only the sprite set in use is now held in memory, previously unused sets were too, and add support for EX0 EY0 modes.
        Sprites updated based on bitmap captures of the PMS font by Richard Hallas, with kind permission.
        Submission from Chris Wraight.
      Version 2.02. Tagged as 'Maestro-2_02'
  15. 22 Nov, 2014 1 commit
    • Robert Sprowson's avatar
      Fix some minor inconsistencies · 59e2e920
      Robert Sprowson authored
      Having carefully reviewed the SYS calls, there's no good reason to RMEnsure UtilityModule 3.60.
      Tested on an A5000 with Wimp 3.16.
      Version 2.01. Tagged as 'Maestro-2_01'
  16. 19 Jan, 2014 1 commit
    • Robert Sprowson's avatar
      Actually load the file when the RunType alias is used · cac4e61f
      Robert Sprowson authored
      Maestro was carefully parsing the file to load in the situation that it had been run because of the RunType alias, but not loading the file.
      This is because the load operation was deferred into the null poll case after Wimp_Poll, except that Maestro only uses null polls while playing.
      Also shuffled some of the init into FNinitialise.
      Version 2.00. Tagged as 'Maestro-2_00'
  17. 18 Dec, 2013 1 commit
    • Robert Sprowson's avatar
      Fix for undefined variable error · 55797ab7
      Robert Sprowson authored
      Maestro was using Wimp_ReadSysInfo 2 as a proxy for finding the current eigenfactors, but in builds supporting alpha blending this can now be non-numeric.
      The CASE statement only has a palette of 4 known combinations, so "A2" failed to set the sprite block variable.
      Even the sprite extension was purely numeric, the same fault would occur in (for example) EX2 EY1 mode for the same reason.
      Changed to read the eigenfactors from OS_ReadModeVariable.
      Tested on a Risc PC, now loads successfully.
      Version 1.99. Tagged as 'Maestro-1_99'
  18. 12 May, 2013 1 commit
    • Robert Sprowson's avatar
      Import of Ursula and Morris4 themed sprites · 6de087bb
      Robert Sprowson authored
      Removed the code where !Maestro (re)merged its sprites with the Wimp pool, aside from being unnecessary duplication, avoids needing to duplicate the Wimp's suffix searching algorithm.
      Version 1.98. Tagged as 'Maestro-1_98'
  19. 03 Apr, 2013 1 commit
  20. 09 Oct, 2012 1 commit
  21. 26 Sep, 2012 1 commit
    • Robert Sprowson's avatar
      Breve, semibreve, minim rests made easier to distinguish · d5ad6a29
      Robert Sprowson authored
      These all use the same sprite, but are placed horiztonally next to eachother so are hard to visually distinguish. Template adjusted to show their relative positions.
      Added score to a piece by Ed Welch.
      Version 1.95. Tagged as 'Maestro-1_95'
  22. 05 Sep, 2012 1 commit
    • Robert Sprowson's avatar
      Addition of extra sample maestro file and minor admin · 3d810cc5
      Robert Sprowson authored
      * ShostF7 is Fugue number 7 in A major from 24 Preludes and Fugues, opus 87 by Dmitri Shostakovich. Score entered by Richard Hallas, who provides it here in maestro format
      * Makefile adjusted to insert build version and date into messages file automatically
      * Sources reimported as text to allow easier diffing. For the full history, you'll need to look at "!RunImage,ffb" in the attic
      Tested briefly, info box is now right, and tunes are still played.
      Version 1.94. Tagged as 'Maestro-1_94'
  23. 14 Jan, 2012 1 commit
  24. 24 Oct, 2009 1 commit
  25. 05 Nov, 2007 1 commit
    • Steve Revill's avatar
      Miscellaneous changes to Maestro. · bb71d9fb
      Steve Revill authored
        Fixed main window menu to conform with RO3 Style guide.
        Maestro no longer uses null polls when it's doing nothing.
        Tested on RiscPC RO402. Using !TaskUsage to check usage of null polls.
        Changes by James Lampard.
      Version 1.91. Tagged as 'Maestro-1_91'
  26. 22 Jan, 2007 1 commit
    • Steve Revill's avatar
      Minor tweaks to build and install correctly. · ce5ead24
      Steve Revill authored
        Some changes were required in order for this component to build and install
        correctly. These changes are required for the ROOL 'Disc' build.
        Tested in Iyonix 'Disc' build using ROOL 'BuildEnv' build environment
        NOTE: the filer needs to have seen !Printers for this component to build!
      Version 1.90. Tagged as 'Maestro-1_90'
  27. 21 Feb, 2003 2 commits
    • Steve Revill's avatar
      Changed to use objasm. · 8a1271bb
      Steve Revill authored
      2D templates and sprites23 nuked.
      Now determines size of private sprites at run time rather than a
      hardcoded 12k.
      Updated version number in Messages and Templates.
      Version 1.89. Tagged as 'Maestro-1_89'
    • Steve Revill's avatar
      created by srccommit. · af4ee606
      Steve Revill authored
  28. 16 Dec, 1996 1 commit
  29. 05 Nov, 1996 1 commit