Skip to content

Commit

Permalink
Work on issue #110 in progress.
Browse files Browse the repository at this point in the history
  • Loading branch information
ahlstromcj committed May 8, 2023
1 parent 240dcdc commit a088dda
Show file tree
Hide file tree
Showing 14 changed files with 161 additions and 93 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# README for Seq66 0.99.4 2023-05-07
# README for Seq66 0.99.4 2023-05-08

__Seq66__: MIDI sequencer and live-looper with a hardware-sampler grid
interface, pattern sets/banks, pattern triggers, and playlists for song
Expand Down Expand Up @@ -95,6 +95,8 @@ Windows, and using a conventional source tarball.
* Eliminated "missing ctrl" message at first startup.
* Fixed port ID setting in midibus, and adding output flag in
midi_alsa_info.
* Windows: Added scripting to build NSIS-based install without
leaving Windows.
* Version 0.99.4:
* Issue #3: The scroll wheel is enabled in the piano rolls (only).
* Issue #48: For a new NSM session configuration, disable "JACK"
Expand Down
9 changes: 9 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ Some of these issues will be pushed off for the distant Seq66v2.

Hot:

- Port-map issues:
- When mapping active, need to keep the midi-input and midi-output
statuses in sync with the mapped statuses. These seems to be ok,
but....
- Do not provide the ALSA Announce buss in the input port map.
- Make sure GUI changes in mapping take hold and are restored
under rerunning and restarting.
- Verify proper behavior with mapping in active.
- Replace I and O map checkboxes with just one checkbox.
- Finish the major upgrade to the event editor; plan for a
"SeqSpec" tab? Worth it?

Expand Down
61 changes: 30 additions & 31 deletions data/linux/qseq66.rc
Original file line number Diff line number Diff line change
Expand Up @@ -133,28 +133,27 @@ input-port-count = 4

[midi-input]

4 # number of input MIDI busses

0 1 "[0] 0:0 seq66:system midi_capture_1" # Midi-Through
1 1 "[1] 0:1 seq66:system midi_capture_2" # Launchpad-Mini
2 0 "[2] 0:2 system:midi_capture_3" # USB-Midi
3 0 "[3] 0:3 system:midi_capture_4" # nanoKEY2
4 # number of input MIDI busses

0 1 "[0] 0:0 seq66:system midi_capture_1" # Midi-Through
1 1 "[1] 0:1 seq66:system midi_capture_2" # Launchpad-Mini
2 0 "[2] 0:2 system:midi_capture_3" # USB-Midi
3 0 "[3] 0:3 system:midi_capture_4" # nanoKEY2

# This table is similar to the [midi-clock-map] section.
# Port-mapping is disabled in manual/virtual port mode.

[midi-input-map]

1 # map is active
1 # map is active

0 "announce"
1 "Midi Through Port-0"
2 "nanoKEY2 MIDI 1"
3 "USB Midi MIDI 1"
4 "Q25 MIDI 1"
5 "E-MU XMidi1X1 Tab MIDI 1"
6 "Launchpad Mini MIDI 1"
0 1 "announce"
1 1 "Midi Through Port-0"
2 1 "nanoKEY2 MIDI 1"
3 1 "USB Midi MIDI 1"
4 1 "Q25 MIDI 1"
5 1 "E-MU XMidi1X1 Tab MIDI 1"
6 1 "Launchpad Mini MIDI 1"

# These system ports are available for output, for playback/control.
# From JACK's view, these are 'capture' devices. The first line shows
Expand All @@ -173,15 +172,15 @@ input-port-count = 4

[midi-clock]

7 # number of MIDI clocks (output busses)
7 # number of MIDI clocks (output busses)

0 0 "[0] 14:0 Midi Through Port-0"
1 0 "[1] 28:0 nanoKEY2 MIDI 1"
2 0 "[2] 36:0 USB Midi MIDI 1"
3 0 "[3] 40:0 Q25 MIDI 1"
4 0 "[4] 44:0 E-MU XMidi1X1 Tab MIDI 1"
5 0 "[5] 48:0 Launchpad Mini MIDI 1"
6 0 "[6] 128:0 FLUID Synth (1070760):Synth input port (1070760:0)"
0 0 "[0] 14:0 Midi Through Port-0"
1 0 "[1] 28:0 nanoKEY2 MIDI 1"
2 0 "[2] 36:0 USB Midi MIDI 1"
3 0 "[3] 40:0 Q25 MIDI 1"
4 0 "[4] 44:0 E-MU XMidi1X1 Tab MIDI 1"
5 0 "[5] 48:0 Launchpad Mini MIDI 1"
6 0 "[6] 128:0 FLUID Synth (1070760):Synth input port (1070760:0)"

# This table, if present, allows the pattern to set buss numbers
# as usual, but the use the table to look up the true buss number
Expand All @@ -193,16 +192,16 @@ input-port-count = 4

[midi-clock-map]

1 # map is active
1 # map is active

0 "Midi Through Port-0"
1 "nanoKEY2 MIDI 1"
2 "USB Midi MIDI 1"
3 "Q25 MIDI 1"
4 "E-MU XMidi1X1 Tab MIDI 1"
5 "Launchpad Mini MIDI 1"
6 "FLUID Synth"
7 "qsynth midi_00"
0 1 "Midi Through Port-0"
1 1 "nanoKEY2 MIDI 1"
2 1 "USB Midi MIDI 1"
3 1 "Q25 MIDI 1"
4 1 "E-MU XMidi1X1 Tab MIDI 1"
5 1 "Launchpad Mini MIDI 1"
6 1 "FLUID Synth"
7 1 "qsynth midi_00"

# 'ticks' provides the Song Position (in 16th notes) at which
# clocking begins if the buss is set to MIDI Clock Mod setting.
Expand Down
4 changes: 3 additions & 1 deletion libseq66/include/os/daemonize.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
* \file daemonize.hpp
* \author Chris Ahlstrom
* \date 2005-07-03 to 2007-08-21 (from xpc-suite project)
* \updates 2023-03-29
* \updates 2023-05-08
* \license GNU GPLv2 or above
*
* Daemonization of POSIX C Wrapper (PSXC) library
Expand All @@ -42,8 +42,10 @@
*/

#if defined SEQ66_PLATFORM_32_BIT
#if defined NO_OLDNAMES
using mode_t = unsigned int;
#endif
#endif

/*
* The "flags" parameters described in Michael Kerrisk's book, "The Linux
Expand Down
15 changes: 11 additions & 4 deletions libseq66/src/os/daemonize.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* \library seq66 application (from PSXC library)
* \author Chris Ahlstrom
* \date 2005-07-03 to 2007-08-21 (pre-Sequencer24/64)
* \updates 2023-03-29
* \updates 2023-05-08
* \license GNU GPLv2 or above
*
* Daemonization module of the POSIX C Wrapper (PSXC) library
Expand Down Expand Up @@ -112,8 +112,9 @@
#include <windows.h> /* WaitForSingleObject(), INFINITE */
#include <fcntl.h> /* _O_RDWR */
#include <io.h> /* _open(), _close() */
#include <synchapi.h> /* recent Windows "wait" functions */
#include <process.h> /* Windows _getpid() function */
#include <synchapi.h> /* recent Windows "wait" functions */
#include <sys/stat.h> /* Windows S_IWUSR, S_IWGRP, etc. */

#define STD_CLOSE _close
#define STD_OPEN _open
Expand Down Expand Up @@ -785,8 +786,14 @@ get_process_name (pid_t /*pid*/)
std::string
get_parent_process_name ()
{
long parentpid = long(_getppid());
return "TODO";
/*
* Not available on Windoze. And used only for the Non/New Session Manager,
* which is not supported on Windoze.
*
* long parentpid = long(_getppid());
*/

return std::string("None");
}

#endif // defined SEQ66_PLATFORM_LINUX
Expand Down
11 changes: 10 additions & 1 deletion libseq66/src/sessions/smanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* \library seq66 application
* \author Chris Ahlstrom
* \date 2020-03-22
* \updates 2023-05-06
* \updates 2023-05-08
* \license GNU GPLv2 or above
*
* Note that this module is part of the libseq66 library, not the libsessions
Expand Down Expand Up @@ -118,6 +118,13 @@ smanager::~smanager ()
* the 'usr' and 'rc' configuration files, in that order. The last thing
* is to override any other settings via the command-line parameters.
*
* NSM:
*
* This function can detect the parent process ("nsmd") under Linux.
* Under Windows, we don't really support NSM, and so the
* seq66::get_parent_process_name() function in the daemonize.cpp module
* returns a name of "None".
*
* \param argc
* The number of command-line parameters, including the name of the
* application as parameter 0.
Expand Down Expand Up @@ -179,12 +186,14 @@ smanager::main_settings (int argc, char * argv [])
result = rcode != (-1);
if (result)
{
#if ! defined SEQ66_PLATFORM_WINDOWS
if (usr().want_nsm_session())
{
in_nsm = true;
session_manager_name("Simulated NSM");
session_manager_path(rc().home_config_directory());
}
#endif
}
else
is_help(true); /* a hack to avoid create_window() */
Expand Down
5 changes: 4 additions & 1 deletion nsis/README
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
NSIS Notes
Chris Ahlstrom
2021-12-11 to 2021-12-11
2021-12-11 to 2023-05-08

This directory contains files that allow Linux and Windows users to create
an NSIS installer for Seq66.

Currently, the Windows version of Seq66 is a 32-application, and the Linux
"makensis" program creates a 32-bit installer.

We are in the process of working out using a Windows version of the NSIS
installer creator, which should be ready for version 0.99.5.

Here are some notes for creating an installer for a 64-bit version of Seq66.
The process involves modifications to the build-release DOS batch file and
the NSIS files in this directory.
Expand Down
6 changes: 3 additions & 3 deletions nsis/Seq66Constants.nsh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
; File: Seq66Constants.nsh
; Author: Chris Ahlstrom
; Date: 2018-05-26
; Updated: 2022-09-04
; Version: 0.99.1
; Updated: 2023-05-08
; Version: 0.99.5
;
; Provides constants commonly used by the installer for Seq66 for
; Windows.
Expand All @@ -29,7 +29,7 @@

!define VER_MAIN_PURPOSE "Seq66 for Windows"
!define VER_NUMBER "0.99"
!define VER_REVISION "1"
!define VER_REVISION "5"
!define VER_VARIANT "Windows"
!define PRODUCT_VERSION "${VER_NUMBER} ${VER_VARIANT} (rev ${VER_REVISION})"
!define PRODUCT_PUBLISHER "C. Ahlstrom (ahlstromcj@gmail.com)"
Expand Down
8 changes: 4 additions & 4 deletions nsis/Seq66Setup.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
; File: Seq66Setup.nsi
; Author: Chris Ahlstrom
; Date: 2018-05-26
; Updated: 2022-09-04
; Version: 0.99.1
; Updated: 2023-05-08
; Version: 0.99.5
;
; Usage of this Windows build script:
;
Expand Down Expand Up @@ -208,8 +208,8 @@ Section "Documentation" SEC_DOC

SetOutPath "$INSTDIR\doc"
SetOverwrite on
File /r "..\release\doc\*.pdf"
File /r "..\release\doc\*.ods"
File /r "..\release\data\share\doc\*.pdf"
File /r "..\release\data\share\doc\*.ods"

SectionEnd

Expand Down
4 changes: 2 additions & 2 deletions nsis/build_debug_code.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
:: \library Seq66 for Windows
:: \author Chris Ahlstrom
:: \date 2021-12-09
:: \update 2022-05-24
:: \update 2023-05-08
:: \license $XPC_SUITE_GPL_LICENSE$
::
:: This script sets up and creates a debug build of Seq66 for
Expand Down Expand Up @@ -62,7 +62,7 @@
::
::---------------------------------------------------------------------------

set PROJECT_VERSION=0.99.1
set PROJECT_VERSION=0.99.5
set PROJECT_DRIVE=C:
set PROJECT_BITS=32
set PROJECT_BASE=\Users\Chris\Documents\Home
Expand Down
Loading

0 comments on commit a088dda

Please sign in to comment.