From 38098569f49b0245f976943f5b65db4230bbf467 Mon Sep 17 00:00:00 2001 From: ahlstrom Date: Wed, 6 Dec 2023 06:44:36 -0500 Subject: [PATCH] Safety check-in of minor changes. --- ChangeLog | 461 +++++++++++++++++++++++++++++++ TODO | 7 +- data/midi/FM/longhair.mid | Bin 23580 -> 31971 bytes doc/latex/tex/patterns_panel.tex | 10 +- libseq66/src/cfg/usrsettings.cpp | 2 +- 5 files changed, 473 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6d788c1f..0745c8d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,466 @@ +2023-12-06 Chris Ahlstrom + + * LICENSE, NEWS, README.md, RELNOTES, VERSION, configure, + configure.ac, data/license.text, data/readme.text, + data/readme.windows, include/config.h.in, + include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h: Set up for next version. + +2023-12-05 Chris Ahlstrom + + * README.md: Release Notes for Seq66 v. 0.99.11 2023-12-05 - Added 8 more ui-palette entries, total of 32. - Added display of the pattern input bus (if present) in the grid slot. - Moved style-sheet options from 'usr' to the 'rc' file. - Fixed errors setting style-sheet, palette, and mutes file in Preferences / Session. Now indicates when exit is needed. - Added mute-group label ("MG") to main window. - Fixing various playlist errors: - PPQN setting issue causing slow/fast playback. Cannot display 120 PPQN well, fix too intrusive at this time. - Segfaults due to not stopping playback before loading the next song, or basing calculations on missing values. - Embarassing fixes: - The massive botch of the Set Master tab. - More Mutes tab fixes, including raising modify flag. - App exiting unceremoniously if "quiet" is set. - Issue in Song zoom with 1920 PPQN. - Odd bug breaking MIDI-control-out (display). - Preventing long redundant start-up error messages. - Solo feature. Unsolo before starting another solo. - Queue and keep-queue. - Not saving record-by-channel. Fixed record-by-channel. - Not modifying the song when pattern measures is changed. - Breakage of stopping song play at the end of song. - Bug in event-editor initialization. - Not applying note-length setting to step-edit. - Added a pre-made MIDI file to use with record-by-channel. - Added ways to toggle recording of multiple patterns. - Added a record-by-buss feature. - Can now paste a pattern into a new or another loaded MIDI file. - When loading a MIDI file, the file dialog defaults to the last-used directory. Fixes made to this feature. - Improved copy/paste for screen-sets. - Added optional parameter to --priority option. - Focus is now set immediately to seqroll and perfroll. - --verbose now shows playlist actions on the console and prevents daemonization and logging to a file. - Replaced the --inspect option with --session-tag for easy selection of another setup specified in sessions.rc. Also added the SEQ66_SESSION_TAG environment variable. - Added showing program changes in slot button. - Added showing text events in the data pane and all text events in the main Session tab. Fixed its Save Info button. - Implemented "menu-mode" automation. It duplicates the function of the hide/show button, to toggle between hiding some main window controls and the main menu, and showing them. See NEWS for more details. + * FDL.txt, GPL.txt, LGPL.txt, LICENSE, README.md, RELNOTES, TODO, + VERSION, configure.ac, data/readme.text, data/readme.windows, + include/config.h.in, include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, + libseq66/src/cfg/playlistfile.cpp, + libseq66/src/sessions/smanager.cpp, nsis/Seq66Constants.nsh, + nsis/build_release_package.bat, seq_qt5/forms/qslivegrid.ui, + seq_qt5/forms/qsmainwnd.ui: Ready for next version, more for issue + #123. + * Seq66qt5/seq66qt5.cpp, TODO: Trying setuid root code, no go. + +2023-12-04 Chris Ahlstrom + + * LICENSE, NEWS, README.md, contrib/git/gitconfig, + doc/latex/tex/first_start.tex, doc/latex/tex/live_grid.tex, + doc/latex/tex/references.tex, doc/latex/tex/seq66-user-manual.tex, + libseq66/src/play/performer.cpp, seq_qt5/forms/qseditoptions.ui: + Fixes to issue #122 and issue #123 and tweaks to Preferences labels + and documentation. + * TODO, doc/latex/tex/recording.tex, + libseq66/include/midi/mastermidibase.hpp, + libseq66/include/play/performer.hpp, + libseq66/src/cfg/rcsettings.cpp, + libseq66/src/midi/mastermidibase.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/sequence.cpp, + seq_rtmidi/include/rtmidi_types.hpp, seq_rtmidi/src/midi_jack.cpp, + seq_rtmidi/src/rtmidi_types.cpp: Refinements to JACK latency checks + and record-by handling. + +2023-12-02 Chris Ahlstrom + + * RELNOTES, TODO, VERSION, configure.ac, data/license.text, + data/readme.text, data/readme.windows, doc/latex/tex/recording.tex, + include/config.h.in, include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, + libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, nsis/Seq66Constants.nsh, + nsis/Seq66Setup.nsi, nsis/build_release_package.bat, + seq_qt5/forms/qsmainwnd.ui, seq_qt5/src/qsmainwnd.cpp: Getting near + to the next release. + +2023-12-01 Chris Ahlstrom + + * README.md, TODO, doc/latex/tex/sessions.tex, + libseq66/include/cfg/cmdlineopts.hpp, + libseq66/include/play/performer.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp, man/seq66.1, + seq_qt5/include/qsmainwnd.hpp, seq_qt5/src/qslivegrid.cpp, + seq_qt5/src/qsmainwnd.cpp: Add SEQ66_SESSION_TAG env variable, + enhanced inbus processing and display. + +2023-11-30 Chris Ahlstrom + + * README.md, Seq66qt5/seq66qt5.cpp, TODO, doc/latex/tex/alsa.tex, + doc/latex/tex/configuration.tex, doc/latex/tex/sessions.tex, + libseq66/include/play/performer.hpp, + libseq66/include/util/filefunctions.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/rcsettings.cpp, libseq66/src/midi/midifile.cpp, + libseq66/src/play/performer.cpp, + libseq66/src/util/filefunctions.cpp, seq_qt5/src/qsmainwnd.cpp: + Fixed last-used-dir, in-bus recording, more to fix though. + +2023-11-29 Chris Ahlstrom + + * README.md, TODO, contrib/scripts/jackctl, + libseq66/include/play/sequence.hpp, + libseq66/src/cfg/rcsettings.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qseqeventframe.cpp: + Fixed event editor init bug, applying note length in step edit. + +2023-11-28 Chris Ahlstrom + + * README.md, TODO, doc/latex/tex/configuration.tex, + doc/latex/tex/live_grid.tex, doc/latex/tex/menu.tex, + doc/latex/tex/midi_export.tex, doc/latex/tex/recording.tex, + doc/latex/tex/seq66-user-manual.tex, + libseq66/include/cfg/rcsettings.hpp, + libseq66/include/midi/mastermidibase.hpp, + libseq66/src/cfg/rcfile.cpp, libseq66/src/cfg/rcsettings.cpp, + libseq66/src/midi/mastermidibase.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/forms/qseditoptions.ui, seq_qt5/src/qslivegrid.cpp, + seq_rtmidi/include/rtmidi_types.hpp, seq_rtmidi/src/midi_jack.cpp, + seq_rtmidi/src/midi_jack_data.cpp, seq_rtmidi/src/rtmidi_types.cpp: + Record-by-buss/channel fixed, documented, and re-enabled some code + for JACK latency testing. + +2023-11-27 ahlstrom + + * data/linux/qseq66.rc, libseq66/include/cfg/rcsettings.hpp, + libseq66/include/midi/mastermidibase.hpp, + libseq66/include/play/performer.hpp, + libseq66/include/seq66_features.h, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/rcsettings.cpp, + libseq66/src/midi/mastermidibase.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/forms/qseditoptions.ui, seq_qt5/include/qseditoptions.hpp, + seq_qt5/src/qseditoptions.cpp, seq_qt5/src/qslivegrid.cpp, + seq_qt5/src/qsmainwnd.cpp: Added setting for record-by-buss. + * README.md, TODO, libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp, seq_qt5/src/qmutemaster.cpp, + seq_qt5/src/qsmainwnd.cpp: Multi-pattern record toggling works. + * README.md, TODO, doc/latex/tex/configuration.tex, + doc/latex/tex/first_start.tex, doc/latex/tex/patterns_panel.tex, + doc/latex/tex/recording.tex, doc/latex/tex/setmaster.tex, + libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, resources/pixmaps/rec_ex_buss.xpm, + resources/pixmaps/rec_ex_channel.xpm, + resources/pixmaps/rec_ex_normal.xpm, + seq_qt5/forms/qseqeditframe64.ui, seq_qt5/forms/qsmainwnd.ui, + seq_qt5/include/qsmainwnd.hpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qslivegrid.cpp, seq_qt5/src/qsmainwnd.cpp: Added + menu-mode automation and start of multi-pattern record toggling. + +2023-11-25 ahlstrom + + * README.md, TODO, contrib/midi/README, + doc/latex/tex/pattern_editor.tex, doc/latex/tex/sessions.tex, + libseq66/include/cfg/scales.hpp, + libseq66/include/cfg/usrsettings.hpp, + libseq66/include/midi/calculations.hpp, + libseq66/include/midi/event.hpp, + libseq66/include/play/performer.hpp, + libseq66/src/cfg/midicontrolfile.cpp, + libseq66/src/cfg/mutegroupsfile.cpp, + libseq66/src/cfg/notemapfile.cpp, + libseq66/src/cfg/playlistfile.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/usrfile.cpp, libseq66/src/cfg/usrsettings.cpp, + libseq66/src/midi/calculations.cpp, + libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp, seq_portmidi/src/portmidi.c, + seq_qt5/forms/qseqeditframe64.ui, seq_qt5/src/palettefile.cpp, + seq_qt5/src/qseqbase.cpp, seq_qt5/src/qseqdata.cpp, + seq_qt5/src/qseqroll.cpp, seq_qt5/src/qseqtime.cpp, + seq_qt5/src/qsessionframe.cpp: Fallout from an attempt to display + files with 120 PPQN. + +2023-11-23 ahlstrom + + * README.md, TODO, libseq66/include/midi/event.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/notemapfile.cpp, + libseq66/src/cfg/playlistfile.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/midi/event.cpp, libseq66/src/play/performer.cpp, + libseq66/src/play/sequence.cpp, seq_portmidi/src/portmidi.c, + seq_qt5/forms/qsessionframe.ui, seq_qt5/include/qseqdata.hpp, + seq_qt5/include/qseqeditframe64.hpp, seq_qt5/src/palettefile.cpp, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qsessionframe.cpp, seq_qt5/src/qslivegrid.cpp: Added + showing all meta text events in the data pane. + +2023-11-22 Chris Ahlstrom + + * README.md, TODO, libseq66/include/play/sequence.hpp, + libseq66/src/play/sequence.cpp, seq_qt5/src/qloopbutton.cpp, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqroll.cpp: Added Mini Play + spreadsheet and showing Program Change events in the grid slot. + * : Updated 16-patterns MIDI file. + * README.md, TODO, data/midi/README, + doc/latex/tex/configuration.tex, doc/latex/tex/patterns_panel.tex, + libseq66/include/play/sequence.hpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/midi/midifile.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/forms/qsappinfo.ui, seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/src/qloopbutton.cpp, seq_qt5/src/qseditoptions.cpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qslivegrid.cpp, + seq_qt5/src/qsmainwnd.cpp: Display input bus in slot, fixed + record-by-channel, fixed measure-count modify, open-file defaults to + last-used folder. + +2023-11-18 ahlstrom + + * README.md, TODO, libseq66/include/ctrl/midicontrolin.hpp, + libseq66/src/ctrl/midicontrolin.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/sequence.cpp: + Keep queue now works. + +2023-11-16 Chris Ahlstrom + + * README.md, TODO, contrib/gvim.rc, contrib/notes/snapshots.text, + data/samples/perstfic-66.palette, data/samples/perstfic-66.qss, + doc/latex/tex/kbd_mouse.tex, doc/latex/tex/patterns_panel.tex, + libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, seq_qt5/forms/qperfeditframe64.ui, + seq_qt5/forms/qseqeditframe64.ui, seq_qt5/forms/qsmainwnd.ui, + seq_qt5/src/qloopbutton.cpp: More progress on grid Solo and on plain + Replace. + +2023-11-14 Chris Ahlstrom + + * TODO, contrib/notes/snapshots.text, + libseq66/include/play/performer.hpp, + libseq66/include/play/screenset.hpp, + libseq66/include/play/sequence.hpp, + libseq66/include/play/setmapper.hpp, + libseq66/src/play/performer.cpp, libseq66/src/play/screenset.cpp, + libseq66/src/play/sequence.cpp, libseq66/src/play/setmapper.cpp, + seq_qt5/src/qsmainwnd.cpp: Fixed grid-solo partly, need to restore + patterns and fix one-shot solo/replace. + +2023-11-13 Chris Ahlstrom + + * README.md, TODO, libseq66/include/play/performer.hpp, + libseq66/include/play/sequence.hpp, + libseq66/include/play/setmaster.hpp, + libseq66/src/play/performer.cpp, libseq66/src/play/screenset.cpp, + libseq66/src/play/sequence.cpp, libseq66/src/play/setmaster.cpp, + libseq66/src/sessions/smanager.cpp, seq_qt5/forms/qseditoptions.ui, + seq_qt5/src/qloopbutton.cpp, seq_qt5/src/qmutemaster.cpp, + seq_qt5/src/qsetmaster.cpp, seq_qt5/src/qsmainwnd.cpp: Tweak display + of active set count, fixed clear/double mod bugs, redundant port + msgs, mutes mod bug, set mod bug. + +2023-11-12 Chris Ahlstrom + + * README.md, libseq66/include/cfg/rcsettings.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/rcsettings.cpp, libseq66/src/os/timing.cpp, + libseq66/src/play/performer.cpp: Beefing up the priority option. + * README.md, TODO, doc/latex/tex/menu.tex, + doc/latex/tex/patterns_panel.tex, + libseq66/include/play/performer.hpp, + libseq66/include/play/screenset.hpp, + libseq66/include/play/setmapper.hpp, + libseq66/src/play/performer.cpp, libseq66/src/play/screenset.cpp, + libseq66/src/play/setmapper.cpp, seq_qt5/forms/qmutemaster.ui, + seq_qt5/src/qmutemaster.cpp, seq_qt5/src/qsetmaster.cpp, + seq_qt5/src/qslivebase.cpp, seq_qt5/src/qsmainwnd.cpp: Enhanced + copy/paste of patterns and screensets. + +2023-11-11 ahlstrom + + * TODO, doc/latex/tex/setmaster.tex, + libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, seq_qt5/forms/qsetmaster.ui, + seq_qt5/include/qsetmaster.hpp, seq_qt5/src/qsetmaster.cpp: Set + Master almost complete and documented. + * TODO, libseq66/include/play/performer.hpp, + libseq66/include/play/screenset.hpp, + libseq66/include/play/setmapper.hpp, + libseq66/include/play/setmaster.hpp, + libseq66/src/play/performer.cpp, libseq66/src/play/screenset.cpp, + libseq66/src/play/setmapper.cpp, libseq66/src/play/setmaster.cpp, + seq_qt5/forms/qsetmaster.ui, seq_qt5/src/qsetmaster.cpp: Got Set + Master working with different approach, more refinements needed. + +2023-11-10 Chris Ahlstrom + + * TODO, libseq66/include/play/screenset.hpp, + libseq66/include/play/setmaster.hpp, + libseq66/src/play/screenset.cpp, libseq66/src/play/setmapper.cpp, + libseq66/src/play/setmaster.cpp, seq_qt5/src/qsetmaster.cpp: Nope, + they now crash, Up/Down enabled only with --investigate option. + * README.md, TODO, libseq66/include/play/screenset.hpp, + libseq66/include/play/setmaster.hpp, + libseq66/src/midi/midifile.cpp, libseq66/src/play/performer.cpp, + libseq66/src/play/screenset.cpp, libseq66/src/play/seq.cpp, + libseq66/src/play/setmaster.cpp, + libseq66/src/sessions/smanager.cpp, + seq_qt5/forms/qplaylistframe.ui, seq_qt5/forms/qsetmaster.ui, + seq_qt5/include/qsetmaster.hpp, seq_qt5/src/qsetmaster.cpp: Fixed + set-master up/down movement. + +2023-11-08 Chris Ahlstrom + + * README.md, TODO, libseq66/include/play/performer.hpp, + libseq66/src/cfg/midicontrolfile.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/play/performer.cpp, seq_qt5/include/qsetmaster.hpp, + seq_qt5/src/qsetmaster.cpp, seq_qt5/src/qsmainwnd.cpp: Renamed a + couple performer accessors, removed code for external set-master, + fixed bug in reading MIDI display-output controls. + +2023-11-07 Chris Ahlstrom + + * TODO, libseq66/src/play/performer.cpp, + seq_qt5/forms/qmutemaster.ui, seq_qt5/forms/qsetmaster.ui, + seq_qt5/src/qmutemaster.cpp, seq_qt5/src/qsetmaster.cpp: Fixed + incorrect modifying of tune by selecting a mute group and fixed + uneditable setmaster table. + +2023-11-06 Chris Ahlstrom + + * README.md, TODO, configure, configure.ac, + doc/latex/tex/live_grid.tex, doc/latex/tex/mutes.tex, + include/config.h.in, libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, seq_qt5/forms/qslivegrid.ui, + seq_qt5/forms/qsmainwnd.ui, seq_qt5/include/qsmainwnd.hpp, + seq_qt5/src/qslivegrid.cpp, seq_qt5/src/qsmainwnd.cpp: Fixed NSM/OSC + handling in configure.ac, added display of mute-group to main + window. + +2023-11-05 ahlstrom + + * TODO, contrib/tests/4x4/qseq66.rc, contrib/tests/4x4/qseq66.usr, + data/samples/sessions.rc, doc/latex/tex/sessions.tex, + libseq66/include/cfg/rcsettings.hpp, + libseq66/src/cfg/sessionfile.cpp, libseq66/src/cfg/usrfile.cpp, + libseq66/src/cfg/usrsettings.cpp, seq_qt5/src/qt5nsmanager.cpp: + Sessions.rc testing part 2. + +2023-11-04 ahlstrom + + * TODO, data/samples/{session.rc => sessions.rc}, + doc/latex/tex/configuration.tex, doc/latex/tex/sessions.tex, + libseq66/src/cfg/cmdlineopts.cpp, man/seq66.1: Documented + --session-tag, some testing. + * TODO, libseq66/include/play/performer.hpp, + libseq66/include/sessions/smanager.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/sessionfile.cpp, + libseq66/src/cfg/usrsettings.cpp, libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp: Sessions.rc testing part 1. + +2023-11-03 Chris Ahlstrom + + * README.md, data/samples/session.rc, + libseq66/include/cfg/cmdlineopts.hpp, + libseq66/include/cfg/rcsettings.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/rcsettings.cpp, + libseq66/src/cfg/sessionfile.cpp, + libseq66/src/sessions/smanager.cpp, man/seq66.1, man/seq66cli.1, + man/sequencer66.1: Added -S/--session-tag option to command-line. + +2023-11-02 Chris Ahlstrom + + * README.md, doc/latex/tex/configuration.tex, + libseq66/include/cfg/rcsettings.hpp, + libseq66/include/cfg/usrsettings.hpp, + libseq66/src/cfg/configfile.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/rcsettings.cpp, libseq66/src/cfg/usrfile.cpp, + libseq66/src/cfg/usrsettings.cpp, + libseq66/src/sessions/smanager.cpp, seq_qt5/src/qseditoptions.cpp, + seq_qt5/src/qt5nsmanager.cpp: Moved style-sheet options to 'rc' + file. + +2023-11-01 Chris Ahlstrom + + * README.md, TODO, libseq66/include/cfg/zoomer.hpp, + libseq66/src/cfg/zoomer.cpp, libseq66/src/play/performer.cpp, + libseq66/src/play/screenset.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/include/qeditbase.hpp, seq_qt5/include/qperfroll.hpp, + seq_qt5/include/qseqeditframe64.hpp, seq_qt5/include/qseqframe.hpp, + seq_qt5/include/qseqroll.hpp, seq_qt5/src/qperfeditframe64.cpp, + seq_qt5/src/qperfroll.cpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qseqframe.cpp, seq_qt5/src/qseqroll.cpp, + seq_qt5/src/qsmainwnd.cpp: Fixed playlist seqfault and zoom/ppqn + issues. + +2023-10-31 Chris Ahlstrom + + * README.md, Seq66cli/seq66rtcli.cpp, + doc/latex/tex/configuration.tex, doc/latex/tex/headless.tex, + libseq66/include/cfg/cmdlineopts.hpp, + libseq66/include/os/daemonize.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/usrfile.cpp, + libseq66/src/midi/midifile.cpp, libseq66/src/os/daemonize.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/playlist.cpp, + libseq66/src/sessions/smanager.cpp, + seq_rtmidi/src/midi_alsa_info.cpp: Added support for showing + playlist actions in the CLI using --verbose. + * README.md, TODO, libseq66/include/play/performer.hpp, + libseq66/src/os/timing.cpp, libseq66/src/play/performer.cpp, + libseq66/src/play/sequence.cpp: Fixed seqfault in select next + playlist song for both GUI and CLI. + +2023-10-30 Chris Ahlstrom + + * README.md, Seq66cli/seq66rtcli.cpp, TODO, include/config.h.in, + libseq66/include/cfg/usrsettings.hpp, + libseq66/src/cfg/usrsettings.cpp, libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp, seq_qt5/forms/qseditoptions.ui, + seq_qt5/include/qmutemaster.hpp, + seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/include/qseqeventframe.hpp, seq_qt5/include/qsetmaster.hpp, + seq_qt5/include/qslivegrid.hpp, seq_qt5/include/qsmainwnd.hpp, + seq_qt5/src/qt5nsmanager.cpp: Autoplay working in GUI and CLI. + +2023-10-29 ahlstrom + + * TODO, libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, seq_qt5/src/qseditoptions.cpp: Some + fixes to playlist handling. + +2023-10-28 ahlstrom + + * Seq66cli/seq66rtcli.cpp, Seq66qt5/seq66qt5.cpp, TODO, + data/samples/GM_DD-11.drums, data/samples/ca_midi.playlist, + data/seq66cli/seq66cli.ctrl, data/seq66cli/seq66cli.drums, + data/seq66cli/seq66cli.mutes, data/seq66cli/seq66cli.playlist, + data/seq66cli/seq66cli.rc, data/seq66cli/seq66cli.usr, + libseq66/include/play/performer.hpp, + libseq66/include/seq66_features.hpp, + libseq66/include/sessions/smanager.hpp, + libseq66/src/cfg/cmdlineopts.cpp, libseq66/src/cfg/configfile.cpp, + libseq66/src/cfg/notemapfile.cpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/usrfile.cpp, libseq66/src/os/daemonize.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/playlist.cpp, + libseq66/src/seq66_features.cpp, libseq66/src/sessions/smanager.cpp: + Fixes for seq66cli and preparation for playlist testing of it. + +2023-10-27 Chris Ahlstrom + + * TODO, data/linux/qseq66-alt-gray.palette, + data/linux/qseq66-default.palette, data/linux/qseq66-gray.palette, + data/linux/qseq66.palette, data/linux/qseq66.usr, + data/samples/incrypt-66.palette, data/samples/perstfic-66.palette, + data/samples/perstfic-66.qss, data/samples/qseq66-sample.palette, + data/win/qpseq66.palette, doc/latex/tex/configuration.tex, + doc/latex/tex/palettes.tex, doc/latex/tex/seq66-user-manual.tex, + libseq66/include/util/palette.hpp, libseq66/src/cfg/usrfile.cpp, + seq_qt5/forms/qseditoptions.ui, + seq_qt5/include/gui_palette_qt5.hpp, + seq_qt5/include/qseditoptions.hpp, seq_qt5/src/gui_palette_qt5.cpp, + seq_qt5/src/qperfnames.cpp, seq_qt5/src/qseditoptions.cpp, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqkeys.cpp, + seq_qt5/src/qseqtime.cpp, seq_qt5/src/qslotbutton.cpp, + seq_qt5/src/qstriggereditor.cpp: Many palette and palette-usage + improvements. + * README.md, RELNOTES, libseq66/include/cfg/rcsettings.hpp, + libseq66/include/util/palette.hpp, libseq66/src/cfg/rcsettings.cpp, + seq_qt5/forms/qseditoptions.ui, seq_qt5/include/qseditoptions.hpp, + seq_qt5/src/palettefile.cpp, seq_qt5/src/qperftime.cpp, + seq_qt5/src/qseditoptions.cpp: Fixed and enhanced the session + preferences tab. + +2023-10-26 Chris Ahlstrom + + * TODO, configure, data/samples/incrypt-66.palette, + data/samples/perstfic-66.palette, data/samples/perstfic-66.qss, + libseq66/include/util/palette.hpp, + libseq66/src/midi/midi_splitter.cpp, + libseq66/src/midi/midifile.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/include/gui_palette_qt5.hpp, + seq_qt5/src/gui_palette_qt5.cpp, seq_qt5/src/palettefile.cpp, + seq_qt5/src/qloopbutton.cpp, seq_qt5/src/qperfnames.cpp, + seq_qt5/src/qslivegrid.cpp, seq_qt5/src/qslotbutton.cpp: Expanded + the palette by 8 more, may need to rename a couple for better usage. + * NEWS, README.md, VERSION, configure.ac, + include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, + libseq66/include/util/palette.hpp, + seq_qt5/include/gui_palette_qt5.hpp, + seq_qt5/src/gui_palette_qt5.cpp: Version bump and palette expansion + redux. + 2023-10-25 Chris Ahlstrom + * README.md: Minor README update. + * README.md: Release Notes for Seq66 v. 0.99.10 2023-10-25 - The usual raft of humiliating bug-fixes: - Issue #117 Option to close pattern windows with esc key if enabled via a 'usr' option. - Issue #118 Made virtual ports ports enabled via an option. - Issue #119 "Quantized Record Active does not work" fixed. Live note/drum-mapping also fixed. - Fixed an egregious error in drawing notes in drum mode. - Fixed error in moving notes at PPQN != 192. - Fixed bug preventing a song with triggers stopping playback at end of song. Fixes related to playlist-handling. - MANY other undocumented minor fixes. - Implemented drag-and-drop of one MIDI file onto the Live grid. - Added the export of most project configuration files to another directory. - Multiple tempo events can be drawn in a line in the data pane and can be dragged up and down to change the tempo value. - If double-click enabled, can open/create a pattern in the song editor. - Many improvements and fixes to the Mutes tab. - Added a "grid mode" to toggle mutes by clicking in the Live Grid. The new default mute-group-selection mode keystroke is "_". - Opening the pattern editor reflects the recording mode and live pattern alteration selection (e.g. quantization). - The main time display works better with high PPQN. - Now scrolls automatically in time and note value to show the first notes in a pattern. - Live-grid record-mode and alteration are applied when active + pattern is opened for edit. - Added more Qt style-sheets and UI palette items for more color control. - Tightened the file-name handling in Session preferences. Also see the NEWS, README.md, and TODO files. + * ChangeLog, doc/latex/tex/midi_export.tex: Version 0.99.10 pending. * README.md, RELNOTES, TODO, VERSION, configure.ac, data/license.text, data/readme.text, data/readme.windows, doc/latex/tex/song_editor.tex, include/config.h.in, diff --git a/TODO b/TODO index fe795b56..81112928 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,10 @@ TO DO for Seq66 0.99.11 Chris Ahlstrom -2019-04-13 to 2023-12-05 +2019-04-13 to 2023-12-06 Misc: - Grid-mode options: - - Now can click again to undo the solo. But doing two more - solos in a row clears the first non-soloed snapshot. Hmmm. - Needs to be made a queued solo; how to handle mod_replace (Key_Home) and mod_snapshot (Ins) - Progress on plain Replace... @@ -61,6 +59,9 @@ From Testing: '/usr/local/share/seq66-0.99/midi/FM/longhair.mid' plays just fine mostly, some glitches. + The 'usr' time-color settings do not seem to work. Actually, it does + work, but not with the Qt gtk styling. + Awaiting complaints/issue-reports: - Contrary to Seq24: diff --git a/data/midi/FM/longhair.mid b/data/midi/FM/longhair.mid index 5b94218b213967f0f85922200ea07207dd1604a1..6219300092f222810a6c5827478bd0579087e336 100644 GIT binary patch literal 31971 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 diff --git a/doc/latex/tex/patterns_panel.tex b/doc/latex/tex/patterns_panel.tex index f53a3612..276b23e3 100644 --- a/doc/latex/tex/patterns_panel.tex +++ b/doc/latex/tex/patterns_panel.tex @@ -6,7 +6,7 @@ % \library Documents % \author Chris Ahlstrom % \date 2015-08-31 -% \update 2023-11-25 +% \update 2023-12-06 % \version $Revision$ % \license $XPC_GPL_LICENSE$ % @@ -823,8 +823,12 @@ \subsubsection{Pattern Keys and Clicks} over the pattern, hold the \texttt{Alt} key, and left-click the pattern. This will turn off all the other patterns, so that the selected pattern ins the only one playing. - We still need to work on reversing it exactly, but - mute-groups can be used for that purpose. + Also see \sectionref{paragraph:patterns_loop_modes}; it notes another way to + solo a pattern. + + One thing to remember with solo is that it can be reversed (reenabling all + the other patterns) only if that same pattern is clicked. Soloing another + pattern will lose the list of previously-enabled patterns. \paragraph{Metronome} \label{paragraph:patterns_metronome} diff --git a/libseq66/src/cfg/usrsettings.cpp b/libseq66/src/cfg/usrsettings.cpp index 6c55a8a4..518beeb1 100644 --- a/libseq66/src/cfg/usrsettings.cpp +++ b/libseq66/src/cfg/usrsettings.cpp @@ -1759,7 +1759,7 @@ usrsettings::time_colors_css () const (void) snprintf ( tempcss, sizeof tempcss, - "color:%s;background-color:%s", + "color:%s; background-color:%s", time_fg_color().c_str(), time_bg_color().c_str() ); result = std::string(tempcss);