# Seq66 0.99.6 main ('rc') configuration file
#
# /home/user/.config/seq66/qseq66.rc
# Written 2026-04-17 12:00:00
#
# This file holds the main configuration for Seq66. It no longer follows the
# format of the seq24rc configuration file.
#
# 'version' is set by Seq66; it is used to detect older configuration files,
# which are upgraded to the new version when saved.
#
# 'quiet' suppresses start-up error messages. Useful when they are not
# relevant. There's no --quiet command-line option yet. It's NOT the opposite
# of 'verbose'.
#
# 'verbose' is temporary, same as --verbose; it's set to false at exit.
#
# 'sets-mode' affects set muting when moving to the next set. 'normal' leaves
# the next set muted. 'auto-arm' unmutes it. 'additive' keeps the previous set
# armed when moving to the next set. 'all-sets' arms all sets at once.
#
# 'port-naming': 'short', 'pair', or 'long'. If 'short', the device name is
# shown. If it  is generic, the client name is added for clarity. If 'pair',
# the client:port number is prepended. If 'long', the full set of name items
# is shown. If port-mapping is active (now the default), this does not apply.
#
# 'init-disabled-ports' does not yet work. It tries live toggle of port state.
#
# 'priority' greater than 0 is meant to increase the priority of the I/O
# threads. It needs Seq66 to run as root, or be installed as setuid 0.

[Seq66]

config-type = "rc"
version = 4
quiet = false
verbose = false
sets-mode = normal
port-naming = short
init-disabled-ports = false
priority = 10

# [comments] holds user documentation for this file. The first empty, hash-
# commented, or tag line ends the comment.

[comments]

Add your comment block here. This is a sample file and not necessarily
realistic for your system.  Also, we add about 8 bogus ports to test the
MIDI Clocks and MIDI Inputs tabs.

# Provides a flag and file-name for MIDI-control I/O settings. '""' means
# no 'ctrl' file. If none, default keystrokes are used, with no MIDI control.
# Note that all configuration files are stored in the "home" configuration
# directory; any paths in the file-names are stripped.

[midi-control-file]

active = true
name = "qseq66-lp-mini-alt.ctrl"

# Provides a flag and file-name for mute-groups settings. '""' means no
# 'mutes' file. If none, there are no mute groups, unless the MIDI file
# contains some.

[mute-group-file]

active = false
name = "qseq66.mutes"

# Provides a flag and file-name for 'user' settings. '""' means no 'usr'
# file. If none, there are no special user settings. Using no 'usr' file
# should be considered experimental.

[usr-file]

active = true
name = "qseq66.usr"

# Provides a flag and play-list file. If no list, use '""' and set active
# = false. Use the extension '.playlist'. Even if not active, the play-list
# file is read. 'base-directory' sets the directory holding all MIDI files
# in all play-lists, useful when copying play-lists/tunes from one place to
# another; it preserves sub-directories (e.g. in creating an NSM session).

[playlist]

active = false
name = "qseq66.playlist"
base-directory = ""

# Provides a flag and file-name for note-maps. '""' means no 'drums' file.
# This file is used when the user invokes the note-conversion operation in
# the pattern editor of a transposable pattern. Make the pattern temporarily
# transposable to allow this operation.

[note-mapper]

active = false
name = "qseq66.drums"

# Provides a flag and file-name to provide a list of patches for legacy
# non-GM-compliant devices.

[patches-file]

active = false
name = "PSS-790.patches"

# Provides a flag and a file-name to allow modifying the palette using the file
# specified. Use '""' to indicate no 'palette' file. If none or not active,
# the internal palette is used.

[palette-file]

active = false
name = "monogreen.palette"

# If specified, a style-sheet (e.g. 'qseq66.qss') is applied at startup.
# This file must be located in Seq66's "home" directory. Copy if needed.
# Note that style-sheet specification has been removed from the 'usr' file.

[style-sheet-file]

active = false
name = "monogreen.qss"

# Defines features of MIDI meta-event handling. Tempo events are in the first
# track (pattern 0), but one can use them elsewhere. It changes where tempo
# events are recorded. The default is 0, the maximum is 1023. A pattern must
# exist at this number.

[midi-meta-events]

tempo-track = 0

# Set to true to create virtual ALSA/JACK I/O ports and not auto-connect to
# other clients. Allows up to 48 output or input ports (defaults to 8 and 4).
# If true, it disables port-mapping. Keep it false to auto-connect Seq66 to
# real ALSA/JACK MIDI ports and preserve port-mapping. Set 'auto-enable' to
# enable all virtual ports automatically.

[manual-ports]

virtual-ports = false
auto-enable = false
output-port-count = 8
input-port-count = 4

# These MIDI ports are for input and control. JACK's view: these are
# 'playback' devices. The first number is the bus, the second number is the
# input status, disabled (0) or enabled (1). The item in quotes is the full
# input bus name. The type of port depends on the 'virtual-ports' setting.

[midi-input]

 8      # number of MIDI input (or control) buses

 0  1   "[0] 0:1 system:ALSA Announce"
 1  0   "[1] 14:0 Midi Through Port-0"
 2  0   "[2] 36:0 Launchpad Mini MIDI 1"
 3  1   "[3] 40:0 nanoKEY2 nanoKEY2 _ CTRL"
 4  0   "[4] 44:0 CH345 MIDI 1"
 5  0   "[5] 48:0 E-MU XMidi1X1 Tab Out"
 6  0   "[6] 52:0 USB Midi MIDI 1"
 7  0   "[7] 56:0 Q25 MIDI 1"

# This table is similar to the [midi-clock-map] section, but the values are
# different. -2 = unavailable; 0 = not inputing; 1 = enabled for inputing.

[midi-input-map]

 1      # map is active

 0  1   "ALSA Announce"
 1  0   "Midi Through Port-0"
 2  0   "Launchpad Mini MIDI 1"
 3  1   "nanoKEY2 nanoKEY2 _ CTRL"
 4  0   "CH345 MIDI 1"
 5  0   "E-MU XMidi1X1 Tab Out"
 6  0   "USB Midi MIDI 1"
 7  0   "Q25 MIDI 1"
 8 -2   "Excess 0"
 9 -2   "Excess 1"
10 -2   "Excess 2"
11 -2   "Excess 3"
12 -2   "Excess 4"
13 -2   "Excess 5"
14 -2   "Excess 7"
15 -2   "Excess 7"

# These MIDI ports are for output, playback, and display. JACK's view: these
# are 'capture' devices. The first line shows the count of output ports.
# Each line shows the bus number and clock status of that bus:
#
#  -2 = The output port is not present on the system (unavailable).
#  -1 = The output port is disabled.
#   0 = MIDI Clock is off. The output port is enabled.
#   1 = MIDI Clock on; Song Position and MIDI Continue are sent.
#   2 = MIDI Clock Modulo.
#
# With Clock Modulo, clocking doesn't begin until song position reaches the
# start-modulo value [midi-clock-mod-ticks]. Ports that are unavailable
# (because another portapplication, e.g. Windows MIDI Mapper, has exclusive
# access to the device) are displayed ghosted.

[midi-clock]

 9      # number of MIDI clocks (output/display buses)

 0  0   "[0] 14:0 Midi Through Port-0"
 1  0   "[1] 36:0 Launchpad Mini MIDI 1"
 2  0   "[2] 40:0 nanoKEY2 nanoKEY2 _ CTRL"
 3  0   "[3] 44:0 CH345 MIDI 1"
 4  0   "[4] 48:0 E-MU XMidi1X1 Tab Out"
 5  0   "[5] 52:0 USB Midi MIDI 1"
 6  0   "[6] 56:0 Q25 MIDI 1"
 7  0   "[7] 128:0 FLUID Synth (21079):Synth input port (21079:0)"
 8  0   "[8] 129:0 yoshimi:input"

# Patterns use bus numbers, not names. This table provides virtual bus numbers
# that match real devices and can be stored in each pattern. The bus number
# is looked up in this table, the port nick-name is retrieved, and the true
# bus number is obtained and used. Thus, if the ports change order in the MIDI
# system, the pattern will use the proper port. The short nick-names work in
# ALSA or JACK (a2jmidid bridge).

[midi-clock-map]

 1      # map is active

 0  0   "Midi Through Port-0"
 1  0   "Launchpad Mini MIDI 1"
 2  0   "nanoKEY2 nanoKEY2 _ CTRL"
 3  0   "CH345 MIDI 1"
 4  0   "E-MU XMidi1X1 Tab Out"
 5  0   "USB Midi MIDI 1"
 6  0   "Q25 MIDI 1"
 7  0   "FLUID Synth"
 8  0   "yoshimi:input"
 9 -2   "Excess 0"
10 -2   "Excess 1"
11 -2   "Excess 3"
12 -2   "Excess 4"
13 -2   "Excess 5"
14 -2   "Excess 6"
15 -2   "Excess 7"

# 'ticks' provides the Song Position (16th notes) at which clocking begins if
# the bus is set to MIDI Clock Mod setting. 'record-by-channel' allows the
# master MIDI bus to record/filter incoming MIDI data by channel, adding each
# new MIDI event to the pattern that is set to that channel. Option adopted
# from the Seq32 project at GitHub.

[midi-clock-mod-ticks]

ticks = 64
record-by-buss = false
record-by-channel = false

# This section defines tweaks to the reading or writing of MIDI files.
# Indicates how to handle MIDI files with incorrect running status. Default
# is 'recover', which tries to recover the running status when a data byte
# is encountered; 'skip' ignores the rest of the bytes in the track;
# 'proceed' keeps going; 'abort' just exits the parsing, which is the old
# and undesirable behavior. Try each option with the 'trilogy.mid' file.

[midi-file-tweaks]

running-status-action = recover

# Set to true to have Seq66 ignore port names defined in the 'usr' file. Use
# this option to to see the system ports as detected by ALSA/JACK.

[reveal-ports]

show-system-ports = false

# This section sets up a metronome that can be activated from the main live
# grid. It consists of a 'main' note on the first beat, then 'sub' notes on
# the rest of the beats.  The patch/program, note value, velocity, and
# fraction length relative to the beat width (can be specified. The length
# ranges from about 0.125 (one-eight) to 1.0 (the same length as the beat
# width) to 2.0).

[metronome]

output-buss = 4
output-channel = 9
beats-per-bar = 4
beat-width = 4
main-patch = 15
main-note = 75
main-note-velocity = 120
main-note-length = 0
sub-patch = 33
sub-note = 76
sub-note-velocity = 84
sub-note-length = 0
count-in-active = false
count-in-measures = 1
count-in-recording = false
recording-buss = 3
recording-measures = 0
thru-buss = 0
thru-channel = 0

# Sets mouse usage for drawing/editing patterns. 'Fruity' mode is NOT in
# Seq66. Other settings are available: 'snap-split' enables splitting
# song-editor triggers at a snap position instead of in its middle. Split is
# done by a middle-click or ctrl-left click. 'double-click-edit' allows double-
# click on a slot to open it in a pattern editor. Set it to false if
# you don't like how it works.

[interaction-method]

snap-split = false
double-click-edit = true

# transport-type enables synchronizing with JACK Transport. Values:
# none:        No JACK Transport in use.
# slave:       Use JACK Transport as Slave.
# master:      Attempt to serve as JACK Transport Master.
# conditional: Serve as JACK master if no JACK master exists.
#
# song-start-mode playback is either Live, Song, or Auto:
# live: Muting & unmuting of loops in the main window.
# song: Playback uses Song (performance) editor data.
# auto: If the loaded tune has song triggers, use Song mode.
#
# jack-midi sets/unsets JACK MIDI, separate from JACK transport.
# jack-auto-connect sets connecting to JACK ports found. Default = true; use
# false to have a session manager make the connections.
# jack-use-offset attempts to calculate timestamp offsets to improve accuracy
# at high-buffer sizes. Still a work in progress.
# jack-buffer-size allows for changing the frame-count, a power of 2.

[jack-transport]

transport-type = slave
song-start-mode = auto
jack-midi = true
jack-auto-connect = true
jack-use-offset = true
jack-buffer-size = 0

# 'auto-save-rc' sets automatic saving of the  'rc' and other files. If set,
# many command-line settings are saved to configuration files.
#
# 'old-triggers' saves triggers in a format compatible with Seq24. Otherwise,
# triggers are saved with an additional 'transpose' setting. The old-mutes
# value, if true, saves mute-groups as long values (!) instead of bytes.

[auto-option-save]

auto-save-rc = false
save-old-triggers = false
save-old-mutes = false

# Specifies the last-used/currently-active directory.

[last-used-dir]

"/home/user/data/midi"

# The most recently-loaded MIDI files. 'full-paths' = true means to show the
# full file-path in the menu. The most recent file (top of list) can be loaded
# via 'load-most-recent' at startup.

[recent-files]

full-paths = false
load-most-recent = true
count = 2

"/home/user/data/midi/Chameleon-HHancock-Ov.midi"
"/home/user/data/midi/carptsun-2.midi"


# End of /home/user/.config/seq66/qseq66.rc
#
# vim: sw=4 ts=4 wm=4 et ft=dosini
