# Seq66 0.99.11 main ('rc') configuration file
#
# /home/ahlstrom/Home/ca/mls/git/seq66/contrib/tests/4x4/qseq66.rc
# Written 2023-11-05 09:21:52
#
# 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' is experimental. It tries live toggle of port state.

[Seq66]

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

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

[comments]

This file and it's included configurations are meant for a test of the following
usage patterns:
 
    4x4 patterns
    Port mapping
    Added automation controls
 
For this test configuration, we move the "Loop" keystrokes for patterns 16 to 31
to other automation functions.  The "Mute" keystrokes (i.e. the shifted keys)
remain the same.
 
To enable this configuration first run the following command (Linux):
 
    $ qseq66 --home ~/.config/seq66/4x4
 
Once the 4x4 directory exists, copy the test configuration:
 
    $ cp contrib/tests/4x4/* ~/.config/seq66/4x4
 
An alternative is to do the test in place by copying the "session.rc" file to
~/.config/seq66 and point the "4x4" config variable to the full-path to
contrib/tests/4x4.  Then run "qseq66 --inspect 4x4".
 
Let the testing begin!

# 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.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-mapping. '""' 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 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 = "qseq66.palette"

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

[style-sheet-file]

active = true
name = "darkfix.qss"

# Defines features of MIDI meta-event handling. Tempo events occur in the first
# track (pattern 0), but one can move tempo 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. It allows up to 48 output or input ports (defaults to 8
# and 4). Keep it false to auto-connect Seq66 to real ALSA/JACK MIDI ports.
# 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]

 2      # number of MIDI input (or control) buses

 0  1   "[0] 0:1 system:ALSA Announce"
 1  0   "[1] 14:0 Midi Through Port-0"

# 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"

# 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 = Output port is not present on the system (unavailable).
#  -1 = Output port is disabled.
#   0 = MIDI Clock is off. 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 port, e.g. Windows MIDI Mapper, has exclusive access to
# the device) are displayed ghosted. The type of port depends on the
# 'virtual-ports' setting.

[midi-clock]

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

 0  0   "[0] 14:0 Midi Through Port-0"

# 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"

# '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-channel = false

# 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 = 0
output-channel = 9
beats-per-bar = 4
beat-width = 4
main-patch = 0
main-note = 75
main-note-velocity = 96
main-note-length = 0
sub-patch = 0
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 = 0
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 = none
song-start-mode = auto
jack-midi = false
jack-auto-connect = true
jack-use-offset = false
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 = true
save-old-triggers = false
save-old-mutes = false

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

[last-used-dir]

"/home/ahlstrom/Home/ca/mls/git/seq66/contrib/tests/4x4"

# 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 = 1

"/home/ahlstrom/Home/ca/mls/git/seq66/contrib/tests/4x4/buff.midi"

# End of /home/ahlstrom/Home/ca/mls/git/seq66/contrib/tests/4x4/qseq66.rc
#
# vim: sw=4 ts=4 wm=4 et ft=dosini
