diff --git a/ChangeLog b/ChangeLog index 104a56d2..55e80d20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,319 +1,3 @@ -2021-05-13 Chris Ahlstrom - - * README.md, libseq64/include/midifile.hpp, - libseq64/include/rc_settings.hpp, libseq64/src/midifile.cpp, - libseq64/src/optionsfile.cpp, libseq64/src/rc_settings.cpp: Backport - the short mute-groups format from Seq66. - -2021-05-09 Chris Ahlstrom - - * TODO, libseq64/include/midi_container.hpp, - libseq64/include/midifile.hpp, libseq64/include/sequence.hpp, - libseq64/include/triggers.hpp, libseq64/src/midi_container.cpp, - libseq64/src/midifile.cpp, libseq64/src/triggers.cpp: Finished the - transposed-trigger feature. - -2021-05-08 Chris Ahlstrom - - * INSTALL, NEWS, README.jack, README.md, README.windows, VERSION, - bootstrap, configure, configure.ac, data/README, data/license.txt, - data/readme.txt, data/readme.windows, doc/dox/doxy-notes.cfg, - doc/dox/doxy-reference.cfg, include/config.h.in, - include/qt/portmidi/seq64-config.h, libseq64/include/triggers.hpp, - man/seq64.1, man/seq64cli.1, man/sequencer64.1, - nsis/Seq64Constants.nsh, nsis/Seq64Setup.nsi, - nsis/build_release_package.bat, seq_gtkmm2/src/mainwnd.cpp, - seq_gtkmm2/src/perfroll.cpp, seq_gtkmm2/src/seqedit.cpp, - seq_qt5/forms/qsabout.ui, seq_qt5/src/qseqeditframe64.cpp: Interim - check-in, more fixes, see README.md. - -2021-05-06 Chris Ahlstrom - - * README.md, aux-files/ltmain.sh, - libseq64/include/editable_events.hpp, - libseq64/include/event_list.hpp, libseq64/include/sequence.hpp, - libseq64/include/triggers.hpp, libseq64/src/editable_events.cpp, - libseq64/src/event.cpp, libseq64/src/event_list.cpp, - libseq64/src/midi_container.cpp, libseq64/src/midifile.cpp, - libseq64/src/sequence.cpp, libseq64/src/triggers.cpp, - seq_gtkmm2/include/eventslots.hpp, seq_gtkmm2/src/eventslots.cpp, - seq_qt5/include/qseventslots.hpp, seq_qt5/src/qperfroll.cpp, - seq_qt5/src/qseventslots.cpp: Better trigger transpose handling, but - still some important issues, be careful. - -2021-05-05 Chris Ahlstrom - - * README.md, Seq64qt5/Makefile.in, - libseq64/include/midi_container.hpp, libseq64/include/midifile.hpp, - libseq64/include/rc_settings.hpp, libseq64/include/sequence.hpp, - libseq64/include/triggers.hpp, libseq64/src/midi_container.cpp, - libseq64/src/midifile.cpp, libseq64/src/optionsfile.cpp, - libseq64/src/rc_settings.cpp, libseq64/src/sequence.cpp, - libseq64/src/triggers.cpp: Interim check-in, backporting fixes and - trigger transpose from Seq66. - -2021-02-01 Chris Ahlstrom - - * Seq64qt5/Makefile.am: Left out a fix for issue #216. - * : Merge from master. - * : t push origin masterMerge branch 'freddii-master' - * README, Seq64cli/Makefile.am, Seq64cli/Makefile.in, - Seq64qt5/Makefile.am, Seq64qt5/Makefile.in, aux-files/config.guess, - aux-files/config.rpath, aux-files/config.sub, aux-files/ltmain.sh, - aux-files/mkinstalldirs, aux-files/test-driver, - libseq64/src/editable_events.cpp, - seq_gtkmm2/include/eventslots.hpp, seq_gtkmm2/src/eventedit.cpp, - seq_gtkmm2/src/eventslots.cpp: Fixes to Makefile.ams and the event - editor. - -2021-01-29 Chris Ahlstrom - - * Makefile.in, Midiclocker64/Makefile.in, Seq64cli/Makefile.in, - Seq64portmidi/Makefile.in, Seq64qt5/Makefile.in, - Seq64rtmidi/Makefile.in, Sequencer64/Makefile.in, configure, - data/Makefile.in, libseq64/Makefile.in, - libseq64/include/Makefile.in, libseq64/src/Makefile.in, - m4/Makefile.in, man/Makefile.in, resources/pixmaps/Makefile.in, - seq_alsamidi/Makefile.in, seq_alsamidi/include/Makefile.in, - seq_alsamidi/src/Makefile.in, seq_gtkmm2/Makefile.in, - seq_gtkmm2/include/Makefile.in, seq_gtkmm2/src/Makefile.in, - seq_portmidi/Makefile.in, seq_portmidi/include/Makefile.in, - seq_portmidi/src/Makefile.in, seq_qt5/Makefile.in, - seq_qt5/forms/Makefile.in, seq_qt5/include/Makefile.in, - seq_qt5/src/Makefile.in, seq_rtmidi/Makefile.in, - seq_rtmidi/include/Makefile.in, seq_rtmidi/src/Makefile.in: Updated - all Makefile.ins for Gtkmm version. - -2021-01-01 Chris Ahlstrom - - * : Conflict in TODO fixed. - -2020-10-25 Chris Ahlstrom - - * aux-files/compile, aux-files/depcomp, aux-files/missing, - configure, libseq64/src/jack_assistant.cpp: Fixed a warning in - jack_assistant. - -2020-10-25 Chris Ahlstrom - - * : commit 0d9441055b1bb521f6ddcd3a0cc9fbc9877f86b3 Author: Simon - van der Veldt Date: Sun Oct 25 - 14:54:25 2020 +0100 - -2020-09-29 Chris Ahlstrom - - * : commit 4899223e562f5bfef5748fbeba4b28e7e6ffc7e5 Author: Chris - Ahlstrom Date: Tue Sep 29 18:03:48 2020 - -0400 - -2020-09-21 Chris Ahlstrom - - * : Fixed conflicts. - -2020-09-21 C. Ahlstrom - - * : Merge pull request #209 from r-giskard-reventlov/master Missing string include - -2020-07-29 Chris Ahlstrom - - * aux-files/compile, aux-files/depcomp, aux-files/missing, - configure: Updated configure files for the normal build. - -2020-07-29 Chris Ahlstrom - - * : commit 9b9d55965194a103547e499fad9a5ea95786062a Author: Chris - Ahlstrom Date: Wed Jul 29 15:21:04 2020 - -0400 - -2020-07-05 Chris Ahlstrom - - * TODO, aux-files/compile, aux-files/depcomp, aux-files/missing, - configure, seq_qt5/forms/qseqeditframe64.ui, - seq_qt5/src/qperfroll.cpp: Minor tweaks, nothing to see here. - -2020-07-05 Chris Ahlstrom - - * libseq64/src/mastermidibase.cpp, libseq64/src/perform.cpp, - seq_qt5/src/qsmainwnd.cpp: Fixed warnings in perform and qsmainwnd. - -2020-07-05 Chris Ahlstrom - - * INSTALL, README, VERSION, configure.ac, data/README, - data/license.txt, data/qpseq64.rc, data/qpseq64.usr, - data/readme.txt, data/sequencer64.rc, include/config.h.in, - include/qt/portmidi/seq64-config.h, libseq64/src/daemonize.cpp, - seq_gtkmm2/src/seqedit.cpp: Fixed Windows build and shrunk the - seqedit. - -2020-06-21 Chris Ahlstrom - - * include/config.h.in, libseq64/include/user_settings.hpp, - libseq64/src/perform.cpp, libseq64/src/sequence.cpp, - libseq64/src/triggers.cpp, libseq64/src/user_settings.cpp, - libseq64/src/userfile.cpp, seq_qt5/src/qseditoptions.cpp, - seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qsmainwnd.cpp: Fixed - segfault in qseqeditframe64 and added resume-note configuration. - -2020-06-13 Chris Ahlstrom - - * README, configure.ac, include/config.h.in, - libseq64/include/event.hpp, libseq64/src/daemonize.cpp, - libseq64/src/event.cpp, libseq64/src/event_list.cpp, - libseq64/src/perform.cpp, libseq64/src/sequence.cpp, - seq_rtmidi/include/midi_alsa_info.hpp, - seq_rtmidi/src/midi_alsa_info.cpp, seq_rtmidi/src/midi_api.cpp, - seq_rtmidi/src/midi_jack_info.cpp: Issue #206 MIDI - Start/Stop/Continue partly fixed. - -2020-05-27 Chris Ahlstrom - - * README, aux-files/compile, aux-files/depcomp, aux-files/missing, - configure, configure.ac, include/config.h.in, - libseq64/include/daemonize.hpp, libseq64/include/event.hpp, - libseq64/include/event_list.hpp, - libseq64/include/mastermidibase.hpp, libseq64/include/midibase.hpp, - libseq64/include/perform.hpp, libseq64/include/rect.hpp, - libseq64/src/daemonize.cpp, libseq64/src/event.cpp, - libseq64/src/event_list.cpp, libseq64/src/mastermidibase.cpp, - libseq64/src/midibase.cpp, libseq64/src/perform.cpp, - libseq64/src/rect.cpp, libseq64/src/sequence.cpp, m4/pkg.m4, - seq_alsamidi/src/mastermidibus.cpp, seq_gtkmm2/src/perfedit.cpp, - seq_portmidi/src/pmlinuxalsa.c, seq_qt5/src/qlfoframe.cpp, - seq_qt5/src/qseqroll.cpp, seq_rtmidi/include/rtmidi_types.hpp, - seq_rtmidi/src/midi_alsa_info.cpp, seq_rtmidi/src/midi_api.cpp, - seq_rtmidi/src/midi_jack.cpp, seq_rtmidi/src/midi_jack_info.cpp, - seq_rtmidi/src/midi_win.cpp, seq_rtmidi/src/midi_win_info.cpp: Many - fixes to unreported issues, including note-recording issues. - -2020-05-16 Chris Ahlstrom - - * TODO: Added issues to the TODO list. - -2020-04-22 Chris Ahlstrom - - * data/seq24.rc, data/seq24.usr, libseq64/src/cmdlineopts.cpp, - libseq64/src/optionsfile.cpp, man/seq64.1, man/seq64cli.1, - man/sequencer64.1: Added secret User and Native options to test - user-instruments, etc. - -2020-04-19 Chris Ahlstrom - - * libseq64/include/midi_control_out.hpp, - libseq64/include/rc_settings.hpp, libseq64/src/optionsfile.cpp, - libseq64/src/rc_settings.cpp, seq_alsamidi/src/mastermidibus.cpp, - seq_rtmidi/src/mastermidibus.cpp: Added port count to the - manual/virtual-mode setting in the rc file. - -2020-04-18 Chris Ahlstrom - - * INSTALL, Seq64rtmidi/Makefile.am, configure, configure.ac, - include/config.h.in, seq_gtkmm2/src/Makefile.am: Disabled warnings - about sigcpp function casting for Gtkmm. - -2020-04-17 Chris Ahlstrom - - * strap_functions: Added a bootstrap check for debhelpers. - -2020-04-17 Chris Ahlstrom - - * INSTALL, configure, configure.ac, include/config.h.in, - include/qt/portmidi/seq64-config.h, libseq64/include/sequence.hpp, - libseq64/src/midifile.cpp, libseq64/src/sequence.cpp, - seq_gtkmm2/src/seqedit.cpp: Fixed dumb regression in setting seqedit - note-length. - -2020-04-10 Chris Ahlstrom - - * configure, configure.ac: Reduced the output from uname to prevent - build issues on some platforms. - -2020-04-08 Chris Ahlstrom - - * configure, libseq64/src/rc_settings.cpp, - libseq64/src/settings.cpp: Attempted work around for issue #191 - seqfault accessing rc settings. - -2020-03-28 Chris Ahlstrom - - * INSTALL, Seq64rtmidi/seq64rtmidi.cpp, doc/dox/doxy-notes.cfg, - doc/dox/doxy-reference.cfg, libseq64/include/seq64_features.h, - libseq64/src/cmdlineopts.cpp, seq_gtkmm2/src/mainwnd.cpp: Updates to - lash support, install notes. - -2020-03-14 Chris Ahlstrom - - * aux-files/compile, aux-files/depcomp, aux-files/missing, - configure, seq_qt5/include/qseqkeys.hpp, seq_qt5/src/qseqkeys.cpp: - Provides a workaround for issue #197 by ignoring qseqkey wheel - events. - -2020-03-13 Chris Ahlstrom - - * aux-files/compile, aux-files/depcomp, aux-files/missing, - configure, configure.ac: Added ability to ignore gcc/g++ 9 in - configure. - -2020-03-13 Chris Ahlstrom - - * configure.ac, include/config.h.in, libseq64/include/sequence.hpp, - libseq64/src/midifile.cpp, libseq64/src/sequence.cpp, - libseq64/src/settings.cpp, libseq64/src/triggers.cpp, - seq_gtkmm2/include/seqevent.hpp, seq_gtkmm2/include/seqroll.hpp, - seq_gtkmm2/src/seqedit.cpp, seq_gtkmm2/src/seqevent.cpp, - seq_gtkmm2/src/seqroll.cpp, seq_qt5/include/qperfbase.hpp, - seq_qt5/include/qseqbase.hpp, seq_qt5/src/qperfeditframe64.cpp, - seq_qt5/src/qseqeditframe.cpp, seq_qt5/src/qseqeditframe64.cpp: More - checks for bad mod divisors. - -2020-03-12 Chris Ahlstrom - - * libseq64/src/sequence.cpp: Initial fix to issue #190 due to mod 0 - in sequence class. - -2020-02-25 Chris Ahlstrom - - * configure, configure.ac, include/config.h.in, - include/qt/portmidi/seq64-config.h, libseq64/include/perform.hpp, - libseq64/src/perform.cpp, seq_gtkmm2/src/mainwnd.cpp, - seq_portmidi/src/pmwinmm.c, seq_qt5/include/qsliveframe.hpp, - seq_qt5/seq_qt5.pro, seq_qt5/src/qseqeditframe64.cpp, - seq_qt5/src/qsliveframe.cpp: Fixes for the qmake build. - -2020-02-21 Chris Ahlstrom - - * data/qpseq64.rc, data/qseq64.rc, data/seq64cli.rc, - data/seq64cli.usr, data/sequencer64.rc, - libseq64/src/seq64_features.cpp, libseq64/src/sequence.cpp, - seq_gtkmm2/src/fruityseqroll.cpp, seq_qt5/src/qperfeditex.cpp, - seq_qt5/src/qsmainwnd.cpp: More configuration and MIDI control - fixes, yeesh. - -2020-02-18 Chris Ahlstrom - - * configure.ac, libseq64/include/perform.hpp, - libseq64/src/perform.cpp: Minor tweaks for build and pending-seqs. - -2020-02-18 Chris Ahlstrom - - * : Removing conflicts from master. - -2020-02-18 Chris Ahlstrom - - * INSTALL, Makefile.am, NEWS, README, README.jack, README.windows, - ROADMAP, VERSION, bootstrap, configure, configure.ac, data/README, - data/license.txt, data/readme.txt, data/readme.windows, - doc/dox/midi_parsing.dox, include/config.h.in, - include/qt/portmidi/seq64-config.h, libseq64/include/perform.hpp, - libseq64/src/perform.cpp, libseq64/src/seq64_features.cpp, - nsis/Seq64Constants.nsh, nsis/Seq64Setup.nsi, - nsis/build_release_package.bat, seq_gtkmm2/src/mainwnd.cpp, - seq_qt5/forms/qsabout.ui, seq_qt5/src/qsliveframe.cpp: Updated build - process and fixed MIDI seq-edit control. - -2020-02-16 Chris Ahlstrom - - * ChangeLog: Updated change-log for 0.96.7. - 2020-02-16 Chris Ahlstrom * README, configure, configure.ac, include/config.h.in, diff --git a/INSTALL b/INSTALL index c637c973..8687f8f9 100644 --- a/INSTALL +++ b/INSTALL @@ -1,6 +1,6 @@ INSTALL for Sequencer64 v. 0.97.0 and above Chris Ahlstrom -2015-09-10 to 2021-05-07 +2015-09-10 to 2023-02-18 Getting Sequencer64 requires building the code or going to the sequencer64-packages site on GitHub. The bootstrap setup is primarily diff --git a/README.md b/README.md index 71c0f980..e444e435 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # README for Sequencer64 0.97.0 (Native JACK, CLI, tempo, play-lists...) Chris Ahlstrom -2015-09-10 to 2021-05-13 +2015-09-10 to 2021-05-08 __Sequencer64__ is a live MIDI looper with a song-creation layout window. Sequencer64 is a reboot of seq24, extending it greatly over the last six years. @@ -11,8 +11,8 @@ added equipment. It has an extensive manual and Windows installers: https://github.com/ahlstromcj/sequencer64-doc.git https://github.com/ahlstromcj/sequencer64-packages.git -__Sequencer64__ has build options for ALSA, PortMidi, JACK, Gtkmm 2.4, Qt 5, -Windows, and a command-line/daemon. +__Sequencer64__ has build options for ALSA, PortMidi, JACK, Gtkmm 2.4, Qt 5, Windows, +and a command-line/daemon. Sequencer64 is now in maintenance mode (bug fixes and minor backports only). It is superceded by Seq66. However, the new Seq66 "transposable trigger" @@ -21,9 +21,8 @@ saved with transposed triggers. Many related bug fixes as well. Try loading and playing the Kraftwerk tune from seq66/data/midi, which uses this feature. -**WARNING** This feature can save old tunes with the new Seq66 triggers and -mute-group byte format in MIDI files, which are not supported by other forks -of Seq24. Back-up your tunes! +**WARNING** This feature can save old tunes with the new triggers, which are +not supported by other forks of Seq24. Back-up your tunes! ## Native JACK support: Seq64rtmidi/seq64 @@ -56,15 +55,11 @@ and using a conventional source tarball. ## Recent changes: * Version 0.97.0: - * Changed the mute-group format inside the MIDI file to use a much - less disk space (about 3K less). Can be set in the 'rc' file to - write the old format. * Fixed an issue reading track names in the midifile class. * Fixed an issue with dropping note events at the edge of a measure. * Back-ported the c_trig_transpose SeqSpec from Seq66, so that Seq64 can read/write these newer files. Also updated the Song editor to - show the transposition values. Can be set in the 'rc' file to - write the old format. + show the transposition values. * Fixed a bug in the pattern editor that created unnecessary empty screen-sets. * Fixed a bug in "Save As" for an unmodified file in the Gtk UI. diff --git a/VERSION b/VERSION index d4e55815..cc922d31 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -2021-05-07 +2021-05-23 0.97.0 diff --git a/configure.ac b/configure.ac index a0b998c6..db6d9f2d 100644 --- a/configure.ac +++ b/configure.ac @@ -741,7 +741,7 @@ dnl seq64-config.h header file has "SEQ64_" prepended to these dnl automatically for us. AH_TOP( -#define VERSION_DATE_SHORT "2021-05-07" +#define VERSION_DATE_SHORT "2023-02-18" #define VERSION "0.97.0" ) diff --git a/data/license.txt b/data/license.txt index 41e6e2df..763c861d 100644 --- a/data/license.txt +++ b/data/license.txt @@ -1,6 +1,6 @@ Sequencer64 Licensing 0.97.0 Chris Ahlstrom -2015-09-10 to 2020-05-07 +2015-09-10 to 2023-02-18 Applications: @@ -9,7 +9,7 @@ Applications: the latter license, while projects I have extended may specify the former license. - Copyright (C) 2015-2021 by Chris Ahlstrom + Copyright (C) 2015-2023 by Chris Ahlstrom This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/doc/dox/license.dox b/doc/dox/license.dox index e31e2b2d..1cc15b32 100644 --- a/doc/dox/license.dox +++ b/doc/dox/license.dox @@ -34,7 +34,7 @@ the latter language, while projects I have extended may specify the former license. - Copyright (C) 2015-2015 by Chris Ahlstrom + Copyright (C) 2015-2023 by Chris Ahlstrom This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -63,7 +63,7 @@ The XPC library license is the GNU LGPLv3. - Copyright (C) 2015-2015 by Chris Ahlstrom + Copyright (C) 2015-2023 by Chris Ahlstrom This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published @@ -92,7 +92,7 @@ The XPC documentation license is the GNU FDLv1.3. - Copyright (C) 2015-2015 by Chris Ahlstrom + Copyright (C) 2015-2023 by Chris Ahlstrom This documentation is free documentation; you can redistribute it and/or modify it under the terms of the GNU Free Documentation License as @@ -121,7 +121,7 @@ The XPC "Affero" license is the GNU AGPLv3. - Copyright (C) 2015-2015 by Chris Ahlstrom + Copyright (C) 2015-2023 by Chris Ahlstrom This server software is free server software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as diff --git a/include/config.h.in b/include/config.h.in index d109cf66..edcfda15 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -1,6 +1,6 @@ /* include/config.h.in. Generated from configure.ac by autoheader. */ -#define VERSION_DATE_SHORT "2021-05-07" +#define VERSION_DATE_SHORT "2023-02-18" #define VERSION "0.97.0" diff --git a/include/qt/portmidi/seq64-config.h b/include/qt/portmidi/seq64-config.h index c6e7fa29..38d0b8fe 100644 --- a/include/qt/portmidi/seq64-config.h +++ b/include/qt/portmidi/seq64-config.h @@ -43,7 +43,7 @@ #endif #ifndef SEQ64_VERSION_DATE_SHORT -#define SEQ64_VERSION_DATE_SHORT "2021-05-07" +#define SEQ64_VERSION_DATE_SHORT "2023-02-18" #endif #ifndef SEQ64_VERSION diff --git a/libseq64/include/midifile.hpp b/libseq64/include/midifile.hpp index 17970db6..3f21a5a3 100644 --- a/libseq64/include/midifile.hpp +++ b/libseq64/include/midifile.hpp @@ -27,7 +27,7 @@ * \library sequencer64 application * \author Seq24 team; modifications by Chris Ahlstrom * \date 2015-07-24 - * \updates 2021-05-13 + * \updates 2021-05-09 * \license GNU GPLv2 or above * * The Seq24 MIDI file is a standard, Format 1 MIDI file, with some extra @@ -429,7 +429,6 @@ class midifile void add_old_trigger (sequence & seq); bool read_seek (size_t pos); midilong read_long (); - midilong read_split_long (unsigned & highbytes, unsigned & lowbytes); midishort read_short (); midibyte read_byte (); midilong read_varinum (); @@ -438,7 +437,6 @@ class midifile void read_gap (size_t sz); void write_long (midilong value); - void write_split_long (unsigned highbytes, unsigned lowbytes); void write_triple (midilong value); void write_short (midishort value); diff --git a/libseq64/include/rc_settings.hpp b/libseq64/include/rc_settings.hpp index 760420b4..1fddfd93 100644 --- a/libseq64/include/rc_settings.hpp +++ b/libseq64/include/rc_settings.hpp @@ -28,7 +28,7 @@ * \library sequencer64 application * \author Seq24 team; modifications by Chris Ahlstrom * \date 2015-09-22 - * \updates 2021-05-13 + * \updates 2021-05-05 * \license GNU GPLv2 or above * * This collection of variables describes the options of the application, @@ -132,7 +132,6 @@ class rc_settings bool m_verbose_option; /**< [auto-option-save] setting. */ bool m_auto_option_save; /**< [auto-option-save] setting. */ bool m_save_old_triggers; /**< Save c_triggers_new, no transpose. */ - bool m_save_old_mutes; /**< Save mutes as bytes, not longs. */ bool m_legacy_format; /**< Write files in legacy format. */ bool m_lash_support; /**< Enable LASH, if compiled in. */ bool m_allow_mod4_mode; /**< Allow Mod4 to hold drawing mode. */ @@ -342,11 +341,6 @@ class rc_settings return m_save_old_triggers; } - bool save_old_mutes () const - { - return m_save_old_mutes; - } - /** * \getter m_legacy_format */ @@ -788,11 +782,6 @@ class rc_settings m_save_old_triggers = flag; } - void save_old_mutes (bool flag) - { - m_save_old_mutes = flag; - } - /** * \setter m_legacy_format */ diff --git a/libseq64/src/daemonize.cpp b/libseq64/src/daemonize.cpp index 1bbaafaf..cc17d3f5 100644 --- a/libseq64/src/daemonize.cpp +++ b/libseq64/src/daemonize.cpp @@ -3,7 +3,7 @@ * \library sequencer64 application (from PSXC library) * \author Chris Ahlstrom * \date 2005-07-03 to 2007-08-21 (pre-Sequencer24/64) - * \updates 2020-07-05 + * \updates 2023-02-18 * \license GNU GPLv2 or above * * Daemonization module of the POSIX C Wrapper (PSXC) library @@ -56,8 +56,11 @@ * There is a service wrapper available under Win32. It is called * "srvhost.exe". At this time, we *still* don't know how to use it, but * it is available, and Windows XP seems to use it quite a bit. + * + * Issue 222: Added the sched.h header file to declare sched_yield(). */ +#include /* sched_yield(), _get_priority() */ #include /* EXIT_FAILURE for 32-bit builds */ #include /* strlen() etc. */ diff --git a/libseq64/src/midifile.cpp b/libseq64/src/midifile.cpp index 7ccda815..b37d993f 100644 --- a/libseq64/src/midifile.cpp +++ b/libseq64/src/midifile.cpp @@ -24,7 +24,7 @@ * \library sequencer64 application * \author Seq24 team; modifications by Chris Ahlstrom * \date 2015-07-24 - * \updates 2021-05-13 + * \updates 2021-05-09 * \license GNU GPLv2 or above * * For a quick guide to the MIDI format, see, for example: @@ -82,32 +82,6 @@ namespace seq64 { -/** - * Magic numbers for handling mute-group formats. - */ - -const unsigned c_compact_mutes_shift = 8; /* 1 << 8 = 256 */ -const unsigned c_legacy_mute_group = 1024; /* 0x0400 */ -const unsigned c_compact_mute_group = 256 << 16; - -static unsigned -to_compact_byte (unsigned value) -{ - if (value > 0) - value <<= c_compact_mutes_shift; - - return value; -} - -static unsigned -from_compact_byte (unsigned value) -{ - if (value > 0) - value >>= c_compact_mutes_shift; - - return value; -} - /** * Principal constructor. * @@ -250,40 +224,6 @@ midifile::read_long () return result; } -midilong -midifile::read_split_long (unsigned & highbytes, unsigned & lowbytes) -{ - midilong result = read_long(); /* amount of data */ - if (result == c_legacy_mute_group) - { - highbytes = 32U; - lowbytes = 32U; - } - else if (result == 0) - { - highbytes = 0; - lowbytes = 0; - } - else - { - if (result >= c_compact_mute_group) - { - highbytes = from_compact_byte(result & 0xFFFF0000 >> 16); - lowbytes = from_compact_byte(result & 0x0000FFFF); - } - else - { - highbytes = result & 0xFFFF0000 >> 16; /* was 8, bug! */ - lowbytes = result & 0x0000FFFF; - } - } - return result; -} - -/** - * See Seq66, this module, for details. - */ - /** * Reads 2 bytes of data using read_byte(). * @@ -1686,42 +1626,39 @@ midifile::parse_proprietary_track (perform & p, int file_size) seqspec = parse_prop_header(file_size); if (seqspec == c_mutegroups) { - unsigned groupcount = c_max_groups; /* 32 */ - unsigned seqsinset = c_seqs_in_set; /* 32 */ - long len = long(read_split_long(groupcount, seqsinset)); + long len = read_long(); /* always 1024 */ if (len > 0) { - bool legacyformat = len == c_legacy_mute_group; - if (legacyformat) + if (c_max_sequence != len) /* c_gmute_tracks */ { - for (unsigned i = 0; i < groupcount; ++i) - { - midilong groupmute = read_long(); - p.select_group_mute(int(groupmute)); - for (unsigned k = 0; k < seqsinset; ++k) - { - midilong gmutestate = read_long(); - bool status = gmutestate != 0; - p.set_group_mute_state(k, status); - if (status) - p.midi_mute_group_present(true); - } - } + result = set_error_dump("Corrupt data in mute-group section"); } - else + + /* + * Determine if this is viable under variable seqs-in-set. + * See user_settings::gmute_tracks(). For now, we get + * warnings here because MIDI files can contain only 32x32 + * mutes. And its not really seqs-in-set by segs-in-set, more + * like groups-allowed by seqs-in-set. We will likely stick + * with the 32x32 paradigm and overlay it onto top of whatever + * seqs-in-set size is in force. + * + * int seqsinset = usr().seqs_in_set(); + */ + + int groupcount = c_max_groups; /* 32 */ + int seqsinset = c_seqs_in_set; /* 32 */ + for (int i = 0; i < groupcount; ++i) { - for (unsigned g = 0; g < groupcount; ++g) + midilong groupmute = read_long(); + p.select_group_mute(int(groupmute)); + for (int k = 0; k < seqsinset; ++k) { - midibyte groupmute = read_byte(); - p.select_group_mute(int(groupmute)); - for (unsigned k = 0; k < seqsinset; ++k) - { - midibyte gmutestate = read_byte(); - bool status = gmutestate != 0; - p.set_group_mute_state(k, status); - if (status) - p.midi_mute_group_present(true); - } + midilong gmutestate = read_long(); + bool status = gmutestate != 0; + p.set_group_mute_state(k, status); + if (status) + p.midi_mute_group_present(true); } } } @@ -1892,26 +1829,6 @@ midifile::write_long (midilong x) write_byte((x & 0x000000FF)); } -/** - * See Seq66, this module, for details. - */ - -void -midifile::write_split_long (unsigned highbytes, unsigned lowbytes) -{ - if (highbytes == 32U && lowbytes == 32U) - { - write_long(1024); /* a long-standing legacy value */ - } - else - { - write_byte((highbytes & 0x0000FF00) >> 8); - write_byte(highbytes & 0x000000FF); - write_byte((lowbytes & 0x0000FF00) >> 8); - write_byte(lowbytes & 0x000000FF); - } -} - /** * Writes 3 bytes, each extracted from the long value and shifted rightward * down to byte size, using the write_byte() function. @@ -2609,12 +2526,6 @@ midifile::write_proprietary_track (perform & p) if (! p.any_group_unmutes()) gmutesz = 0; } - - if (rc().save_old_mutes()) - gmutesz = 4 + groupcount * (4 + seqsinset * 4); /* 4-->longs */ - else - gmutesz = 4 + groupcount * (1 + seqsinset); /* 1-->bytes */ - if (m_new_format) /* calculate track size */ { tracklength += seq_number_size(); /* bogus sequence number */ @@ -2670,29 +2581,20 @@ midifile::write_proprietary_track (perform & p) if (gmutesz > 0) { write_prop_header(c_mutegroups, gmutesz); /* mute groups tag etc. */ - if (rc().save_old_mutes()) - { - write_split_long(groupcount, seqsinset); - for (int j = 0; j < seqsinset; ++j) - { - p.select_group_mute(j); - write_long(j); - for (int i = 0; i < seqsinset; ++i) - write_long(p.get_group_mute_state(i)); - } - } - else + + /* + * write_long(c_gmute_tracks); // data, not a tag + * + * We could write p.sequence_high() here, perhaps. Nahhhhh. + */ + + write_long(c_max_sequence); /* data, not a tag */ + for (int j = 0; j < seqsinset; ++j) /* now is optional */ { - unsigned gcount = to_compact_byte(groupcount); - unsigned gsize = to_compact_byte(seqsinset); - write_split_long(gcount, gsize); - for (int j = 0; j < seqsinset; ++j) - { - p.select_group_mute(j); - write_byte(j); - for (int i = 0; i < seqsinset; ++i) - write_byte(p.get_group_mute_state(i)); - } + p.select_group_mute(j); + write_long(j); + for (int i = 0; i < seqsinset; ++i) + write_long(p.get_group_mute_state(i)); } } if (m_new_format) /* write beginning of track */ diff --git a/libseq64/src/optionsfile.cpp b/libseq64/src/optionsfile.cpp index 1ace5ec7..0771a750 100644 --- a/libseq64/src/optionsfile.cpp +++ b/libseq64/src/optionsfile.cpp @@ -26,7 +26,7 @@ * \library sequencer64 application * \author Seq24 team; modifications by Chris Ahlstrom * \date 2015-07-24 - * \updates 2021-05-13 + * \updates 2021-05-05 * \license GNU GPLv2 or above * * The ~/.seq24rc or ~/.config/sequencer64/sequencer64.rc @@ -867,11 +867,6 @@ optionsfile::parse (perform & p) { sscanf(m_line, "%ld", &method); rc().save_old_triggers(method != 0); - if (next_data_line(file)) /* a new option */ - { - sscanf(m_line, "%ld", &method); - rc().save_old_mutes(method != 0); - } } } file.close(); /* done parsing the "rc" configuration file */ @@ -1754,8 +1749,6 @@ optionsfile::write (const perform & p) << " # auto-save-options-on-exit support flag\n" << (rc().save_old_triggers() ? "1" : "0") << " # save triggers without the transpose byte (save-old-triggers)\n" - << (rc().save_old_mutes() ? "1" : "0") - << " # save mutes as long values, not bytes (save-old-mutes)\n" ; diff --git a/libseq64/src/rc_settings.cpp b/libseq64/src/rc_settings.cpp index c71e9da3..3f51ccf7 100644 --- a/libseq64/src/rc_settings.cpp +++ b/libseq64/src/rc_settings.cpp @@ -25,7 +25,7 @@ * \library sequencer64 application * \author Seq24 team; modifications by Chris Ahlstrom * \date 2015-09-22 - * \updates 2021-05-13 + * \updates 2021-05-05 * \license GNU GPLv2 or above * * Note that this module also sets the legacy global variables, so that @@ -93,7 +93,6 @@ rc_settings::rc_settings () m_verbose_option (false), m_auto_option_save (true), /* legacy seq24 behavior */ m_save_old_triggers (false), - m_save_old_mutes (false), m_legacy_format (false), m_lash_support (false), m_allow_mod4_mode (false), @@ -147,7 +146,6 @@ rc_settings::rc_settings (const rc_settings & rhs) m_verbose_option (rhs.m_verbose_option), m_auto_option_save (rhs.m_auto_option_save), m_save_old_triggers (rhs.m_save_old_triggers), - m_save_old_mutes (rhs.m_save_old_mutes), m_legacy_format (rhs.m_legacy_format), m_lash_support (rhs.m_lash_support), m_allow_mod4_mode (rhs.m_allow_mod4_mode), @@ -207,7 +205,6 @@ rc_settings::operator = (const rc_settings & rhs) m_verbose_option = rhs.m_verbose_option; m_auto_option_save = rhs.m_auto_option_save; m_save_old_triggers = rhs.m_save_old_triggers; - m_save_old_mutes = rhs.m_save_old_mutes; m_legacy_format = rhs.m_legacy_format; m_lash_support = rhs.m_lash_support; m_allow_mod4_mode = rhs.m_allow_mod4_mode; @@ -266,7 +263,6 @@ rc_settings::set_defaults () m_verbose_option = false; m_auto_option_save = true; /* legacy seq24 setting */ m_save_old_triggers = false; - m_save_old_mutes = false; m_legacy_format = false; m_lash_support = false; m_allow_mod4_mode = false; diff --git a/seq_gtkmm2/include/gtk_helpers.h b/seq_gtkmm2/include/gtk_helpers.h index a7a65d8a..587d70a2 100644 --- a/seq_gtkmm2/include/gtk_helpers.h +++ b/seq_gtkmm2/include/gtk_helpers.h @@ -30,7 +30,7 @@ * \updates 2016-05-29 * \license GNU GPLv2 or above * - * Copyright (C) 2015-2016 Chris Ahlstrom + * Copyright (C) 2015-2023 Chris Ahlstrom * * Currently, the only thing defined is the add_tooltip() macro. */ diff --git a/seq_gtkmm2/src/mainwnd.cpp b/seq_gtkmm2/src/mainwnd.cpp index 97f1ce0c..03ae98ca 100644 --- a/seq_gtkmm2/src/mainwnd.cpp +++ b/seq_gtkmm2/src/mainwnd.cpp @@ -2645,7 +2645,7 @@ mainwnd::about_dialog () ( "(C) 2002-2006 Rob C. Buse (seq24)\n" "(C) 2008-2016 Seq24team (seq24)\n" - "(C) 2015-2021 Chris Ahlstrom (sequencer64/seq64)" + "(C) 2015-2023 Chris Ahlstrom (sequencer64/seq64)" ); dialog.set_website ( diff --git a/seq_qt5/forms/qsabout.ui b/seq_qt5/forms/qsabout.ui index cb5e5ad0..2badb387 100644 --- a/seq_qt5/forms/qsabout.ui +++ b/seq_qt5/forms/qsabout.ui @@ -48,7 +48,7 @@ - 2021-05-07 v. 0.97.0 * midi_control + 2023-02-18 v. 0.97.0 * midi_control Qt::AlignCenter