diff --git a/ChangeLog b/ChangeLog index 43edf71e6..198da92a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,364 @@ +2023-07-01 Chris Ahlstrom + + * README.md, doc/latex/tex/references.tex, + seq_portmidi/src/pmwinmm.c: Minor doc updates. + +2023-06-29 Chris Ahlstrom + + * Makefile.in, Seq66cli/Makefile.in, Seq66qt5/Makefile.in, + configure, contrib/scripts/alsa.m4, data/Makefile.in, + doc/Makefile.in, doc/latex/Makefile.in, doc/latex/tex/Makefile.in, + include/config.h.in, libseq66/Makefile.in, + libseq66/include/Makefile.in, libseq66/src/Makefile.in, + libsessions/Makefile.in, libsessions/include/Makefile.in, + libsessions/src/Makefile.in, m4/Makefile.in, m4/alsa.m4, + man/Makefile.in, resources/pixmaps/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 + alsa.m4 to avoid AC_TRY_COMPILE warnings on Arch Linux. + * README.md, RELNOTES, VERSION, configure.ac, contrib/git/git.text, + data/readme.text, data/readme.windows, + data/testing/mapping-snippet.rc, + data/testing/sixteen-ports-snippet.rc, + doc/latex/tex/port_mapping.tex, include/config.h.in, + include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, libseq66/src/midi/businfo.cpp, + libseq66/src/play/clockslist.cpp, libseq66/src/play/inputslist.cpp, + libseq66/src/play/performer.cpp, seq_qt5/src/qseqtime.cpp: Portmap + fixes, date/doc updates, seqtime markers fixed. + +2023-06-28 Chris Ahlstrom + + * README.md, TODO, data/readme.windows, doc/latex/tex/menu.tex, + doc/latex/tex/midi_formats.tex, doc/latex/tex/port_mapping.tex, + doc/latex/tex/references.tex, doc/latex/tex/windows.tex, + libseq66/include/midi/businfo.hpp, + libseq66/include/midi/mastermidibase.hpp, + libseq66/include/midi/midibase.hpp, libseq66/src/midi/businfo.cpp, + libseq66/src/midi/mastermidibase.cpp, + libseq66/src/play/performer.cpp, + seq_portmidi/include/midibus_pm.hpp, + seq_portmidi/include/pminternal.h, seq_portmidi/src/midibus.cpp, + seq_portmidi/src/pmwinmm.c, seq_portmidi/src/portmidi.c, + seq_qt5/forms/qseditoptions.ui: Solidified Windows MIDI Mapper + handling for issue #110. + +2023-06-27 Chris Ahlstrom + + * TODO, data/linux/qseq66.rc, doc/latex/tex/menu.tex, + doc/latex/tex/midi_formats.tex, doc/latex/tex/port_mapping.tex, + doc/latex/tex/windows.tex, libseq66/src/cfg/rcfile.cpp, + libseq66/src/play/clockslist.cpp, libseq66/src/play/inputslist.cpp, + libseq66/src/play/performer.cpp, seq_qt5/forms/qseditoptions.ui, + seq_qt5/src/qseqdata.cpp: Minor tweaks and clean-up. + +2023-06-26 Chris Ahlstrom + + * README.md, TODO, data/readme.text, doc/latex/tex/menu.tex, + doc/latex/tex/port_mapping.tex, + libseq66/include/midi/midibus_common.hpp, + libseq66/include/play/clockslist.hpp, + libseq66/include/play/inputslist.hpp, + libseq66/include/play/performer.hpp, + libseq66/include/play/portslist.hpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/midi/businfo.cpp, + libseq66/src/midi/mastermidibase.cpp, + libseq66/src/play/clockslist.cpp, libseq66/src/play/inputslist.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/portslist.cpp, + libseq66/src/play/songsummary.cpp, nsis/build_release_package.bat, + seq_portmidi/src/midibus.cpp, seq_portmidi/src/portmidi.c, + seq_qt5/forms/qseditoptions.ui, seq_qt5/forms/qseqeditframe64.ui, + seq_qt5/forms/qsessionframe.ui, seq_qt5/src/qclocklayout.cpp, + seq_qt5/src/qseqtime.cpp: Added unavailable flag to port handling + and mapping. + +2023-06-24 ahlstrom + + * README.md, RELNOTES, TODO, doc/latex/tex/midi_formats.tex, + doc/latex/tex/pattern_editor.tex, seq_qt5/forms/qseqeditframe64.ui, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qseqroll.cpp, seq_qt5/src/qseqtime.cpp: Added time-sig + display to timeline. + +2023-06-23 Chris Ahlstrom + + * README.md, TODO, doc/latex/tex/menu.tex, + libseq66/include/cfg/usrsettings.hpp, + seq_qt5/forms/qseditoptions.ui, seq_qt5/include/qseditoptions.hpp, + seq_qt5/include/qseqbase.hpp, seq_qt5/include/qseqeditex.hpp, + seq_qt5/include/qseqeditframe64.hpp, seq_qt5/include/qseqroll.hpp, + seq_qt5/src/qseditoptions.cpp, seq_qt5/src/qseqbase.cpp, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqeditex.cpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qseqroll.cpp, + seq_qt5/src/qstriggereditor.cpp: Improved modification management, + added grid space setting to UI. + +2023-06-22 Chris Ahlstrom + + * INSTALL, README.md, RELNOTES, TODO, + doc/latex/tex/pattern_editor.tex, + libseq66/include/midi/calculations.hpp, + libseq66/include/play/sequence.hpp, + libseq66/include/seq66_features.h, libseq66/src/play/sequence.cpp, + seq_qt5/src/qseqtime.cpp: Enabled time-sig drawing in + seq66_features, upgraded measure calculation. + +2023-06-21 Chris Ahlstrom + + * README.md, TODO, libseq66/include/midi/calculations.hpp, + libseq66/include/midi/editable_events.hpp, + libseq66/include/play/sequence.hpp, + libseq66/src/midi/calculations.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/forms/qseqeventframe.ui, seq_qt5/include/qseqtime.hpp, + seq_qt5/include/qseventslots.hpp, + seq_qt5/include/qstriggereditor.hpp, + seq_qt5/include/qt5_helpers.hpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qseqeventframe.cpp, seq_qt5/src/qseqroll.cpp, + seq_qt5/src/qseqtime.cpp, seq_qt5/src/qseventslots.cpp, + seq_qt5/src/qstriggereditor.cpp, seq_qt5/src/qt5_helpers.cpp: Added + time-sig drawing to qseqtime and qstriggereditor, disabled by + SEQ66_TIME_SIG_DRAWING in sequence.hpp, time-sig fixes galore. + +2023-06-18 ahlstrom + + * README.md, RELNOTES, libseq66/src/play/sequence.cpp, + seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/src/qseqeditframe64.cpp: Fixed setting up the time-sig log + button. + +2023-06-17 Chris Ahlstrom + + * README.md, TODO, libseq66/include/play/sequence.hpp, + libseq66/src/play/sequence.cpp, + seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qsmainwnd.cpp: + Refactored meta and time-sig detection code. + +2023-06-16 Chris Ahlstrom + + * NEWS, README.md, TODO, VERSION, configure.ac, + include/config.h.in, include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, + libseq66/src/midi/calculations.cpp, + libseq66/src/midi/editable_event.cpp, + libseq66/src/midi/midi_vector_base.cpp, + libseq66/src/midi/midifile.cpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qseqeventframe.cpp, seq_qt5/src/qseventslots.cpp: Fixes + to editing time-signature in event editor. + +2023-06-15 Chris Ahlstrom + + * TODO, doc/latex/tex/pattern_editor.tex, + seq_qt5/forms/qseqeditframe64.ui, + seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qseqtime.cpp: More work + on adding time signatures. + +2023-06-14 Chris Ahlstrom + + * Seq66qt5/Seq66qt5.pro, TODO, libseq66/include/midi/eventlist.hpp, + libseq66/include/play/sequence.hpp, + libseq66/src/cfg/usrsettings.cpp, + libseq66/src/midi/editable_event.cpp, libseq66/src/midi/event.cpp, + libseq66/src/midi/eventlist.cpp, libseq66/src/midi/midifile.cpp, + libseq66/src/play/sequence.cpp, nsis/winddeploybruteforce.bat, + seq_qt5/include/qseqeditframe64.hpp, seq_qt5/src/qseqdata.cpp, + seq_qt5/src/qseqeditframe64.cpp: Wash hands of 32-bit Windows for + now, fixed and improvd time-sig handling. + +2023-06-12 Chris Ahlstrom + + * Seq66qt5/Seq66qt5.pro, include/config.h.in, + nsis/Seq66Constants.nsh, nsis/build_release_package.bat, + nsis/winddeploybruteforce.bat, seq_qt5/src/qseqroll.cpp: Seemingly + futile attempt at Win32 build on a Win64 machine. + +2023-06-09 Chris Ahlstrom + + * README.md, TODO, libseq66/src/play/sequence.cpp, + seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/include/qstriggereditor.hpp, seq_qt5/src/qseqdata.cpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qseqroll.cpp, + seq_qt5/src/qstriggereditor.cpp: Support for setting pattern editor + to beginning time-signature in place. + +2023-06-08 Chris Ahlstrom + + * README.md, TODO, libseq66/include/midi/event.hpp, + libseq66/include/midi/eventlist.hpp, + libseq66/include/play/sequence.hpp, libseq66/src/midi/event.cpp, + libseq66/src/midi/eventlist.cpp, libseq66/src/midi/midi_vector.cpp, + libseq66/src/play/performer.cpp, libseq66/src/play/sequence.cpp, + seq_qt5/forms/qseqeditframe64.ui, seq_qt5/include/qseqdata.hpp, + seq_qt5/include/qseqeditframe64.hpp, + seq_qt5/include/qstriggereditor.hpp, seq_qt5/src/qseqdata.cpp, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qstriggereditor.cpp, + seq_qt5/src/qt5nsmanager.cpp: Work on issue #111 improving + time-signature support, in progress. + +2023-06-07 ahlstrom + + * TODO, libseq66/src/os/shellexecute.cpp, + libseq66/src/play/performer.cpp, nsis/Seq66Constants.nsh, + nsis/build_release_package.bat, nsis/winddeploybruteforce.bat: + Trying to get a Windows 32-bit version to deploy. + +2023-06-04 Chris Ahlstrom + + * README.md, TODO, doc/latex/tex/menu.tex, + libseq66/include/cfg/rcsettings.hpp, libseq66/src/cfg/rcfile.cpp, + libseq66/src/cfg/rcsettings.cpp, seq_qt5/forms/qseditoptions.ui, + seq_qt5/include/qseditoptions.hpp, seq_qt5/src/qseditoptions.cpp, + seq_qt5/src/qt5nsmanager.cpp: Added quiet option, improved + control/display options. + +2023-06-03 ahlstrom + + * libseq66/include/seq66_features.h, + seq_portmidi/include/portmidi.h, + seq_portmidi/src/mastermidibus.cpp, seq_portmidi/src/pmlinux.c, + seq_portmidi/src/pmmac.c, seq_portmidi/src/pmmacosxcm.c, + seq_portmidi/src/pmutil.c, seq_portmidi/src/pmwin.c, + seq_portmidi/src/pmwinmm.c, seq_portmidi/src/portmidi.c, + seq_portmidi/src/ptmacosx_mach.c: Investigated Windows portmidi free + error, disabled incomplete sysex processing. + +2023-06-02 Chris Ahlstrom + + * README.md, TODO, libseq66/src/play/performer.cpp: Tweaks for + remote work. + +2023-06-01 ahlstrom + + * README.md, TODO, VERSION, configure.ac, doc/latex/tex/alsa.tex, + doc/latex/tex/event_editor.tex, doc/latex/tex/jack.tex, + doc/latex/tex/menu.tex, include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp, seq_qt5/forms/qseditoptions.ui, + seq_qt5/src/qsmainwnd.cpp: Documentation of port-map prompts. + +2023-05-31 ahlstrom + + * libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, libseq66/src/play/sequence.cpp, + libseq66/src/sessions/smanager.cpp: Improved reporting of MIDI + driver errors. + * README.md, TODO, doc/latex/tex/first_start.tex, + libseq66/include/play/performer.hpp, + libseq66/src/play/performer.cpp, libseq66/src/play/portslist.cpp, + libseq66/src/sessions/smanager.cpp, seq_qt5/include/qsmainwnd.hpp, + seq_qt5/include/qt5nsmanager.hpp, seq_qt5/src/qseditoptions.cpp, + seq_qt5/src/qsmainwnd.cpp, seq_qt5/src/qt5nsmanager.cpp: Made + port-map inconsistencies raise a prompt for a potential remapping + and restart. + +2023-05-30 Chris Ahlstrom + + * TODO, data/share/doc/tutorial/faq.html, + data/share/doc/tutorial/left-tree.html: Added a couple of FAQs to + the tutorial. + * README.md, TODO, data/license.text, data/readme.text, + libseq66/include/os/shellexecute.hpp, + libseq66/include/play/sequence.hpp, + libseq66/include/util/strfunctions.hpp, + libseq66/src/cfg/settings.cpp, libseq66/src/os/shellexecute.cpp, + libseq66/src/play/sequence.cpp, libseq66/src/util/strfunctions.cpp, + seq_qt5/src/qseqdata.cpp: Fixed tutorial/manual access for issue + #110. + +2023-05-28 ahlstrom + + * README.md, Seq66qt5/Seq66qt5.pro, TODO, + libseq66/include/util/filefunctions.hpp, + libseq66/src/midi/midifile.cpp, libseq66/src/sessions/smanager.cpp, + libseq66/src/util/filefunctions.cpp, nsis/Seq66Setup.nsi, seq66.pro: + Added code to delete gigantic log file. + +2023-05-27 Chris Ahlstrom + + * contrib/notes/install-directories.text, + libseq66/src/os/daemonize.cpp: Fixed stdio rerouting and added + Windows icons. + +2023-05-26 Chris Ahlstrom + + * seq_qt5/src/qsmainwnd.cpp: Minor tweak to qsmainwnd. + * Seq66qt5/Seq66qt5.pro, contrib/notes/install-directories.text, + nsis/Seq66Constants.nsh, nsis/Seq66Setup.nsi, + nsis/build_release_package.bat, resources/icons/route66.xpm, + resources/seq66_win.rc, seq66.pro, seq_qt5/src/qsmainwnd.cpp: Better + app icon support in progress. + * README.md, Seq66qt5/seq66qt5.cpp, + contrib/notes/install-directories.text, data/linux/qseq66.usr, + resources/seq66_win.rc, seq66.pro, seq_qt5/src/qsmainwnd.cpp: + Interim check-in for Windows icon handling. + +2023-05-25 Chris Ahlstrom + + * README.md, libseq66/include/seq66_features.h, + libseq66/include/seq66_features.hpp, libseq66/src/cfg/usrfile.cpp, + libseq66/src/seq66_features.cpp, libseq66/src/sessions/smanager.cpp: + Making log-file usage more automatic, need to debug under Windows. + * data/linux/qseq66.usr, doc/latex/tex/menu.tex, + libseq66/include/cfg/settings.hpp, libseq66/src/cfg/settings.cpp, + libseq66/src/os/shellexecute.cpp, seq_qt5/src/qsmainwnd.cpp: + Refactored the handling of the tutorial and manual. + +2023-05-24 Chris Ahlstrom + + * Seq66qt5/seq66qt5.cpp, TODO, libseq66/include/play/sequence.hpp, + libseq66/include/seq66_features.hpp, libseq66/src/cfg/settings.cpp, + libseq66/src/os/shellexecute.cpp, libseq66/src/play/sequence.cpp, + libseq66/src/seq66_features.cpp, nsis/Seq66Constants.nsh, + nsis/Seq66Setup.nsi, nsis/build_release_package.bat, + seq_qt5/src/qseqeditframe64.cpp, seq_qt5/src/qseqroll.cpp: Fixed + issue #110 to handle changing background sequence. + * TODO, seq_qt5/include/qscrollslave.h, + seq_qt5/src/qscrollslave.cpp, seq_qt5/src/qseqeditframe64.cpp: + Forwarding direction events from qscrollslave to qscrollmaster. + +2023-05-23 Chris Ahlstrom + + * TODO, doc/latex/tex/pattern_editor.tex, + seq_qt5/include/qscrollslave.h, seq_qt5/include/qseqdata.hpp, + seq_qt5/include/qsmainwnd.hpp, seq_qt5/src/qscrollslave.cpp, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qsmainwnd.cpp: More issue #3 work and tentative fix for + main tempo change. + * README.md, RELNOTES, TODO, VERSION, configure, configure.ac, + contrib/git/git.text, doc/latex/tex/kbd_mouse.tex, + doc/latex/tex/pattern_editor.tex, + doc/latex/tex/seq66-user-manual.tex, include/config.h.in, + include/qt/portmidi/seq66-config.h, + include/qt/rtmidi/seq66-config.h, + libseq66/include/midi/eventlist.hpp, + libseq66/include/play/sequence.hpp, libseq66/src/midi/event.cpp, + libseq66/src/midi/eventlist.cpp, libseq66/src/play/sequence.cpp, + nsis/README, nsis/Seq66Constants.nsh, nsis/Seq66Setup.nsi, + seq_qt5/forms/qseqeditframe64.ui, seq_qt5/include/Makefile.am, + seq_qt5/include/Makefile.in, seq_qt5/include/qseqdata.hpp, + seq_qt5/include/qseqeditframe64.hpp, seq_qt5/include/qseqroll.hpp, + seq_qt5/include/qt5_helpers.hpp, seq_qt5/seq_qt5.pro, + seq_qt5/src/Makefile.am, seq_qt5/src/Makefile.in, + seq_qt5/src/qperfeditframe64.cpp, seq_qt5/src/qperfnames.cpp, + seq_qt5/src/qseqdata.cpp, seq_qt5/src/qseqeditframe64.cpp, + seq_qt5/src/qseqroll.cpp, seq_qt5/src/qstriggereditor.cpp, + seq_qt5/src/qt5_helpers.cpp: Added qscrollslave class, keeps seqedit + panes in sync now, issue #3. + 2023-05-20 Chris Ahlstrom + * ChangeLog, README.md, RELNOTES, TODO, contrib/git/git.text, + data/readme.text, data/readme.windows, + doc/latex/tex/first_start.tex, include/config.h.in, + libseq66/src/play/performer.cpp, + libseq66/src/sessions/smanager.cpp, nsis/README, + nsis/Seq66Constants.nsh, nsis/Seq66Setup.nsi, + nsis/build_debug_code.bat, nsis/build_release_package.bat: Release + Notes for Seq66 v. 0.99.5 2023-05-20 This file lists __major__ changes... * data/license.text, data/readme.text, data/readme.windows, nsis/README, nsis/Seq66Setup.nsi: Got 64-bit build/installer working. diff --git a/RELNOTES b/RELNOTES index b0d54e2a3..53411ba0d 100644 --- a/RELNOTES +++ b/RELNOTES @@ -30,8 +30,9 @@ This file lists __major__ changes from version 0.99.6 - Non-MIDI-standard beat-widths are supported as a Seq66-specific "event". - Fixed event filtering in the event (qstriggereditor) pane. - - As the time-signatures change, Seq66 adjusts the piano roll, - time line (with measure counts), and event pane vertical lines. + - As time-signatures change, Seq66 adjusts the piano roll, + time line (with measure counts), and event pane vertical + lines. - Port-mapping prompts about port issues and allows an immediate remap-and-restart. - 'o' keystroke in seqroll toggles recording ('r' already diff --git a/contrib/git/git.text b/contrib/git/git.text index c54265c6b..a52c58c36 100644 --- a/contrib/git/git.text +++ b/contrib/git/git.text @@ -1,605 +1,8 @@ Quick Reference for Git Processes on GitHub Chris Ahlstrom -2015-09-09 to 2023-06-29 +2015-09-09 to 2023-07-01 -Creating a GitHub Repository: - -First, I like to create the project on my computer. Once the files -are in place, run the following commands in the top directory of the -project: - - $ git init - $ git add . - $ git commit -m "Created this new and wonderful project." - -In GitHub, create the new repository (without the LICENSE and README -files, which one can create locally). Then copy the repository URL to the -system clipboard. We will call it $MY_GITHUB_URL. Add the remote -URL, verify it, and push this local repository to it. - - $ git remote add origin $MY_GITHUB_URL - $ git remote -v - $ git push -u origin master - -Now we are ready to work, making changes locally and pushing them to -GitHub. - -Create a Repository on a Local Server: - -On a side note, if one wants to create a local repository called "proj.git" -on a machine with many users, who are all in the group "devs", initialize -the repository to be "shared": - - $ git init --bare --shared=group proj.git - -The --bare option avoids creating a working directory, which is desirable -if the repository is to be shared. The --shared option makes the -repository group-writable and g+sx. In the repository config file, make -sure to find: - - [core] - bare = true - sharedrepository = 1 # i.e. "true" - -Then change the group owner of the repository, if not already set to -"devs" by git: - - $ chgrp -R devs proj.git - -To get the code to this new bare repository, first go to the top-level -directory in the code base (e.g. the "proj") directory. Then: - - $ git init - $ git add . - $ git commit -m "Initial commit before pushing to central repo." - $ git remote add origin ssh://user@theserver/srv/git/proj.git - $ git push --all origin -or- git push -u origin master - -This process is very similar to what done does for GitHub. - -A simpler process can be used if one just wants to share a home repository -between various local Linux computers where SSH has already been set up -with keys. - - Main computer (server): - - $ git init - $ git add . - $ git commit -m "Created this new and wonderful project." - - Other computers: - - $ git clone ssh://user@maincomputer/pathtomycode/git/projectdir - -Repository Management: - - https://github.com/Kunena/Kunena-Forum/wiki/ - Create-a-new-branch-with-git-and-manage-branches and others - -In a github fork, keep the master branch clean (no changes pending). Then -one can create a branch from the master. Each time one wants to commit a bug -or a feature, create a branch for it, which is a copy of the master branch. - -When doing a pull request on a branch, one can continue to work on another -branch and make another pull request on this other branch. To determine -what changes were made in a pull request, use the following command. To -just list the files, leave off the -p. - - $ git request-pull -p master https://github.com/ahlstromcj/sequencer64.git - -Create the branch on the local machine and switch to it: - - $ git checkout -b [name_of_your_branch] - -To branch from another branch, add it to the command: - - $ git checkout -b [name_of_your_branch] [name of existing branch] - -Here is an example of a feature branch from the tutorial - - https://nvie.com/posts/a-successful-git-branching-model/: - - $ git checkout -b myfeature develop # Switched to a new branch "myfeature" - - # Finished features may be merged into the develop branch to definitely - # add them to the upcoming release: - - $ git checkout develop # Switched to branch 'develop' - $ git merge --no-ff myfeature # Updating ea1b82a..05e9557 - $ git branch -d myfeature # Deleted branch myfeature (was 05e9557). - $ git push origin develop - -When the branch is ready, push the branch to the "origin" remote on -GitHub as in the example above: - - $ git push origin [name_of_your_branch] - -Better, to make sure git pull will work, set an upstream branch: - - $ git push -u origin [name_of_your_branch] - -When you want to modify and commit something in the branch, first checkout -the branch. If git claims it cannot check out a branch, do the -following command to tell the local git repo about new branches: - - $ git fetch - -Update the branch when the original branch from official repository has been -updated: - - $ git fetch [name_of_your_remote] - -(It is important to be aware that the fetch command does not do a merge, -while a pull command does attempt to do a merge. Doing a pull of one branch -while the current branch is a different one is something one generally -does not want to do.) - -Others can track the branch in this manner to simplify the git push command: - - $ git checkout --track -b your_branch origin/your_branch - $ git commit -m "the relevant message" - $ git push - -Then apply (merge) the changes. If the branch is derived from the -"develop" branch do this action: - - $ git checkout master - $ git merge [name_of_your_remote]/develop - -If one had set up an upstream branch, then this command will suffice: - - $ git merge develop - -One can add the --no-commit option to allow for inspecting the merge and -doing further tweaking of the merge before committing the merge. - -Then make any minor tweaks or version stamping needed to make the master -official. Also, it is beneficial to tag the release (as discussed below) to -make it easier for users to determine the differences between major/minor -releases, without having to study a bunch of intermediate commits. - -One can also merge from master to a feature-branch without a checkout: - - $ git merge master feature-branch - -One will probably also want to merge back any tweaks made to master back -into your branch, if you intend to do further work in that branch: - - $ git checkout develop - $ get merge master - $ git push origin develop - -Branch delete/remove: - - First delete the branch on github: - - $ git push origin :name_of_branch -or- - $ git push origin --delete name_of_branch - - Follow that up with this command on all the local copies: - - $ git fetch --all --prune -or- - $ git branch -d name_of_branch - - The prune command has failed on one of our systems with a Python - error regarding apt_pkg. Even if python-apt or python3-apt are - installed. - -Caching ones credentials (be careful!): - - $ git config credential.helper store - -Pulls and merges: - - For a GitHub project, one can use the handy "Merge pull request" - button on the project page, or do it from the command line. - - Step 1: From the project repository, check out a new branch and test - the changes. - - $ git checkout -b TDeagan-mute_groups master # or a branch - $ git pull https://github.com/TDeagan/sequencer64.git mute_groups - - Step 2: Verify that the changes are reasonable and correct, building if - needed. The following command will show all the changes, and - one can build and test if the changes look suspicious. - - $ git diff --name-only master # How many files changed? - $ git difftool master # View them (e.g. gvimdiff) - - Step 3: Merge the changes and update on GitHub. - - $ git checkout master - $ git merge --no-ff TDeagan-mute_groups - $ git push origin master - -Trial merge: - - To do a trial merge, pass in the --no-commit flag, but, to avoid a - fast-forward commit, also pass in --no-ff, like so: - - $ git merge --no-commit --no-ff $BRANCH - - To examine the staged changes: - - $ git diff --cached - - And one can undo the merge, even if it is a fast-forward merge: - - $ git merge --abort - - This still modifies the working copy. - -Release: - - Steps for making a release (unofficial, does not yet include - instructions for a GitHub relese): - - - Make sure the working branch builds and runs properly for - the rtmidi, portmidi, debug, Windows, and command-line versions, - and all changes are pushed to GitHub. - - Run "./bootstreap --full-clean". - - Check out the "master" branch and merge the working branch - into it. - - Make sure the version numbering and dates are current in - configure.ac, VERSION, README.md, RELNOTES, - include/qt/portmidi/seq66-config.h, include/qt/rtmidi/seq66-config.h, - seq66-user-manual.tex, and ...? - - Update the README.md and RELNOTES (see below) files. - - Verify the master branch builds ("./bootstrap -er" followed - by "make") and runs. - - Update the files in the "nsis" directory to the latest version, - and update the readmes and license files as necessary. - - Verify that the Windows version builds, runs, and that the - Windows installer is created and works. Verify the configuration - files in C:/Users/user/AppData/Local/seq66. - - Go to "doc/latex" and run "make" to rebuild the PDF manual. - - Run "git2cl > cl.txt" and use it to update the Changelog file. - - Commit this release build *without* the "-m" option. Instead, - read the RELNOTES file into the commit message. See the - commit-message rules below. - - Push the release. - - Get the HEAD checksum and use it to create the tag with a simple - message about the version number. - - On GitHub, create a release with a name of the form - "Fancy Name 0.99.x". Add the Windows installer to the release packages. - - Rules for a Git commit message: - - - Separate Subject from Body with a BLANK LINE. - - Do NOT end the Subject line with a period. - - Capitalize the Subject line and each paragraph. - - Wrap lines at 72 characters. - - Later we will discuss how to build and verify the Windows - version and make the installer part of the release (instead - of using the "packages" repository. - -Tagging: - - We want to tag release points (e.g. 0.99.9) with a tag of the - same name. We create an annotated tag, which adds information and - requires a commit message, and is meant for public consumption. - - $ git log # to get the commit hash, abcd1234 (for example) - $ git tag -a 0.99.9 -m "Version 0.99.9" abcd1234 - $ git push origin 0.99.9 - or - - $ git push origin --tags - - If one tags the wrong commit, simply re-tag with the correct commit, - and add the "-f" (force) option. - - An alternative tag command, thanks to Milkii Brewster, is: - - $ git tag -a 0.9.9.xx -m "$(cat RELNOTES.md)" abcd1234 - - This command does not seem to work. - - He also notes the the GitHub "Create Release" feature can be used. - Install the "hub" app; it is the official command-line version of GitHub. - (It also pays to install "gitsome", which adds the "gh" application - also useful in creating releases. - Then: - - $ hub release create --copy -F RELNOTES.md v2.3.0 - $ hub release create -a 0.9.9 -F RELNOTES.md v2.3.0 - $ gh release -F RELNOTES.md create - - Here is what we will use: - - $ git config --global hub.protocol ssh - $ git tag -a 0.99.0 -m "Version 0.99.0" abcd1234 - $ git push origin --tags - $ hub release create 0.99.0 -F RELNOTES.md abcd1234 - - For the first command, the URL of the new release is copied to the - clipboard. - - See https://hub.github.com/ for more information. For example, one can - start a discussion with gh. - - Note that each tag to be published needs to be pushed as well. - Also note that, if the commit hash is missing, HEAD is assumed. - - $ hub release create -a prebuilt.zip -m 'release title' tag-name - - - Prompts for your password the first time, and then automatically. - - Creates and stores an API token locally. - - Creates a non-annotated tag on the remote called tag-name. - - Creates a release associated to that tag. - - Uploads prebuilt.zip as an attachment. - -Tag Checkout: - - A user can get the tagged code into a new branch via commands like the - following. First, fetch tags from the remote repository. Then check out - the desired tag (here, "0.00.0" into a new branch with the desired name: - - $ git fetch --all --tags - $ git checkout tags/0.99.9 -b newbranch - - If a new branch is NOT desired (i.e. one wants to compare an old - version with a current buggy version in a separate copy of the - repository), use this: - - $ git checkout 0.99.9 - - Be careful about modifications; if committed, they represent new work - one might need to merge later, but the new work will not be part of the - tagged commit. - - To get all of the tags for a project, a simple pull (of all items) is - necessary: - - $ git pull - - To show all of the tags present in the project, along with the commit - numbers for the tag and the tag operation: - - $ git show-ref --tags - - To show just the tag names: - - $ git tag - - To add the date of each tag: - - $ git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r - - Related to tags, one can generate a brief description of the current - commit, based from the latest tag, using the following call (with the - result shown): - - $ git describe --tags --long - 0.9.11-12-gca37826 - - This output says that the command was run after the 12th commit after - the 0.9.11 tag, and includes a hash code (after the "g", which simply - denotes that the "git" DVCS is being used) that can be used if the - commit changes, or there are many 12th commits. Note that the output - also depends on the current branch that is checked out. Also, there - is an --always option that can be added to grab the latest hash value - found even if no commit has yet been tagged (as is the case early on - in a project). - - To check out a specific tag: - - $ git fetch --all --tags --prune - $ git checkout tags/ [-b branch name] - - The branch name is optional; one might not want to make a branch, and - just get the tagged version. - - $ ./pack 0.94.6 - - This will pack up the code and Makefiles as a tar-file that can be - used to ./configure and build the code. - - To remove a tag: - - $ git tag -d 0.91.5 - $ git push --delete origin 0.91.5 - -Cherry-Picking: - - If one makes a fix in a branch and wants just that commit to be merged - (into master), then do the following after committing the fix in the - branch, assuming the branch and master are both now clean: - - $ git log # and record the last commit hash - $ git checkout master - $ git cherry-pick --edit a2d34fb - - And then one can push the fix and the new tag. - - See this article on why one should generally avoid cherry-picking - in git: - - http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html - -Pull Requests: - - When one gets an email about a pull request, there are a couple of - ways of dealing with it, given that it is an acceptable request. - - First, one can go to the project GitHub page, and click on the "Merge - pull request" button. - - Second, one can do something like this, from the command line: - - $ git checkout -b otherproject-master master - $ git pull https://github.com/otherproject/sequencer64.git master - $ git checkout master - $ git merge --no-ff otherproject-master - $ git push origin master - -Diffs: - - Summarizing differences between commits, much like - "svn diff --summarize": - - $ git diff --name-status - - Then, if one has the following in the .gitconfig file: - - [diff] - tool = gvimdiff - [difftool] - prompt = false - - One can cycle through a series of diffs on the involved files with one - of the best diff viewers ever: - - $ git difftool - - Getting a list of files that have conflicts: - - $ git diff --name-only --diff-filter=U - -Log information: - - We add to our ChangeLog using the perl script "git2cl": - - $ git2cl > cl.txt - $ gvim -O cl.txt ChangeLog - (copy stuff from cl.txt to ChangeLog and clean it up) - - A quick way to summarize the files edited in the last few commits is: - - $ git log --pretty --numstat --summary - -Listing files: - - One often wants to do a quick edit or survey of modified files. - The following command is useful: - - $ git ls-files -m - - In bash, one can pass the list to vi(m): - - $ vi $(git ls-files -m) - - To list only untracked files: - - $ git ls-files --others --exclude-standard - - From https://jayenashar.wordpress.com/2014/03/07/ - git-status-sorted-by-last-modified-timestamp/, - - Here’s a command that will show the modified, but unstaged files, - sorted by time: - - $ ls -lrtd $(git status --porcelain | grep '^.[?M]' | sed 's/^.. //') - -Listing issues: - - See https://adriansieber.com/download-github-issues-from-command-line/. - - Browsing to the following URL will obtain a dump of all Sequencer64 - issues: - - https://api.github.com/repos/ahlstromcj/sequencer64/issues - - This dump needs programming to whip it into human-readable form. - - http -b https://api.github.com/repos/ahlstromcj/sequencer64/issues?state=all - -Permanently delete a file and its history: - - $ git filter-branch --index-filter \ - "git rm -rf --cached --ignore-unmatch seq66/0.90/seq66_setup_0.90.4.exe" \ - HEAD - $ git push --all - - This can take a long long time if the file has thousands of commits. - Not yet sure if this really works! - -Git Submodules: - - Submodules allow one to keep a Git repository as a subdirectory of another - Git repository; one can clone another repository into a project and keep - the commits separate. One can add an absolute or relative URL of the - project to track: - - $ cd my_git_repo - $ git checkout master - $ git submodule add https://github.com/chaconinc/DbConnector - - This creates a .gitmodules file (which is tracked in Git) and a DbConnector - directory. - - $ git commit -am "Add SbConnector project as a submodule." - $ git push origin master - - To get an existing project that has submodules: - - $ git clone --recurse-submodules https://github.com/chaconinc/MainProject - - For details, see https://git-scm.com/book/en/v2/Git-Tools-Submodules, it - discusses many more submodule commands. - - To update: - - $ git submodule update --remote DbConnector - - Leave off the submodule name to update all of them. To pull upstream - changes: - - $ git pull - $ git submodule update --init --recursive - - The "--init" covers the case that the main project added more submodules. - - To push submodules, and then the main project, use: - - $ git push --recurse-submodules=check - - To run a command for all submodules: - - $ git submodule foreach 'git stash' - $ git submodule foreach 'git checkout -b NewFeatureA' - - To delete a submodule: - - $ git submodule deinit -f -- DbConnector - $ rm -rf .git/modules/DbConnector - $ git rm -f DbConnector - -Creating a personal GitHub Site: - - 1. In the upper-right corner of any page, use the "+" drop-down menu, - and select "New repository". [Note: actually, go to the - user-profile link (your face), then the "Your repositories" link. - Then click the "New" button.] - 2. Enter username.github.io as the repository name. Replace username - with the GitHub username. - 3. Under your repository name, click "Settings". - 4. In the "Code and automation" section of the sidebar, click "Pages". - 5. Click "Choose a theme". Browse and pick a theme. - 6. Modify the new "README.md" file. Click "Commit changes." - 7. The site can be changed by editing "_config.yml" in the "Code" - tab. Click "Commit changes". - - Note that is can take up to 20 minutes for site changes to appear. - See https://docs.github.com/en/pages/quickstart for "Next Steps". - -Adding a PDF to the personal GitHub Site: - - Once the site is created, clone it locally. - - The PDF needs to go into https://username.github.io/folder. - -Cloning our personal GitHub site: - - $ git clone https://github.com/ahlstromcj/ahlstromcj.github.io - - Then it is good to use the existing SSH/Git access by editing - .git/config to set: - - [remote "origin"] - url = git@github.com:ahlstromcj/ahlstromcj.github.io - - Otherwise, GitHub now gripes about security and refuses to deal with - a https link. +The content of this file has been moved to the LibreOffice document +"git.odt". # vim: sw=4 ts=4 wm=8 et ft=sh diff --git a/nsis/build_debug_code.bat b/contrib/scripts/build_debug_code.bat similarity index 100% rename from nsis/build_debug_code.bat rename to contrib/scripts/build_debug_code.bat diff --git a/data/license.text b/data/license.text index 99b645b6b..65dbca6fe 100644 --- a/data/license.text +++ b/data/license.text @@ -1,6 +1,6 @@ Seq66 Licensing 0.99.6 and above Chris Ahlstrom -2015-09-10 to 2023-06-01 +2015-09-10 to 2023-07-01 Applications: diff --git a/data/readme.text b/data/readme.text index 0444384b9..1f07eea61 100644 --- a/data/readme.text +++ b/data/readme.text @@ -16,18 +16,13 @@ It is also installed in "/usr/local/share/doc/seq66-0.90" (or a later version number) along with ODF spreadsheets describing the control keys and Launchpad Mini configuration. It covers everything that seq66 can do. -Prebuilt Debian packages, Windows installers, and source tarballs are -available here, in the project directory for Sequencer64 packages: +Prebuilt packages, Windows installers, and source tarballs are +provided as part of the GitHub release. - https://github.com/ahlstromcj/sequencer64-packages.git - -This directory contains files to be installed in the ${prefix}/share/seq66-0.97 -(replace 0.97 with the latest version). directory ("prefix" is /usr/share -or /usr/local/share) on Linux, or in the installation ${install}/data -directory (e.g. C:/Program Files/Seq66/data) on Windows. - -However, as of version 0.99.5, the Windows installer will be available as -part of the extra packages in a GitHub release. +This directory contains files to be installed in the ${prefix}/share/seq66-0.99 +directory ("prefix" is /usr/share or /usr/local/share) on Linux, or in the +installation ${install}/data directory (e.g. C:/Program Files/Seq66/data) +on Windows. Seq66 will create the configuration directory and configuration file the first time, but we also supply some samples. The files include alternate @@ -46,12 +41,11 @@ rather than the Windows executable "qpseq66.exe". Port-Mapping: See the PDF user manual for full details. Here, we note that port-mapping - is enabled by default. If it is, and devices do not show up, then - go to the Edit / Preferences / Clock tab and click the "Make maps" button. - Exit and restart and the device should show up. - - This process is usually necessary when adding new MIDI devices to the - system setup. + is enabled by default. If it is, and devices do not show up, then go to + the Edit / Preferences / Clock tab and click the "Make maps" button. Exit + and restart and the device should show up. Or just click the "Remap and + restart" button if a warning message pops up. This process is usually + necessary when adding new MIDI devices to the system setup. Windows support: diff --git a/data/readme.windows b/data/readme.windows index 98fe559cb..e8d1e0936 100644 --- a/data/readme.windows +++ b/data/readme.windows @@ -21,21 +21,21 @@ version, such as virtual ports. Sample configuration files are provided. Why the name qpseq66.exe instead of seq66.exe? The "q" stands for the Qt user interface, and the "p" stands for the PortMidi-based engine used for Windows. -Once installed, go to "C:/Program Files (x86)/Seq66" and create a desktop +Once installed, go to "C:/Program Files/Seq66" and create a desktop shortcut for qpseq66.exe, with the following command line (for a default Windows 10 setup having only the MIDI Mapper and the Microsoft wave-table synthesizer installed): - C:\Program Files (x86)\Seq66\qpseq66.exe + C:\Program Files\Seq66\qpseq66.exe (Other files are available in the 'data' directory. For example, the user manual is a PDF file stored in: - C:\Program Files (x86)\Seq66\data\doc\seq66-user-manual.pdf + C:\Program Files\Seq66\data\doc\seq66-user-manual.pdf and sample Seq66 MIDI files are stored in - C:\Program Files (x86)\Seq66\data\midi\ + C:\Program Files\Seq66\data\midi\ for demonstration of various Seq66 features.) diff --git a/data/share/doc/seq66-user-manual.pdf b/data/share/doc/seq66-user-manual.pdf index 429781834..254bde311 100644 Binary files a/data/share/doc/seq66-user-manual.pdf and b/data/share/doc/seq66-user-manual.pdf differ diff --git a/doc/latex/images/windows/edit-preferences.png b/doc/latex/images/windows/edit-preferences.png index 020b1a6ba..e08faf75a 100644 Binary files a/doc/latex/images/windows/edit-preferences.png and b/doc/latex/images/windows/edit-preferences.png differ diff --git a/doc/latex/images/windows/loopmidi-clocks.png b/doc/latex/images/windows/loopmidi-clocks.png new file mode 100644 index 000000000..8326de05a Binary files /dev/null and b/doc/latex/images/windows/loopmidi-clocks.png differ diff --git a/doc/latex/images/windows/loopmidi-inputs.png b/doc/latex/images/windows/loopmidi-inputs.png new file mode 100644 index 000000000..1494ff5f3 Binary files /dev/null and b/doc/latex/images/windows/loopmidi-inputs.png differ diff --git a/doc/latex/images/windows/open-installed-midi-file.png b/doc/latex/images/windows/open-installed-midi-file.png index 5b13efb39..10c1eec9f 100644 Binary files a/doc/latex/images/windows/open-installed-midi-file.png and b/doc/latex/images/windows/open-installed-midi-file.png differ diff --git a/doc/latex/images/windows/open-midi-file.png b/doc/latex/images/windows/open-midi-file.png index 10711643d..0b39d4aef 100644 Binary files a/doc/latex/images/windows/open-midi-file.png and b/doc/latex/images/windows/open-midi-file.png differ diff --git a/doc/latex/images/windows/rc-file-post-first-startup.png b/doc/latex/images/windows/rc-file-post-first-startup.png index a128b97a1..bf1154343 100644 Binary files a/doc/latex/images/windows/rc-file-post-first-startup.png and b/doc/latex/images/windows/rc-file-post-first-startup.png differ diff --git a/doc/latex/images/windows/windows-first-startup.png b/doc/latex/images/windows/windows-first-startup.png index 12891d633..81c12a89a 100644 Binary files a/doc/latex/images/windows/windows-first-startup.png and b/doc/latex/images/windows/windows-first-startup.png differ diff --git a/doc/latex/tex/port_mapping.tex b/doc/latex/tex/port_mapping.tex index 80835e11b..ec92e6fff 100644 --- a/doc/latex/tex/port_mapping.tex +++ b/doc/latex/tex/port_mapping.tex @@ -6,7 +6,7 @@ % \library Documents % \author Chris Ahlstrom % \date 2020-12-29 -% \update 2023-06-28 +% \update 2023-07-01 % \version $Revision$ % \license $XPC_GPL_LICENSE$ % @@ -105,7 +105,7 @@ \section{Port Mapping} \label{fig:clocks_list_before_port_mapping} \end{figure} - Note the \texttt{system:midi\_playback\} that is part of each port name. + Note the \texttt{system:midi\_playback} that is part of each port name. (There is a similar "capture" portion for input ports). Click on the \textbf{Make Maps} button. This creates the initial I/O maps internally. diff --git a/nsis/README b/nsis/README index 3497bc7ec..6d0413ead 100644 --- a/nsis/README +++ b/nsis/README @@ -1,6 +1,6 @@ NSIS Notes Chris Ahlstrom -2021-12-11 to 2023-05-21 +2021-12-11 to 2023-07-01 This directory contains files that allow Linux and Windows users to create an NSIS installer for Seq66. The latest version adds application @@ -25,11 +25,15 @@ Source: Since NSIS is currently a 32-bit program, it redirects installations by default to "C:\Program Files (x86)" and uses, from the Windows Registry, -only "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node". +only "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node". We have updated that to +install to "C:\Program Files", since Seq66 can be built only as a 64-bit +application on our current development system. -NOTE: Currently we force the creation of a 64-bit Seq66 and a 64-bit Seq66 -installer. The following material is for reference only. Read the -release batch file. +NOTE: Currently we force the creation of a 64-bit Seq66, but still create +a 32-bit Seq66 installer. The following material is for reference only at +this time. Read the release batch file for the most accurate information. + + ======================================================== The "x64" plug-in provides a macro, "RunningX64", which returns true if the installer is running on 64-bit Windows under WoW64 emulation. It can be diff --git a/nsis/build_release_package.bat b/nsis/build_release_package.bat index bcc46fb3a..7af2e3c9c 100644 --- a/nsis/build_release_package.bat +++ b/nsis/build_release_package.bat @@ -7,7 +7,7 @@ :: \library Seq66 for Windows :: \author Chris Ahlstrom :: \date 2018-05-26 -:: \update 2023-06-11 +:: \update 2023-07-01 :: \license $XPC_SUITE_GPL_LICENSE$ :: :: This script sets up and creates a release build of Seq66 for @@ -172,7 +172,7 @@ ::--------------------------------------------------------------------------- set PROJECT_VERSION=0.99.6 -set PROJECT_DATE=2023-06-11 +set PROJECT_DATE=2023-07-01 set PROJECT_DRIVE=C: :: Set the bits of the project, either 64 or 32. Also define WIN64 versus diff --git a/nsis/winddeploybruteforce.bat b/nsis/winddeploybruteforce.bat index 2ca30d153..7d8490abb 100644 --- a/nsis/winddeploybruteforce.bat +++ b/nsis/winddeploybruteforce.bat @@ -7,11 +7,12 @@ :: \library Seq66 for Windows :: \author Chris Ahlstrom :: \date 2023-06-06 -:: \update 2023-06-12 +:: \update 2023-07-01 :: \license $XPC_SUITE_GPL_LICENSE$ :: -:: This script sets up and creates a release build of Seq66 for -:: .... +:: This script was meant to try to get a 32-bit Windows build properly +:: deployed. Did not work. +:: :: The only parameter for this batch file is the source location of the Qt :: files. The base location is something like: ::