/seq66

A lean and mean version of Sequencer64 to use modern C++ and Qt 5. Now at version 0.91.0 2020-11-21; much improved over the Qt version of Seq64. Now includes support for the Non Session Manager

Primary LanguageC++

README for Seq66 0.91.0 (Sequencer64 refactored for C++/14 and Qt 5)
Chris Ahlstrom
2015-09-10 to 2020-11-21

"Seq66" is a refactoring of the Qt version of "Sequencer64" with modern C++
and with a lot of krufty buildup removed.
"Seq66" is now the best-supported version of "Sequencer64".
Linux users can build this application easily from the source code.  See
the INSTALL file.  Windows users can get an installer package on GitHub at:

   https://github.com/ahlstromcj/sequencer64-packages/blob/master/seq66/0.90/seq66_setup_0.90.6.exe (version 0.91.0 coming soon).

Major changes:

    -   User interface:
        -   Using Qt 5 for the user-interface (good cross-platform support).
            Removed the "grid of sets" in favor of unlimited external live
            grid windows.
        -   Added tabs for management of sets, mute-groups, song mode, pattern
            editing, event-editing, play-lists, and session management.
        -   Added a live frame using buttons to match Qt theming. (The original
            implementation is available as a "user" option.)
        -   A color for each sequence can be chosen to make them stand out.
            The color is saved in a SeqSpec associated with the track.
    -   Configuration files:
        -   Separated MIDI control and mute-group setting into their own files,
            with support for hex notation.
        -   Supported configuration files: ".rc", ".usr", ".ctrl", ".mutes",
            ".playlist", and ".drums" (note-mapping).
        -   Unified keystroke control and MIDI control into a ".ctrl" file. It
            defines MIDI In controls for controlling Seq66, and MIDI Out controls
            for displaying Seq66 status in grid controllers (e.g.  LaunchPad).
            Basic 4x8 and 8x8 ".ctrl" files for the Launchpad Mini provided.
    -   Non Session Manager.  Working on support for this manager, essentially
        complete. Handles stopping and saving, display of details about the
        session.
    -   Internal:
        -   More consistent use of modern C++, including lambda functions.
        -   Additional performer callbacks to reduce the need for polling in the
            user-interface.

Seq66 has builds for ALSA/JACK, PortMidi, Windows, and a command-line/daemon.
Here are the executables that can be built:

Linux ALSA/JACK support: Seq66qt5/qseq66
Linux daemon: Seq66cli/seq66cli
Linux qmake/rtmidi: shadow/Seq66qt5/release/qrseq66
Windows qmake/portmidi: shadow/Seq66qt5/release/qpseq66.exe

Seq66 uses a Qt 5 user-interface based on Kepler34 and the Seq66 "rtmidi"
(Linux) and "portmidi" (Windows) engines.  MIDI devices are detected,
inaccessible devices are ignored, and playback (e.g. to the Windows wavetable
synthesizer) work. It is built easily via Qt Creator or qmake, using MingW.
The Qt 5 GUI is the only official GUI of Seq66.

See the INSTALL file for build-from-source instructions for Linux or Windows,
and using a conventional source tarball.

Recent changes:

    -   Version 0.91.0:
        -   Non Session Manager support essentially complete.  The
            refactoring to do this was massive.
        -   All too many bug fixes and minor improvements.
        -   Added --copy-dt-needed-entries to qseq66 Makefile.am to fix
            linkage errors that cropped up in debug builds.
        -   Got the CLI version building, needs a lot of testing.
        -   Playlist editing from the user-interface much improved.
    -   Version 0.90.6:
        -   Fixed issue #19 where recording notes caused a segfault.
    -   Version 0.90.5:
        -   More refactoring to improve Windows builds and fix deadlocks and
            playback on a default Windows 10 install.
        -   Added code to implement Song/Live and JACK Transport key toggles.
        -   MIDI control improved for control and for status display by
            devices like the Launchpad Mini, using new "ctrl" files.
        -   Fixes:
            -   Fixed a bug using millitime() instead of microtime().
            -   Issue #13, data and event/trigger panes not reflecting event
                changes.  Change handling improved in general with more
                performer callbacks.
            -   The data pane was some pixels off in the tabbed edit-frame.
            -   Fix a lot of issue with using sets and an 8x8 Seq66 grid.
        -   Improved error-handling and reporting.

# vim: sw=4 ts=4 wm=4 et ft=sh