Skip to content

Commit

Permalink
Time to put version 0.99.3 to bed.
Browse files Browse the repository at this point in the history
  • Loading branch information
ahlstromcj committed Apr 19, 2023
1 parent 6a0f79b commit 8cab6c4
Show file tree
Hide file tree
Showing 16 changed files with 141 additions and 112 deletions.
11 changes: 4 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# README for Seq66 0.99.3 2023-04-16
# README for Seq66 0.99.3 2023-04-19

__Seq66__: MIDI sequencer and live-looper with a hardware-sampler-like
grid-pattern interface, sets, triggers, and playlists for song management,
Expand All @@ -11,13 +11,10 @@ It does not support audio samples, just MIDI.
__Seq66__ is a major refactoring of Sequencer64/Kepler34/Seq24
with modern C++ and new features. Linux and Windows users can build this
application from source code. See the extensive INSTALL file. Windows users
can get an installer package on GitHub. It has a comprehensive PDF user-manual.
can get an installer package on GitHub. A comprehensive PDF user-manual.

For version 0.99.0, a raft of updates and fixes are made as we work through
some of the items in the TODO file. This version series will add no new major
features, but will follow up on the remaining issues and any new issues that
come up. Some features will be pushed off to Seq66v2; see the bottom of the TODO
file.
Some proposed features will be pushed off to Seq66v2; see the bottom of
the TODO file.

Support sites (still in progress):

Expand Down
11 changes: 7 additions & 4 deletions RELNOTES.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
# Seq66 Release Notes 0.99.3 2023-04-08
# Seq66 Release Notes 0.99.3 2023-04-19

This file lists __major__ changes from version 9.99.1 to 0.99.3 (to catch up).

## Changes

* Version 0.99.3:
* Issue #107. Expand-pattern functionality.
* Issue #40. Enhanced NSM handling.
* Automation fixes.
* Added reading/writing/displaying Meta "text" events.
* Issue #40. Enhanced NSM handling and debugging.
* A raft of MIDI automation/display fixes.
* Added reading/writing/displaying Meta textual events.
* Improvements to playlist handling.
* Fixes to mute-group handling.
* Fixed the daemonization and log-file functionality.
* Fixed broken "recent-files" feature.
* Improved error reporting.
* Version 0.99.2:
* Issue #103. Some improvements to pattern loop-count.
* Pull request #106. User phuel added checkmarks for active buss and
Expand Down
17 changes: 1 addition & 16 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
TO DO for Seq66 0.99.3 (Sequencer64 refactored for C++14 and Qt)
Chris Ahlstrom
2019-04-13 to 2023-04-18
2019-04-13 to 2023-04-19

Some of these issues will be pushed off for the distant Seq66v2.

Immediate issues to attack:

- MIDI control/display:
- Automatically enable the control-buss in the 'rc' file. Done,
but requires a restart.
Issue #48
Port-map testing.

Ongoing efforts:

- Verify no bugs remaining in:
- Pattern fix dialog.
- File / Save handling with various modifications.
- Verify setmapper/setmaster for odd set sizes.
- Perfect the "background recording" feature.

Expand Down Expand Up @@ -157,10 +146,6 @@ ISSUES:
#37 Song editor scrolling?
STATUS: To be investigated.

#40 NSM: seq66 in a new session should provide a blank project
Currently it imports the previously used MIDI file.
STATUS: Many fixes made.

#44 "Record live sequence changes" functionality
Currently the "record live sequence changes" only adds patterns into the
song timeline as whole loops, starting at the last pattern loop and ending
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
2023-04-09
2023-04-19
0.99.3
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ dnl \file configure.ac
dnl \library Seq66
dnl \author Chris Ahlstrom
dnl \date 2018-11-09
dnl \update 2023-04-09
dnl \update 2023-04-19
dnl \version $Revision$
dnl \license $XPC_SUITE_GPL_LICENSE$
dnl
Expand Down Expand Up @@ -480,7 +480,7 @@ dnl automatically for us.

AH_TOP(

#define VERSION_DATE_SHORT "2023-04-09"
#define VERSION_DATE_SHORT "2023-04-19"
#define API_VERSION "0.99"
#define VERSION "0.99.3"

Expand Down
7 changes: 7 additions & 0 deletions contrib/scripts/gdarkseq66
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/sh
#
# Use dark coloring on qseq66, as configured in qt5ct.

QT_QPA_PLATFORMTHEME=gtk2 qseq66

# vim: ts=3 sw=3 et ft=sh
6 changes: 5 additions & 1 deletion contrib/scripts/qtctrun
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
#!/bin/sh
#
# Run an application using Qt coloring as configured in qt5ct.
# Run an application using Qt coloring as configured in qt5ct. As an example,
# on a system that uses Terminus as the window-manager font, one can
# instead configure qt5ct to use a different theme engine than gtk2, and
# thus use a nicer looking font in Seq66.

QT_QPA_PLATFORMTHEME=qt5ct "$1" &

# vim: ts=3 sw=3 et ft=sh
62 changes: 34 additions & 28 deletions doc/latex/tex/port_mapping.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
% \library Documents
% \author Chris Ahlstrom
% \date 2020-12-29
% \update 2023-03-03
% \update 2023-04-19
% \version $Revision$
% \license $XPC_GPL_LICENSE$
%
Expand All @@ -19,30 +19,33 @@ \section{Port Mapping}
\label{sec:port_mapping}

\textsl{Seq66}, like \textsl{Seq24}, bases its I/O port scheme on buss/port
numbers.
\textsl{numbers}.
This numbering scheme applies whether
\textsl{ALSA}, \textsl{JACK}, or \textsl{Windows Multimedia}
are used as the MIDI engine, and whether \textsl{Seq66} is running with
"automatic" ports or "manual" (virtual software-created) ports.
"automatic" ports or "manual" (virtual, software-created) ports.
These buss numbers range from 0 on upward
based on the I/O MIDI ports active in the system.
based on the number of I/O MIDI ports active in the system.
In "automatic" (non-virtual, non-manual) mode
these ports represent the hardware ports and application ports.
In "manual" mode, these ports represent virtual ports that the user
these ports represent the hardware MIDI ports and application MIDI ports.
In "manual" mode, these ports represent virtual MIDI ports that the user
can connect manually (on Linux).

A pattern/loop/sequence is assigned to output to a given port via
a buss number saved with the pattern. When a tune is loaded,
a buss number saved \textsl{in the pattern}, in the tune.
When a tune is loaded,
each pattern outputs to the port number specified in the pattern.
A problem is that MIDI device setups can change, with devices being
reordered, removed, or added to the MIDI devices available on the system.
Or if the song is opened on someone else's computer.
We do not want to store port names in the MIDI file.
They are too long and change between the systems of each user.
They can be too long, but, more importantly,
they will differ between the systems of each user.
They can even differ when switching from ALSA to JACK.
Better to let the user determine the port-mapping.
Mapping allows the buss number stored with a pattern to be
remapped to another buss number based on the "nick-name" (or alias)
of the port.
remapped to another buss number based on the "nick-name"
(or JACK alias) of the port.
It uses a simple lookup to map names to numbers.

The "nick-name" is a shortened version of the MIDI device name assigned
Expand All @@ -55,14 +58,15 @@ \section{Port Mapping}
returned. The user can edit the 'rc' file to shorten the nick-name, if
desired; a nick-name \texttt{E-MU XMidi1X1} would work.

In addition, under recent version \textsl{JACK},
there is a facility to get the "alias" of
USB MIDI ports. This allows the user to see that the port name
In addition, under recent versions of \textsl{JACK},
there is a facility to get the "alias" of USB MIDI ports,
even if the \textsl{a2jmidid} process is not running.
This allows the user to see that the port name
\texttt{system:midi\_capture\_5} is actually a "nanoKEY2" device.

So, with port-mapping enabled, one can set up the tune to record and play MIDI
using the mapped ports, and later move to another computer, modify the
port-maps to match, and record and play without issue.
So, with port-mapping enabled, one can set up the tune to record and play
MIDI using the mapped ports, and later move to another computer, modify the
port-maps int the 'rc' file to match, and record and play without issue.

The easiest way to start port-mapping is to go to
\textbf{Edit / Preferences / MIDI Clock}.
Expand All @@ -77,11 +81,12 @@ \section{Port Mapping}
\label{fig:clocks_list_before_port_mapping}
\end{figure}

Click on the \textbf{Save Maps} button.
Click on the \textbf{Make Maps} button.
This creates the initial I/O maps internally.
Then either restart \textsl{Seq66} or go to the \textbf{Restart Seq66}
button.
button; this will save the new version of the 'rc' file..
Back in \textbf{Edit / Preferences / MIDI Clock},
one sees that the simpler names are in use.
one sees that the remapped names are in use.

\begin{figure}[H]
\centering
Expand All @@ -92,13 +97,15 @@ \section{Port Mapping}

At startup, \textsl{Seq66} matches the port-map to the ports that exist on
the system. If there is no matching system port for a mapped port, then
that mapped port will show up as disabled in the port lists.
To remove the port mappings, click the \textbf{Remove Maps} button.
To reconstruct the current setup, click on the \textbf{Save Maps} button to
that mapped port will show up as disabled in the port lists,
and a warning should appear.
To remove the port mappings, click the \textbf{Clear Maps} button.
To reconstruct the current setup, click on the \textbf{Make Maps} button to
get the new mapping.
As with the normal port listings, the port-mappings are managed in the
\textsl{Seq66} 'rc' file.
One can also edit that file to rearrange the mapped ports.
As with the normal port listings, the port-mappings are saved and
managed in the \textsl{Seq66} 'rc' file.
One can also edit that file in a text editor to
rearrange the mapped ports.

\subsection{Output Port Mapping}
\label{subsec:output_port_mapping}
Expand All @@ -120,7 +127,7 @@ \subsection{Output Port Mapping}
If some items are unplugged, then this list will change, so we save it while
still running \textsl{Seq66}:
click the
\textbf{Save Maps} button in the
\textbf{Make Maps} button in the
\textbf{Edit / Preferences/ MIDI Clock} dialog.
The result is are new sections in the 'rc' file (one for clocks, one for
inputs). Here is the clock map:
Expand All @@ -137,8 +144,7 @@ \subsection{Output Port Mapping}

It is simpler, showing the nick-names (or aliases) of the ports.
These index numbers can be used as buss numbers: they can be stored
in a pattern, and used to direct output to a
device by name.
in a pattern, and used to direct output to a specific device.

If a pattern has stored a missing item as its output
buss number, this number will not be found in the system list, so that the
Expand Down
2 changes: 1 addition & 1 deletion include/config.h.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* include/config.h.in. Generated from configure.ac by autoheader. */

#define VERSION_DATE_SHORT "2023-04-09"
#define VERSION_DATE_SHORT "2023-04-19"
#define API_VERSION "0.99"
#define VERSION "0.99.3"

Expand Down
4 changes: 2 additions & 2 deletions include/qt/portmidi/seq66-config.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2018-11-10
* \updates 2023-04-09
* \updates 2023-04-19
* \license GNU GPLv2 or above
*
* Qt Portmidi Linux and Windows versions, hardwired for use with
Expand Down Expand Up @@ -62,7 +62,7 @@
#endif

#if ! defined SEQ66_VERSION_DATE_SHORT
#define SEQ66_VERSION_DATE_SHORT "2023-04-09"
#define SEQ66_VERSION_DATE_SHORT "2023-04-19"
#endif

#if ! defined SEQ66_API_VERSION
Expand Down
4 changes: 2 additions & 2 deletions include/qt/rtmidi/seq66-config.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2020-05-31
* \updates 2023-04-09
* \updates 2023-04-19
* \license GNU GPLv2 or above
*
* Qt Rtmidi Linux and Windows versions, hardwired for use with
Expand Down Expand Up @@ -70,7 +70,7 @@
#endif

#if ! defined SEQ66_VERSION_DATE_SHORT
#define SEQ66_VERSION_DATE_SHORT "2023-04-09"
#define SEQ66_VERSION_DATE_SHORT "2023-04-19"
#endif

#if ! defined SEQ66_API_VERSION
Expand Down
16 changes: 5 additions & 11 deletions libseq66/include/play/performer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2018-11-12
* \updates 2023-04-17
* \updates 2023-04-19
* \license GNU GPLv2 or above
*
* The main player! Coordinates sets, patterns, mutes, playlists, you name
Expand Down Expand Up @@ -389,7 +389,7 @@ class performer
* "rc" file correctly.
*/

bool m_error_pending;
mutable bool m_error_pending;

/**
* When the screenset changes, we put only the existing sequences in this
Expand Down Expand Up @@ -2608,10 +2608,7 @@ class performer
activate_output_port_map(active);
}

bussbyte true_output_bus (bussbyte nominalbuss) const
{
return seq66::true_output_bus(m_clocks, nominalbuss);
}
bussbyte true_output_bus (bussbyte nominalbuss) const;

void store_input_map ()
{
Expand All @@ -2628,10 +2625,7 @@ class performer
activate_input_port_map(active);
}

bussbyte true_input_bus (bussbyte nominalbuss) const
{
return seq66::true_input_bus(m_inputs, nominalbuss);
}
bussbyte true_input_bus (bussbyte nominalbuss) const;

/**
* Sets a single clock item, if in the currently existing range.
Expand Down Expand Up @@ -3218,7 +3212,7 @@ class performer
void show_cpu ();
void playlist_activate (bool on);
void playlist_auto_arm (bool on);
void set_error_message (const std::string & msg);
void set_error_message (const std::string & msg = "") const; /* mutable */
bool set_recording (seq::number seqno, bool active, bool toggle);
bool set_quantized_recording (seq::number seqno, bool active, bool toggle);
bool set_tightened_recording (seq::number seqno, bool active, bool toggle);
Expand Down
Loading

0 comments on commit 8cab6c4

Please sign in to comment.