diff --git a/doc/latex/tex/alsa.tex b/doc/latex/tex/alsa.tex index 6f21fc3c..4138a2f0 100644 --- a/doc/latex/tex/alsa.tex +++ b/doc/latex/tex/alsa.tex @@ -6,7 +6,7 @@ % \library Documents % \author Chris Ahlstrom % \date 2021-06-16 -% \update 2023-03-02 +% \update 2023-03-03 % \version $Revision$ % \license $XPC_GPL_LICENSE$ % @@ -26,7 +26,8 @@ \subsection{ALSA / Through Ports} When running the commands \texttt{aplaymidi -l} or \texttt{arecordmidi -l}, one sees something like the following. - (The MIDI Through port is useful for...? See \cite{alsathru}.) + Notice that there is only one Thru port. + The MIDI Through port is useful for...? See \cite{alsathru}. \begin{verbatim} Port Client name Port name @@ -41,7 +42,6 @@ \subsection{ALSA / Through Ports} how can I increase the amount of MIDI through ports created by ALSA?" \end{quote} - Notice that there is only one Thru port. To add more Thru ports, first use \texttt{modinfo} to see information about the kernel module \texttt{snd-seq-dummy}. Part of the output is shown here: @@ -80,13 +80,13 @@ \subsection{ALSA / Through Ports} \end{verbatim} This will, of course, throw off the \textsl{Seq66} port numbering, unless - one has implemented port-mapping. + one has implemented port-mapping (\sectionref{sec:port_mapping}). \subsection{ALSA / Virtual MIDI Devices} \label{subsec:alsa_virtual_midi_devices} - The "manual" ports of \textsl{Seq66} are actually "virtual" ports. - From \url{https://tldp.org/HOWTO/MIDI-HOWTO-10.html}: + The "manual" ports of \textsl{Seq66} are "virtual" ports. + From \cite{midihowto}: \begin{quote} MIDI sequencers like to output their notes to MIDI devices that normally @@ -96,7 +96,7 @@ \subsection{ALSA / Virtual MIDI Devices} HOWTO describes all that is necessary to achieve this goal. \end{quote} - To use ALSA's virtual MIDI card the + To use ALSA's virtual MIDI the \texttt{snd-card-virmidi} module must be present. \begin{verbatim} @@ -110,8 +110,7 @@ \subsection{ALSA / Virtual MIDI Devices} \end{verbatim} More to come, such as an explanation of \texttt{aconnectgui}.... - - \url{https://freeshell.de/~murks/posts/ALSA_and_JACK_MIDI_explained_(by_a_dummy_for_dummies)/} + Also see \cite{midilinux}. \subsection{ALSA / Trouble-Shooting} \label{subsec:alsa_testing} @@ -137,6 +136,9 @@ \subsubsection{ALSA / Trouble-Shooting / MIDI Clock} \begin{verbatim} $ aseqdump + Waiting for data at port 129:0. Press Ctrl+C to end. + Source Event Ch Data + 0:1 Port subscribed 128:0 -> 129:0 \end{verbatim} Once set up, start playback on \textsl{Seq66}. @@ -192,7 +194,7 @@ \subsubsection{ALSA / Trouble-Shooting / MIDI Clock} dialog and make sure that MIDI I/O is enabled and that both input and output are set to ALSA. See the \textsl{VMPK} website (\cite{vmpk}). - The current version one can download there is 0.8.7! + The current version one can download there is 0.8.8. %------------------------------------------------------------------------------- % vim: ts=3 sw=3 et ft=tex diff --git a/doc/latex/tex/concepts.tex b/doc/latex/tex/concepts.tex index ec1aa8f3..ff9e740f 100644 --- a/doc/latex/tex/concepts.tex +++ b/doc/latex/tex/concepts.tex @@ -6,7 +6,7 @@ % \library Documents % \author Chris Ahlstrom % \date 2015-11-01 -% \update 2021-12-24 +% \update 2023-03-03 % \version $Revision$ % \license $XPC_GPL_LICENSE$ % @@ -27,22 +27,23 @@ \section{Concepts} \subsection{Concepts / Reload Session} \label{subsec:concepts_reload_session} - While \textsl{Seq66} is fairly flexible, changes in devices setups and other + While \textsl{Seq66} is flexible, changes in devices setups and other settings generally required the user to \textsl{reload session}. - This reload can be done in two ways: + This reload can be done in two ways. \begin{itemize} - \item \textbf{Restart Seq66}. + \item \textbf{Manual Restart} Once a setting is changed, or a new arrangement of devices occurs, exit \textsl{Seq66}, examine or edit the various configuration files (if desired), and start \textsl{Seq66} again. - \item \textbf{Session / Reload Session}. + \item \textbf{Edit / Preferences / Restart Seq66}. When settings in \textbf{Edit / Preferences} are changed, the \textbf{Reload Session} button becomes enabled. Click it, and the result is basically like restarting \textsl{Seq66}. \end{itemize} - In the future, we will make \textsl{Seq66} able to better detect and + In the future (version 2?), we will make \textsl{Seq66} + able to better detect and reconfigure for system changes and preferences changes. \subsection{Concepts / Terms} @@ -60,12 +61,12 @@ \subsubsection{Concepts / Terms / loop, pattern, track, sequence} \textsl{Loop} is a synonym for \textsl{pattern}, \textsl{track}, or \textsl{sequence}; the terms are used interchangeably. Each loop is represented by a box (pattern slot) in the Pattern (main) - Window. + window, also known as the "Patterns Panel" or "Live Grid".. A loop is a unit of melody or rhythm extending for a small number of measures (in most cases). Each loop is represented by a box in the patterns panel. - Each loo is editable. All patterns can be layed out in + Each loop is editable. All patterns can be layed out in a particular arrangement to generate a more complex song. \index{slot} A \textsl{slot} is a box in a pattern grid that holds a loop. @@ -79,39 +80,40 @@ \subsubsection{Concepts / Terms / armed, muted} \index{armed} An armed sequence is a MIDI pattern that will be heard. "Armed" is the opposite of "muted", and the same as "unmuted". + An unarmed sequence will not be heard, and it has a normal background. Performing an \textsl{arm} operation in \textsl{Seq66} means clicking on an "unarmed" sequence in the patterns panel (the main window of \textsl{Seq66}). - An unarmed sequence will not be heard, and it has a normal background. When the sequence is \textsl{armed}, it will be heard, and it has a - more noticeable background. + more noticeable background. A sequence can be armed or unarmed in many ways: \begin{itemize} \item Clicking on a sequence/pattern box. \item Pressing the hot-key for that sequence/pattern box. + \item Setting up a mute-group containing that pattern, and then + activating it with its hot-key. \item Opening up the Song Editor and starting playback; the sequences arm/unarm depending on the layout of the sequences and triggers in the piano roll of the Song Editor. \item Using a MIDI control, as configured in a 'ctrl' file, to - toggle the armed status of a pattern. + toggle the armed status of a pattern or select a mute-group. \end{itemize} \subsubsection{Concepts / Terms / bank, screenset, play-screen} \label{subsubsec:concepts_terms_bank} \index{screenset} - The \textsl{screenset} + A \textsl{screenset} is a set of patterns that fit within the \textbf{4 x 8} grid of loops/patterns in the patterns panel. \textsl{Seq66} supports multiple screens sets, up to 32 of them, and a name can be given to each for clarity. Some other sizes, such as \textbf{8 x 8} and \textbf{12 x 8}, are - partly supported. For the most part, the column number is best left at 8. + partly supported. \index{bank} The term "bank" is \textsl{Kepler34}'s name for "screenset". The term "scenes" from \textsl{Ableton Live} is very similar as well. - \index{play screen} By default, only one set is active and playing at a time. This set is informally termed the "play screen". There are options to let more than one @@ -122,7 +124,7 @@ \subsubsection{Concepts / Terms / buss, bus, port} \index{bus} \index{buss} - A \textsl{buss} (also spelled "bus" these days; + A \textsl{buss} (also spelled "bus" these days, see \url{https://en.wikipedia.org/wiki/Busbar}) is an entity onto which MIDI events can be placed, in order to be heard or to affect the playback, or into which MIDI events can be received, for recording. @@ -137,7 +139,7 @@ \subsubsection{Concepts / Terms / performance, song, trigger} \index{performance} \index{song} \textsl{performance} or - \textsl{song}is an organized collection of patterns that play a tune + \textsl{song} is an organized collection of patterns that play a full tune automatically. This layout of patterns is created using the song editor, sometimes called the "performance editor". @@ -157,13 +159,15 @@ \subsubsection{Concepts / Terms / Auto-step, Step-Edit} \index{auto-step} \index{step-edit} - Auto-step (step-edit) provide a way to add notes easily when a pattern is + Auto-step (step-edit) provides a way to add notes easily when a pattern is not playing. It works in two ways. In the first way, when drawing notes on the pattern-editor's piano roll, dragging the mouse automatically inserts notes of the configured length at intervals of the configured snap. In the second way, incoming MIDI notes (including chords) are automatically logged at the given snap interval, with a length a little less than the configured snap interval. + There is also a one-shot step-edit mode that is useful for recording a drum + pattern emitted by a machine. \subsubsection{Concepts / Terms / export} \label{subsubsec:concepts_terms_export} @@ -176,14 +180,14 @@ \subsubsection{Concepts / Terms / export} performance information (triggers) associated with them, and creates one larger trigger for each track, repeating the events as indicated by the original performance. + MIDI can also be exported to SMF 0 format. \subsubsection{Concepts / Terms / group, mute-group} \label{subsubsec:concepts_terms_group} \index{group} A \textsl{group} in \textsl{Seq66} is a - set of patterns, that can arm (unmute) their playing state - together. + set of patterns, that can arm/disarm all together. Every group contains all sequences in the active screen set. This concept is similar to mute/unmute groups in hardware sequencers. @@ -191,8 +195,6 @@ \subsubsection{Concepts / Terms / group, mute-group} Also known as a "mute-group". Mute-groups can be stored in the MIDI file or in a 'mutes' file. Each mute-group is associated with a keystroke or a MIDI control. - When applied, the mute-group enables one or more patterns in the current - screenset. \subsubsection{Concepts / Terms / play-set} \label{subsubsec:concepts_terms_playset} @@ -219,7 +221,7 @@ \subsubsection{Concepts / Terms / PPQN, pulses, ticks, clocks, divisions} And, when JACK is involved, one must remember that JACK "ticks" come at 10 times the rate of MIDI ticks. A full description of all these terms, and how they are calculated, is - beyond the scope of this document. Check out the source code. + beyond the scope of this document. \subsubsection{Concepts / Terms / queue, keep queue, snapshot, oneshot} \label{subsubsec:concepts_terms_queue_mode} @@ -230,7 +232,7 @@ \subsubsection{Concepts / Terms / queue, keep queue, snapshot, oneshot} To "queue" a pattern means to ready it for playback on the next repeat of a pattern. A pattern can be armed immediately, or it can be queued to play back the next time the pattern restarts. - Pattern toggle occurs at the end of the pattern, + Pattern toggle occurs at the next play of the pattern, rather than being set immediately. A set of queued patterns can be temporarily stored, so that a different @@ -258,7 +260,6 @@ \subsubsection{Concepts / Terms / queue, keep queue, snapshot, oneshot} \index{playback!one-shot} \textsl{Seq66} \textsl{one-shot playback} is a way to enable a pattern to be queued and then played only once. - For recording, \index{oneshot} \index{oneshot!recording} diff --git a/doc/latex/tex/configuration.tex b/doc/latex/tex/configuration.tex index 00349451..accbb3fe 100644 --- a/doc/latex/tex/configuration.tex +++ b/doc/latex/tex/configuration.tex @@ -18,8 +18,8 @@ \section{Seq66 Configuration} \label{sec:configuration} \textsl{Seq66} configuration has become more elaborate with time, with more - configuration files (\textsl{feature-itis?}). - Fortunately, configuration items are well documented in the + configuration files. + Configuration items are well documented in the \textsl{Seq66} "man" page and in the configuration files. Therefore, this new discussion will merely summarize the options and go into a few details about the configuration files. @@ -46,10 +46,9 @@ \section{Seq66 Configuration} of theme-drawn elements (e.g. the pattern-grid buttons and text controls). \end{itemize} - After the first run of \textsl{Seq66}, - it will generate a set of configration files in the default - \textsl{configuration} directory, with names dependent on the version of - \textsl{Seq66} being run: + After the first run and exit of \textsl{Seq66}, + it generates a set of default configration files in the default + \textsl{configuration} directory: \begin{verbatim} /home/user/.config/seq66/qseq66.rc @@ -66,7 +65,6 @@ \section{Seq66 Configuration} section. There are also some 'keymap' files. They are not yet used, but may become a feature of \textsl{Seq66} in the future. - For \textsl{Microsoft Windows}, the default base name of the files is \texttt{qpseq66}, and the default configuration directory is @@ -89,8 +87,8 @@ \section{Seq66 Configuration} Some of the settings can be modified in the \textbf{Edit / Preferences} dialog, or overridden from the command line. - \textsl{Seq66} \textsl{always} overwrites the most of these files upon - exiting. One must therefore quit \textsl{Seq66} before making + \textsl{Seq66} overwrites the most of these files upon exiting. + One must therefore quit \textsl{Seq66} before making manual modifications to these files. \subsection{Configuration File Commonalities} @@ -115,7 +113,7 @@ \subsection{Configuration File Commonalities} \subsubsection{[Seq66] Section} \label{subsec:configuration_common_seq66_section} - This section is generally just informational. At a minimum, it holds two + This section is informational. At a minimum, it holds two variables: \begin{itemize} @@ -155,7 +153,7 @@ \subsubsection{Numeric Settings} We have been replacing these kinds of settings with the \texttt{name = value} style described below, but there are a few places - where the old style persists. + where the old style persists, or is more convenient. \subsubsection{Boolean Settings} \label{subsec:configuration_common_boolean_settings} @@ -168,7 +166,7 @@ \subsubsection{Boolean Settings} \end{verbatim} We have been trying to replace these kinds of settings with the - \texttt{name = value} style described below, but there are a few places + \texttt{name = true/false} style described below, but there are a few places where the old style persists. \subsubsection{Variables} @@ -192,24 +190,20 @@ \subsubsection{Variables} directory or path, it must be surrounded with quotes, in case the path has spaces in it. - Also note that there are still a lot of old-style variable specifications in - place. As time allows, they will be fixed, one-by-one, in a manner that - does not break old configurations. - \subsubsection{Stanzas} \label{subsec:configuration_common_stanzas} - Please note that, as of version 0.92.0 of \textsl{Seq66}, we have - streamlined the control-file stanza by eliminating the "enabled" and - "channel" columns in a stanza, since they can be encoded in the event/status + We have streamlined the control-file stanza by eliminating the "enabled" and + "channel" columns, since they can be encoded in the event/status byte (e.g. 0x90) instead. Older versions of the 'ctrl' file will be upgraded automatically. A stanza in a \textsl{Seq66} configuration file consists of some data at the - beginning, a set of values bracketed by square brackets, and a comment + beginning, a set of values inside square brackets, and a comment at the end. The values inside the square brackets are numeric, and can - be in decimal format, sometimes hexadecimal format, or in binary "0/1" - format. + be in decimal format, hexadecimal format, or binary "0/1" format. + See \sectionref{subsubsec:configuration_ctrl_loop_control}, which describes + the details of this layout. \begin{verbatim} 0 "1" [ 0 0x00 0 0 0 ] [ 0 0x00 0 0 0 ] [ 0 0x00 0 0 0 ] # Loop 0 @@ -219,9 +213,6 @@ \subsubsection{Stanzas} . . . \end{verbatim} - See \sectionref{subsubsec:configuration_ctrl_loop_control}, which describes - the details of this layout. - \subsection{Command Line} \label{subsec:configuration_command_line} @@ -454,9 +445,9 @@ \subsection{Command Line} \item \texttt{log=filename.log}. \index{log} Reroutes standard error and standard - output messages to the given log-file. This file is located in + output messages to a log-file located in the configuration directory. - If this file is present, additional log information is appended. + If this file is present, log information is appended. The default log-file name is specified in the \texttt{[user-options]} section of the 'usr' file. \item \texttt{sets=8x8}. @@ -485,9 +476,6 @@ \subsection{Command Line} output ports and 'i' input ports. \end{itemize} - Many of the above options are including in the relevant configuration - files. We will point to them in the future. - \subsection{'rc' File} \label{subsec:configuration_rc} @@ -510,15 +498,6 @@ \subsection{'rc' File} port-namng = short \end{verbatim} -% We save, but no longer read, this option from the 'rc' file. -% -% verbose = false -% -% \index{verbose} -% \texttt{verbose} is the same as the \texttt{-{}-verbose} command-line -% option, except that, if set to "true", it affects every invocation of -% \textsl{Seq66}. - \index{sets-mode} The \texttt{sets-mode} option determines how patterns are muted when the play-screen (current set) changes. Its values are: @@ -599,10 +578,10 @@ \subsubsection{'rc' File / Color Palette} name = "qseq66.palette" \end{verbatim} - The only need for a palette file is when the user is not satisfied with the + The only need for a palette file is when not satisfied with the default palette for the patterns, inverse colors, hatching, - or grid-lines for some - pattern piano roll items. There is a button to save the current/default + or grid-lines for some pattern piano roll items. + There is a button to save the current/default palette for later modification in the \textbf{Edit / Preferences / Display} tab. @@ -629,7 +608,7 @@ \subsubsection{'rc' File / MIDI-Clock Section} \index{[midi-clock]} The MIDI Clock tab contains the clocking state from the last - time \textsl{Seq66} was run, and their status, and their names. + time \textsl{Seq66} was run, their status, and their names. It also specifies the MIDI output ports, which can be disabled. Disable the port with a -1, turn off the clock with a 0, or turn it on with a 1 (which means to send @@ -669,6 +648,7 @@ \subsubsection{'rc' File / MIDI-Clock Section} The appended label is \textsl{not} part of the port name; it is there simply to help the user select the correct system port. This same setup applies to MIDI input ports as well. + Note that the 'rc' file has a port-mapping option, described elsewhere. Ports created by \texttt{a2jmidid --export-hw} do not have JACK aliases. Ports created by Seq66 do not have JACK aliases. Ports created by MIDI @@ -685,8 +665,6 @@ \subsubsection{'rc' File / MIDI-Clock Section} $ jack_lsp --aliases \end{verbatim} - Note that the 'rc' file has a port-mapping option, as described earlier. - \subsubsection{'rc' File / MIDI Clock Mod Ticks} \label{subsubsec:configuration_rc_midi_cmt} @@ -700,20 +678,19 @@ \subsubsection{'rc' File / MIDI Clock Mod Ticks} record-by-channel = false \end{verbatim} - The record-flag is kind of an outcast. Not sure why it is here, as - opposed to the 'usr' file; + The record-flag should be in the 'usr' file; something to rectify later. \subsubsection{'rc' File / MIDI-Meta-Events Section} \label{subsubsec:configuration_rc_midi_meta_events} \index{[midi-meta-events]} - The new MIDI Meta events section is the start of additional options - supporting meta events as normal events in \textsl{Seq66}. - This section defines just one feature of MIDI meta-event handling at present. + The MIDI Meta events section is the start of additional options + supporting meta events as normal events in \textsl{Seq66}; + it defines only the tempo MIDI meta-event at present. Normally, tempo events are supposed to occur in the first track (pattern 0). But one can move this track elsewhere to accomodate one's existing body of - tunes. If affects where tempo events are recorded. The default value is 0, + tunes. It affects where tempo events are recorded. The default value is 0, the maximum is 1023. A pattern must exist at this number for it to work. \index{tempo-track-number} @@ -727,9 +704,7 @@ \subsubsection{'rc' File / MIDI-Meta-Events Section} official track for certain MIDI meta events, such as \textbf{Set Tempo} and \textbf{Time Signature}. - However, to accommodate existing tunes and their set - arrangement, we allow the user to - and change the tempo track to another pattern. + But we allow the user to and change the tempo track to another pattern. \subsubsection{'rc' File / MIDI Input} \label{subsubsec:configuration_rc_midi_input} @@ -737,7 +712,7 @@ \subsubsection{'rc' File / MIDI Input} \index{[midi-input]} This configuration item is represented in the \textbf{MIDI Input} tab in the \textbf{Edit / Preferences}. - The first number is a line count, and would equal the number of + The first number is a line count, and equals the number of supported input ports. After that, this 'rc' entry here has two variables; the first is the port number, @@ -765,8 +740,8 @@ \subsubsection{'rc' File / Manual (Virtual) Ports} \index{ports!virtual} \index{ports!manual} \begin{enumerate} - \item It actually refers to the usage of \textsl{virtual} MIDI ports. - These are ports that are set up by the application so that other + \item It refers to the usage of \textsl{virtual} MIDI ports. + These are ports set up by the application so that other devices, applications, or session managers can connect \textsl{manually} to the MIDI application. \item This option is not just for ALSA. It can also be used when @@ -788,7 +763,6 @@ \subsubsection{'rc' File / Manual (Virtual) Ports} which is the normal mode of running \textsl{Seq66}. In this mode, system MIDI input/output devices are discovered and automatically connected. - It will create port names as per the settings in the 'usr' configuration file's sections: @@ -900,9 +874,9 @@ \subsubsection{'rc' File / Reveal Ports} \subsubsection{'rc' File / Metronome} \label{subsubsec:configuration_rc_metronome} - As of \textsl{Seq66} version 0.99.0, a very configurable metronome is - supported. After running that version for the first time, and then - exiting, the following new section is present: + A very configurable metronome is supported. + After running \textsl{Seq66} and then + exiting, the following section is present: \begin{verbatim} [metronome] @@ -968,12 +942,10 @@ \subsubsection{'rc' File / Background Recording} The \texttt{recording-buss} setting specifies the input buss/port. That buss \textsl{must be enabled} (in the 'rc' file). - The \texttt{recording-measures} sets the number of measures to record. The style of recording is currently \textsl{merged}, where notes accumulate as each loop occurs. We might adjust that feaure per user feedback. - If \texttt{recording-measures} is set to 0, then the \textsl{expanding} mode of recording is used, where the sequence gets longer and longers as playback and playing continues. @@ -1108,7 +1080,6 @@ \subsection{'usr' File} \end{verbatim} In a session manager, the files will be created in the session directory. - \index{usr!-u} \index{usr!--user-save} Unlike the 'rc' file, the 'usr' file is \textsl{not} written every time @@ -1423,10 +1394,12 @@ \subsubsection{'usr' File / User MIDI PPQN} The long-standing PPQN for \textsl{Seq24} was a value of 192, and \textsl{Seq66} sticks with that default. This value is good for most tunes. But other sequencers allow for higher - values. And \textsl{Seq66} allows for some crazy values, ranging from + values. \textsl{Seq66} allows for some crazy values, ranging from 32 to 19200. If a MIDI file has a different PPQN, it will be rescaled to the default PPQN. However, one might want to stick with the PPQN specified in the MIDI file, so \textsl{Seq66} allows that as well. + It is probably best to set \texttt{use-file-ppqn = true}, but that is + up to the user. \index{usr!midi-ppqn} \index{default PPQN} @@ -1434,12 +1407,9 @@ \subsubsection{'usr' File / User MIDI PPQN} \begin{verbatim} [user-midi-ppqn] default-ppqn = 192 - use-file-ppqn = false + use-file-ppqn = true \end{verbatim} - It is probably best to set \texttt{use-file-ppqn = true}, but that is - up to the user. - \subsubsection{'usr' File / User MIDI Settings} \label{subsubsec:usr_file_user_midi_settings} @@ -1630,7 +1600,6 @@ \subsubsection{'usr' File / Additional Options} Note the blue text fields. Also note the larger tabs, which could be useful on a touch-screen. - There is a full-scale dark theme stored in \texttt{data/win/dark-theme.qss}. One might want to save and tweak the 'palette' file to match. @@ -1678,6 +1647,8 @@ \subsubsection{'usr' File / Additional Options} \texttt{[user-session]} provides a way to cooperate with the \textsl{Non Session Manager}. + See \sectionref{subsec:sessions_nsm_before_using_nsm}; it goes into great + detail. \begin{verbatim} [user-session] @@ -1685,9 +1656,6 @@ \subsubsection{'usr' File / Additional Options} url = "" \end{verbatim} - See \sectionref{subsec:sessions_nsm_before_using_nsm}; it goes into great - detail. - \paragraph{'usr' File / Additional Options / [new-pattern-editor]} \label{paragraph:user_file_added_options_pattern_editor} @@ -1829,9 +1797,8 @@ \subsubsection{'ctrl' File / Loop Control} 31 "," [ 0 0x00 0 0 0 ] [ 0 0x00 0 0 0 ] [ 0 0x00 0 0 0 ] # Loop 31 \end{verbatim} - The first number is an index number, starting at 0. It indicates what + The first column is an index number, starting at 0. It indicates what loop the control line will affect. - \index{keys!control} The second column is the name of the keystroke that will act as a toggle or action key. @@ -1893,7 +1860,6 @@ \subsubsection{'ctrl' File / Loop Control} For each pattern, we can set up MIDI events to turn a pattern on, off, or to toggle it. - The loop MIDI control setup resembles a matrix. The default matrix uses the central keys on the keyboard, laid out in a 4 x 8 grid matching the pattern buttons: @@ -2169,6 +2135,7 @@ \subsubsection{'ctrl' File / MIDI Control Output} This section provides a way to have a MIDI device, such as the \textsl{Novation Launchpad Mini}, show the status of the patterns that are active, as well as other information. + The first sub-section sets up some general settings. \begin{verbatim} [midi-control-out-settings] @@ -2180,8 +2147,6 @@ \subsubsection{'ctrl' File / MIDI Control Output} button-columns = 8 \end{verbatim} - The first section sets up some general settings. - \begin{itemize} \item \texttt{set-size}. Provides the set size. The default is 32, in a 4 x 8 grid. @@ -2267,7 +2232,7 @@ \subsubsection{'ctrl' File / Macro Control Output} The macros "footer", "header", "reset", "startup", and "shutdown" are written to the 'ctrl' file if not already present, though - they won't have any definition. + they won't have any useful definition. The first three are useful in other macros, while "startup" and "shutdown", if defined with actual data, are sent at the launch and shutdown, respectively, of \textsl{Seq66}. @@ -2284,6 +2249,8 @@ \subsubsection{'ctrl' File / Macro Control Output} There is currently no way to send them via MIDI control. +% For editability, the default keys are specified in another TeX file. + \input{defaultkeys} \subsubsection{'ctrl' File / AZERTY and QWERTZ Keyboards} @@ -2351,8 +2318,7 @@ \subsubsection{'ctrl' File / AZERTY and QWERTZ Keyboards} One issue with some keyboard layouts are "dead keys". These keys do nothing but modify the next key that follows, and will not emit a useable key code. - - Lastly, one will see some sample files with the extension 'keymap'. + One will see some sample files with the extension 'keymap'. These files are not yet useful, but we anticipate calling them into play when more people are asking for support for their non-US keyboards. @@ -2398,14 +2364,6 @@ \subsection{'mutes' File} support for larger sets is completely worked out) sequences in the playing screen set when a group is selected. Each set of brackets defines a group. -% After the list of sequences and their MIDI events, one can -% set \textsl{Seq66} to handle MIDI events and change some more settings -% in \texttt{seq66.rc}. -% -% What is the different between the \textbf{mute-in group} -% section and the \textbf{mute group} section? The former defines the MIDI -% control values that can affect the muting of a group, while the latter -% specifies the patterns that are part of a group. \subsection{'drums' File} \label{subsec:configuration_drums} diff --git a/doc/latex/tex/defaultkeys.tex b/doc/latex/tex/defaultkeys.tex index 4a4575bd..c5f62807 100644 --- a/doc/latex/tex/defaultkeys.tex +++ b/doc/latex/tex/defaultkeys.tex @@ -17,7 +17,7 @@ \subsubsection{'ctrl' File / Keyboard / Default Assignments} \label{subsubsec:ctrl_keyboard_default_assignments} - This section provides a table fo the functions, key numbers ("ordinals"), + This section provides a table of the functions, key numbers ("ordinals"), names, and other information about the default \textsl{Seq66} keyboard assignments. The following status tags apply in this table. diff --git a/doc/latex/tex/event_editor.tex b/doc/latex/tex/event_editor.tex index 50b9cca8..165e273b 100644 --- a/doc/latex/tex/event_editor.tex +++ b/doc/latex/tex/event_editor.tex @@ -49,11 +49,6 @@ \section{Event Editor} \item There is no support for dragging and dropping of events. \end{enumerate} -% If, some day, we find ourselves needing -% that kind of functionality, then we can add it. -% There may also be issues with interactions between the event editor and -% things like the performance editor and triggers. - The event editor is a good way to see the events in a sequence, and to delete or modify problematic events. Additionally, it can be used to add \textbf{Set Tempo} meta events. @@ -284,15 +279,10 @@ \subsection{Event Editor / Edit Fields} \item \textbf{Tempo} \end{enumber} -% \textbf{Note that these are all MIDI \textsl{channel events}. -% Support for MIDI \textsl{system events} is in place, but is not -% ready for exposure to the user.} - Selecting one of these names from the dropdown changes the kind of event if the event is modified. Abbreviations and case-insensitivity can be used to reduce the effort of typing. - - Also, as of \textsl{Seq66} 0.96.1, if \textbf{Control Change} or + Also, if \textbf{Control Change} or \textbf{Program Change} are selected, then a data drop-down box is available to select either the controller or the instrument patch (program), and it can fill in the data values. @@ -334,12 +324,6 @@ \subsection{Event Editor / Edit Fields} supplement the buttons; the \texttt{Delete} key is needed for editing the event data fields. -% The current structure of the dialog prevents using it for both -% the frame and the edit fields. -% Therefore, \textsl{Seq66} allows the -% usage of the \textbf{asterisk} keys (regular and keypad) for -% deletion. - \subsection{Event Editor / Bottom Buttons} \label{subsec:event_editor_buttons} @@ -402,7 +386,7 @@ \subsection{Event Editor / Bottom Buttons} \texttt{/home/user/miditunes/The\_Wild\_Bull-pattern-9.text}. - Again, good luck with this tab. Bug reports are appreciated. + Good luck with this tab. Bug reports are appreciated. %------------------------------------------------------------------------------- % vim: ts=3 sw=3 et ft=tex diff --git a/doc/latex/tex/jack.tex b/doc/latex/tex/jack.tex index 2126ec1f..be7ead3a 100644 --- a/doc/latex/tex/jack.tex +++ b/doc/latex/tex/jack.tex @@ -154,9 +154,10 @@ \subsection{JACK / Native MIDI} \textsl{Seq66}, which will detect JACK and use it. If it instead opts to run with ALSA, edit the 'rc' file to set up \texttt{midi\_jack}, or add the - \texttt{-t} or \texttt{-{}-jack-midi} - option to the command-line. - If \textsl{Seq66} doesn't find JACK, it will still fall back to ALSA. + \texttt{-t}, \texttt{-{}-jack-midi}, + \texttt{-{}-jack} + or option to the command-line. + If \textsl{Seq66} doesn't find JACK, it will fall back to ALSA. \index{sticky options} The JACK (\texttt{-t}) and ALSA (\texttt{-A}) options are sticky options. @@ -425,7 +426,6 @@ \subsection{JACK / QJackCtl} path. Running JACK in synchronous mode creates less Xruns in JACK2, which is now the default. - \subsection{JACK / PulseAudio} \label{subsec:jack_pulseaudio} @@ -496,7 +496,6 @@ \subsection{JACK / PulseAudio} The following scenario describes what we are seeing on \textsl{Ubuntu 20.04.3}; the main anomaly is that playback of an application through \textsl{PulseAudio} doesn't resume on its own. - Let's assume we are running \textsl{mpd} and it is playing tunes via \textsl{PulseAudio}. Then we start \textsl{QJackctl} configured as above. diff --git a/doc/latex/tex/kbd_mouse.tex b/doc/latex/tex/kbd_mouse.tex index f49e0852..a9aa40e6 100644 --- a/doc/latex/tex/kbd_mouse.tex +++ b/doc/latex/tex/kbd_mouse.tex @@ -35,8 +35,6 @@ \section{Seq66 Keyboard and Mouse Actions} The effect that keystrokes have depends upon which window has the keyboard/mouse focus. \index{keys!qt} -% It must be noted that the Qt 5 user-interface still has a few missing pieces -% in keystroke support. \subsection{Keyboard Control} \label{subsec:kbd_mouse_keyboard_control} @@ -458,9 +456,10 @@ \subsubsection{Performance Editor Piano Roll} pause keys. These can be modified in the \textbf{Options / Keyboard} page. A "section" in the performance editor is actually a box that specifies a trigger for the pattern in that sequence/pattern slot. - Note that the "toggle other slots" action occurs only if shift-left-clicked + Note that the "toggle other slots" action occurs only if + \textsl{shift-left-clicked} in the "names" area of the performance editor. - Left-click is used to select performance blocks if clicked within + \textsl{Left-click} is used to select performance blocks if clicked within a block, or to deselect them if clicked in an empty area of the piano roll. Also note that all scrolling is done by the internal horizontal and vertical step increments. diff --git a/doc/latex/tex/kudos.tex b/doc/latex/tex/kudos.tex index cc76c6db..41bc43f3 100644 --- a/doc/latex/tex/kudos.tex +++ b/doc/latex/tex/kudos.tex @@ -129,20 +129,17 @@ \section{Kudos} the software realm. I set out to create a very minimal sequencer that excludes the bloated features of the large software sequencers, and includes a small subset of features that I have found usable in - performing. - - Written by Rob C. Buse. I wrote this program to fill a - hole. I figure it would be a waste if I was the only one - using it. So, I released it under the GPL. + performing. Written by Rob C. Buse. I wrote this program to fill a + hole. I figure it would be a waste if I was the only one using it. So, + I released it under the GPL. \end{quotation} Taking advantage of Rob's generosity, - we've created a reboot, a refactoring, an improvement (we hope) of - \textsl{Seq24}. It preserves (we hope) the lean nature of \textsl{Seq24}, + we've created a reboot, a refactoring, an improvement of + \textsl{Seq24}. It preserves (somewhat) the lean nature of \textsl{Seq24}, while adding many useful features. Without \textsl{Seq24} and its authors, - \textsl{Sequencer64} and then \textsl{Seq66} would never have come into - being. + \textsl{Seq66} would never have come into being. %------------------------------------------------------------------------------- % vim: ts=3 sw=3 et ft=tex diff --git a/doc/latex/tex/launchpad_mini.tex b/doc/latex/tex/launchpad_mini.tex index 4aa4b4ee..bc4fbe09 100644 --- a/doc/latex/tex/launchpad_mini.tex +++ b/doc/latex/tex/launchpad_mini.tex @@ -25,7 +25,6 @@ \section{Launchpad Mini} We will describe one of the 'ctrl' files provided with \textsl{Seq66}, the setup of ports and connections under ALSA and under JACK, and some related topics. - A picture of the Mini appears at the end of this section. Supplemental information is documented in \texttt{contrib/notes/launchpad.txt} and @@ -424,18 +423,16 @@ \subsection{Test Run, ALSA} \begin{figure}[H] \centering \includegraphics[scale=2.00]{configuration/ctrl/launchpad-mute-group-2.png} - \caption{Launchpad Minu Running with Seq66} + \caption{Launchpad Mini Running with Seq66} \label{fig:launchpad_mute_group_perspective} \end{figure} This picture shows that playback is paused (yellow), that mute-group 7 is active, and that all the patterns in that mute-group are green, except for one that got muted accidentally while taking the pictre. - If the \textbf{File / New} option is selected, all the patterns are turned off, but the four mute-group buttons at the bottom left remain, as the mute-groups are not erased. (Bug or feature?) - What's next? First, add more controls and statuses to the configuration. Second, start working on a MIDI file to produce a light show! @@ -446,7 +443,6 @@ \subsection{System Survey, JACK} First peruse \sectionref{sec:jack}, to understand the basics about \textsl{JACK}, including the last section there that describes how to set up \textsl{ALSA}-to-\textsl{JACK} bridging. - Run one of the following commands (they are identical in function), then verify the ports in \textbf{Edit / Preferences / MIDI Clock} and \textbf{MIDI Input}, and then diff --git a/doc/latex/tex/live_grid.tex b/doc/latex/tex/live_grid.tex index d7b211e7..89517f81 100644 --- a/doc/latex/tex/live_grid.tex +++ b/doc/latex/tex/live_grid.tex @@ -292,7 +292,6 @@ \subsection{Patterns Panel (Live Grid)} In the center of the main window is the \textsl{patterns panel}, also known as the \textsl{live grid}, where patterns/loops/tracks are shown and where they can be controlled. - Also shown in the patterns panel are a background-record button, metronome button, @@ -306,18 +305,15 @@ \subsection{Main Bottom Controls, First Row} \label{subsec:introduction_main_bottom_controls} The bottom main control items take up two rows. - Here is the first row: + Here is the first row and its contents: \begin{figure}[H] \centering -% \includegraphics[scale=0.75]{main-window/main-window-controls.png} \includegraphics[scale=0.75]{main-window/main-window-bottom-1.png} \caption{Main Window Bottom, First Row} \label{fig:main_window_bottom_1} \end{figure} - It contains: - \begin{itemize} \item \textbf{Set Name} \item \textbf{Underrun Indicator} @@ -376,7 +372,8 @@ \subsubsection{Active Set Indicator} This read-only text field shows the set number of the currently active set. One can open a number of external \textsl{Live Frames} by - Shift-left-clicking on pattern slots. The currently active set is then the + \textsl{shift-left-clicking} on pattern slots. + The currently active set is then the set that has the mouse focus. This allows for working with multiple sets without a lot of mouse/keyboard navigation. @@ -401,7 +398,7 @@ \subsubsection{Set Changer} \subsection{Main Bottom Controls, Second Row} \label{subsec:introduction_main_bottom_controls_2} - Here is the second row: + Here is the second row and contents: \begin{figure}[H] \centering @@ -410,8 +407,6 @@ \subsection{Main Bottom Controls, Second Row} \label{fig:main_window_bottom_2} \end{figure} - On to the next section of the main bottom buttons, the second row contains: - \begin{itemize} \item \textbf{Panic Button} \item \textbf{Stop Button} diff --git a/doc/latex/tex/menu.tex b/doc/latex/tex/menu.tex index 8a782ccb..e8a1fdc9 100644 --- a/doc/latex/tex/menu.tex +++ b/doc/latex/tex/menu.tex @@ -477,8 +477,6 @@ \subsubsection{Menu / Edit / Preferences} \begin{figure}[H] \centering -% \includegraphics[scale=0.75]{main-menu/edit/preferences/midi_clock_tab.png} -% \includegraphics[scale=0.75]{main-menu/edit/preferences/midi_clock_post_portmap.png} \includegraphics[scale=0.75]{main-menu/edit/preferences/midi_clock_tab.png} \caption{MIDI Clock Tab} \label{fig:midi_clock_tab} @@ -1173,7 +1171,6 @@ \subsubsection{Menu / Edit / Preferences} \itempar{Beat width}{metronome!beat width} This setting sets the beat width for the metronome only. - The following setting are provided for the main note and the "sub" notes: \itempar{Patch}{metronome!patch} diff --git a/doc/latex/tex/midi_export.tex b/doc/latex/tex/midi_export.tex index e4e37e7e..4620f560 100644 --- a/doc/latex/tex/midi_export.tex +++ b/doc/latex/tex/midi_export.tex @@ -86,7 +86,6 @@ \subsubsection{Import Playlist} importing a configuration into a new \textsl{NSM} session. It copies the playlist file (e.g. \texttt{liveset.playlist}) into the destination configuration directory. - Then it creates a subdirectory with the name \texttt{playlist/liveset} (for example). It then copies all of the MIDI files that were referenced in the @@ -94,7 +93,6 @@ \subsubsection{Import Playlist} the directory structure. It then wires in and activates the new playlist in the 'rc' file, and sets the new base directory for the MIDI files. - \index{restart!automatic} Lastly, it restarts \textsl{Seq66}, to load in the new playlist. Be careful! diff --git a/doc/latex/tex/pattern_editor.tex b/doc/latex/tex/pattern_editor.tex index fc9921f3..68a23889 100644 --- a/doc/latex/tex/pattern_editor.tex +++ b/doc/latex/tex/pattern_editor.tex @@ -276,7 +276,6 @@ \subsection{Pattern Editor / Second Row} It is fairly intuitive to use. Once selected, the pattern number is shown in the title-bar and in a read-only text field. - The \textbf{Length Change} selector allows for the following actions: \begin{itemize} @@ -601,7 +600,6 @@ \subsection{Pattern Editor / Measures Ruler} Note that the "L" and "R" markers can be selected via the keyboard using their respective shifted key. Once selected, the marker can be moved left or right using the left and right arrow keys. - Also note that the default position of the "R" marker is at the end of the fourth measure, so it might not be visible in the pattern editor without scrolling to it. @@ -1395,7 +1393,6 @@ \subsection{Pattern Editor / Bottom Row} \textbf{Thru} button first to redirect MIDI controller input to the synthesizer port, and have it be heard, without arming the pattern or turning on MIDI Record. - Note, though, that if MIDI Record is toggled on and off, the Thru function is effectively disabled. To restore it, toggle the Thru off, then on, again. @@ -1506,13 +1503,13 @@ \subsection{Pattern Editor / Bottom Row} recording automatically at time 0, and it stopped automatically at the length/end of the pattern. - Why is the snap used instead of the note-length? Because we're using the \index{auto-step} \index{step-edit} \index{recording!auto-step} \index{recording!step-edit} \index{auto-step!recording} \index{step-edit!recording} + Why is the snap used instead of the note-length? Because we're using the auto-step (step-edit) recording feature... the snap determines where the next note begins, and the length determines the length of the note to create. diff --git a/doc/latex/tex/patterns_panel.tex b/doc/latex/tex/patterns_panel.tex index e3c20599..cbc60263 100644 --- a/doc/latex/tex/patterns_panel.tex +++ b/doc/latex/tex/patterns_panel.tex @@ -96,8 +96,7 @@ \subsection{Patterns / Main Panel} The individual items annoted in this figure are described in \sectionref{subsubsec:patterns_pattern_filled}, in more detail. - - Also note buttons for changing and showing the + Also note the buttons for changing and showing the loop/recording modes of the grid buttons and recording quantization. \textsl{Seq66}'s pattern grid can be put in various recording modes (e.g. overdub/merge versus overwrite) where, instead of @@ -128,7 +127,7 @@ \subsubsection{Pattern Slot} the title of the pattern, the number of measures in the pattern, and indicate if the pattern has a loop-count (indicated by a \textbf{+} sign. - A right-click over a pattern button brings up a fairly extensive + A \textsl{right-click} over a pattern button brings up a fairly extensive popup menu. Also see \sectionref{subsubsec:patterns_pattern_filled}. @@ -162,7 +161,7 @@ \subsubsection{Pattern Slot} this state indicates that the slot is unused. \item \textbf{Yellow pattern box}. This color is used when a pattern is - first created by double-clicking on the slot. + first created by \textsl{double-clicking} on the slot. However, this color sticks even when notes are added. Feel free to change it to another color, or no color. \item \textbf{Normal background}. @@ -198,7 +197,7 @@ \subsubsection{Pattern Slot} \index{pattern!right click} \index{slot!empty slot right-click} - Right-clicking on an empty box one brings up a menu to create + \textsl{Right-clicking} on an empty box one brings up a menu to create a new loop or open an external live grid, as well as some other operations. \begin{enumber} @@ -211,7 +210,8 @@ \subsubsection{Pattern Slot} \itempar{New}{pattern!new} Creates a new loop or pattern. Clicking this menu entry fills in the empty box with an untitled - pattern. Another way to create a new loop is to double-left-click on an + pattern. Another way to create a new loop is to + \textsl{double-left-click} on an empty slot; this also brings up an external pattern editor (discussed later). @@ -238,7 +238,7 @@ \subsubsection{Pattern Slot} Once a new loop is created, there are more options for that slot. \index{pattern!right click} - A right-click on an already-filled box brings up a menu + A \textsl{right-click} on an already-filled box brings up a menu to allow one to edit it, or perform a few other actions specified in the context menu. Here is that menu: @@ -284,10 +284,11 @@ \subsubsection{Pattern Slot} has a few addition controls over the \textbf{Edit} tab (where space is more constrained). - In addition to right-click and select \textbf{New}, the user can + In addition to \textsl{right-click} and select \textbf{New}, the user can \index{empty slot double-click} - double-click on the empty slot, to bring up a new instance of the sequence - editor. For double-click on an existing pattern, + \textsl{double-click} on the empty slot, + to bring up a new instance of the sequence + editor. For \textsl{double-click} on an existing pattern, the effect can be a bit confusing at first, because it also toggles the armed/muted status of the slot quickly twice (leaving it as it was). @@ -340,7 +341,8 @@ \subsubsection{Pattern Slot} \itempar{Paste Pattern}{pattern!paste} Pastes a loop or pattern that was previously copied. - This option is shown only when right-clicking over an empty pattern. + This option is shown only when + \textsl{right-clicking} over an empty pattern. It causes a cut or copied pattern to be replicated into the emptly slot. Note that there is no \texttt{Ctrl-V} key for this operation in the main window. @@ -348,7 +350,7 @@ \subsubsection{Pattern Slot} \itempar{Merge Into Pattern}{pattern!merge} This item is a new feature. Like \textbf{Paste to pattern}, it pastes a patten that was cut or copied into the pattern slot where the mouse was - right-clicked. However, the original notes remain. Thus, the merge + \textsl{right-clicked}. However, the original notes remain. Thus, the merge option provides a way to build up a pattern by copying other patterns. \itempar{Output Bus}{pattern!buss} @@ -436,7 +438,8 @@ \subsubsection{Pattern} slot, in square brackets for better visibility. The key noted in the lower-right corner of the pattern is a "hot-key" that can be pressed to toggle the mute/unmute status of that pattern. - This action is an alternative to left-click on the pattern. + This action is an alternative to + \textsl{left-click} on the pattern. This hot-key can also be used to open the pattern in a pattern editor or in the event editor. Other actions are supported by changing the @@ -447,22 +450,24 @@ \subsubsection{Pattern} (unmuted), and will play if playback is initiated in the pattern \index{live mode} window in live mode. - An item is armed/disarmed by a left-click on it, or by using the + An item is armed/disarmed by a + \textsl{left-click} on it, or by using the button's hot-key. - \item \textbf{External Frame}. Shift-left-click. + \item \textbf{External Frame}. \textsl{Shift-left-click}. \index{shift left click} - If the \texttt{Shift} key is held during a left-click on a pattern, + If the \texttt{Shift} key is held during a + \textsl{left-click} on a pattern, the corresponding set's \textbf{Live} frame is brought up. \end{itemize} \index{pattern!left click} - Left-click on an filled pattern box will toggle the status of the + \textsl{Left-click} on an filled pattern box will toggle the status of the pattern between muted (white background) and unmuted (black background). If the song is playing via the main window, toggling this status makes the pattern stop playing or start playing. The armed status can also be toggled using hot-keys and MIDI controls. -\subsubsection{Pattern Keys and Click} +\subsubsection{Pattern Keys and Clicks} \label{subsubsec:patterns_pattern_keys_and_clicks} This section recapitulates all the clicks and keys that perform actions @@ -479,7 +484,7 @@ \subsubsection{Pattern Keys and Click} \index{keys!pattern toggle} \textbf{Pattern Toggle}. - Like a left-click, for each pattern, its assigned hot-key will + Like a \textsl{left-click}, for each pattern, its assigned hot-key will also toggle its status between muted/unmuted (armed/unarmed). Here is the normal layout of patterns, which was built into \textsl{Seq24}'s "DNA": @@ -679,36 +684,38 @@ \subsubsection{Pattern Keys and Click} \index{pattern!left click} \index{pattern!mute toggle} - Left-click on a pattern-filled box will change its state + \textsl{Left-click} on a pattern-filled box will change its state \index{pattern!mute} \index{pattern!unmute} from muted (white background) to playing (black background), whether the sequencer is playing or not. \index{pattern!left click-drag} - Left-click-hold-drag on a pattern, drags it to a different + \textsl{Left-click-hold-drag} on a pattern, drags it to a different pattern on the grid. The box disappears while dragged, and reappears in the new location when dropped. However, a pattern \textsl{cannot} be dragged if its \textbf{Pattern Editor} window is open. \index{pattern!right click} - Right-click on a pattern brings up the appropriate context menus, as + \textsl{Right-click} on a pattern brings up the appropriate context menus, as discussed earlier, depending on whether the pattern box is empty or filled. \index{pattern!middle click} - Middle-click on a pattern will bring up the pattern in the \textbf{Editor} + \textsl{Middle-click} on a pattern will bring up the pattern + in the \textbf{Editor} tab in the main window. \index{pattern!shift-left-click} \index{shift-left-click live-frame} - A Shift-Left click on a pattern will open up an external live-frame for the + \textsl{Shift-left-click} on a pattern will open up an external + live-frame for the set having the same number as the pattern. \index{pattern!ctrl-left-click} \index{ctrl-left-click new pattern} - A Ctrl-Left click on a pattern will create a new pattern, just like + \textsl{Ctrl-left-click} on a pattern will create a new pattern, just like double-click will (if enabled). \index{solo!true} @@ -729,43 +736,43 @@ \subsubsection{Pattern Keys and Click} \paragraph{Metronome} \label{paragraph:patterns_metronome} -\index{metronome} -Also shown in the figure is a \textbf{Metronome} button. -This is a feature new with \textsl{Seq66} version 0.99.0, and still has a few -minor issues to work out, but it works. -The metronome has a number of configurable items. -See \sectionref{subsubsec:configuration_rc_metronome}. + \index{metronome} + Also shown in the figure is a \textbf{Metronome} button. + This is a feature new with \textsl{Seq66} version 0.99.0, and still has a few + minor issues to work out, but it works. + The metronome has a number of configurable items. + See \sectionref{subsubsec:configuration_rc_metronome}. -Clicking the metronome button turns the metronome on and off. -To use the metronome (once configured), click the button to enable it, -then start playback. -It can be turned on and off during playback. -It is always available. + Clicking the metronome button turns the metronome on and off. + To use the metronome (once configured), click the button to enable it, + then start playback. + It can be turned on and off during playback. + It is always available. \paragraph{Background Recording} \label{paragraph:patterns_background_recording} -\index{background recording} -Also shown in the figure is a \textbf{Background Recording} button. -This is a feature new with \textsl{Seq66} version 0.99.0, and still has a few -minor issues to work out, but it works. + \index{background recording} + Also shown in the figure is a \textbf{Background Recording} button. + This feature still has a few + minor issues to work out, but it works. -The recorder has a number of configurable items. -See \sectionref{subsubsec:configuration_rc_background_recording}. -Background recording needs to be enabled in the configuration. -Otherwise, the background-recording button is disabled. + The recorder has a number of configurable items. + See \sectionref{subsubsec:configuration_rc_background_recording}. + Background recording needs to be enabled in the configuration. + Otherwise, the background-recording button is disabled. -When enabled, press the background-recording button. -Now all events on the given input buss will be recorded, even if playback is -not started. Better to start playback after enabling recording! + When enabled, press the background-recording button. + Now all events on the given input buss will be recorded, even if playback is + not started. Better to start playback after enabling recording! -Once one is satisfied with the recording, stop playback, then -click the background-recording button again. -If any events have been recorded, then they are pasted into a new pattern in -the next available pattern slot. -There, they can be edited or deleted. -Note that the background pattern is muted while recording. -We will change how it works based on user feedback. + Once one is satisfied with the recording, stop playback, then + click the background-recording button again. + If any events have been recorded, then they are pasted into a new pattern in + the next available pattern slot. + There, they can be edited or deleted. + Note that the background pattern is muted while recording. + We will change how it works based on user feedback. \paragraph{Pattern Recording Modes} \label{paragraph:patterns_recording_modes} @@ -959,7 +966,6 @@ \subsection{Patterns / Bottom Panel} \index{keys!space (play)} The keystroke for starting playback is the \texttt{Space} character by default. It also stops playback, also rewinding the song to the beginning. - \index{pause} The Pause button toggles playback without rewinding the song. A Pause key (by default, the period) is also defined. @@ -970,7 +976,6 @@ \subsection{Patterns / Bottom Panel} time-lines. As with the "L" and "R" markers in the pattern editor, this can be placed via left and right mouse clicks. - Note that the "L" and "R" markers can be selected via the keyboard using their respective shifted key. Once selected, the marker can be moved left or right using the left and right arrow keys. @@ -1001,8 +1006,10 @@ \subsection{Patterns / Bottom Panel} The \texttt{semicolon} reduces the BPM; \index{keys!apostrophe} The \texttt{apostrophe} increases the BPM. - Also, if one right-clicks on the Up button, the BPM advances to its largest - supported value, and if one right-clicks on the Down button, the BPM + Also, if one \textsl{right-clicks} on the + \textbf{Up} button, the BPM advances to its largest + supported value, and if one \textsl{right-clicks} on the + \textbf{Down} button, the BPM advances to its lowest value. MIDI control for this value is also available. The precision of the BPM value can be set to 0, 1, or 2 diff --git a/doc/latex/tex/port_mapping.tex b/doc/latex/tex/port_mapping.tex index 4dd99774..8cdd8d54 100644 --- a/doc/latex/tex/port_mapping.tex +++ b/doc/latex/tex/port_mapping.tex @@ -6,7 +6,7 @@ % \library Documents % \author Chris Ahlstrom % \date 2020-12-29 -% \update 2021-12-27 +% \update 2023-03-03 % \version $Revision$ % \license $XPC_GPL_LICENSE$ % @@ -29,13 +29,12 @@ \section{Port Mapping} 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 - can connect manually. + 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, each pattern outputs to the port number specified in the pattern. - - The problem is that MIDI device setups can change, with devices being + 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. @@ -56,13 +55,14 @@ \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 \textsl{JACK}, there is a facility to get the "alias" of + 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 \texttt{system:midi\_capture\_5} is actually a "nanoKEY2" device. - So, with port-mapping enabled, one can set up the tune to read and play MIDI + 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-map to match, and read and play without issue. + port-maps to match, and record and play without issue. The easiest way to start port-mapping is to go to \textbf{Edit / Preferences / MIDI Clock}. @@ -78,8 +78,8 @@ \section{Port Mapping} \end{figure} Click on the \textbf{Save Maps} button. - Then either restart \textsl{Seq66} or go to the \textbf{Session} tab - in the main window and click the \textbf{Reload Session} button. + Then either restart \textsl{Seq66} or go to the \textbf{Restart Seq66} + button. Back in \textbf{Edit / Preferences / MIDI Clock}, one sees that the simpler names are in use. @@ -93,14 +93,12 @@ \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 - get the new mapping.. - + get the new mapping. As with the normal port listings, the port-mappings are managed in the \textsl{Seq66} 'rc' file. - One can edit that file to rearrange the mapped ports. + One can also edit that file to rearrange the mapped ports. \subsection{Output Port Mapping} \label{subsec:output_port_mapping} @@ -142,25 +140,6 @@ \subsection{Output Port Mapping} in a pattern, and used to direct output to a device by name. -% Let's say we've unplugged some devices, so that the system -% MIDI clocks list is now shorter: - -% \begin{verbatim} -% [midi-clock] -% 4 # number of MIDI clocks (output busses) -% 0 0 "[0] 14:0 Midi Through Port-0" -% 1 0 "[4] 32:0 E-MU XMidi1X1 Tab MIDI 1" -% 2 0 "[2] 36:0 Launchpad Mini MIDI 1" -% 3 0 "[3] 128:0 yoshimi:input" -% \end{verbatim} - -% So, if a pattern has stored mapped-buss 2 "E-MU XMidi1X1 MIDI 1" -% as its output buss, -% and the output port map is active, the "2" is looked up in the map, the -% nick-name "E-MU XMidi1X1 MIDI 1" grabbed, -% looked up in the system list, which -% returns "4" as the actual system buss number to use for output. - 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 pattern will need to be remapped to an existing port. @@ -171,14 +150,6 @@ \subsection{Output Port Mapping} put into the dropdown; any missing items are noted and are shown as disabled. -% Also note the entries for "FLUID Synth". The long name is really long, and -% it contains a semi-random numerical ID that changes every time QSynth is run. -% For simplicity, only the name before the parenthesis is saved as the -% nick-name. Fortunately, only one instance of Qsynth can run. -% However, note that "FLUID Synth" is the name of -% \textsl{QSynth} under \textsl{ALSA}, -% while "qsynth midi\_00" is the name under \textsl{JACK}. - If the map is not active, then only the actual system output ports are shown in the user interface. @@ -289,15 +260,15 @@ \subsection{Port Mapping Example} With this setup, the lights on the Mini light-up at start-up, and the buttons control the pattern, mute-groups, and automation features set up in the above-mentioned 'ctrl' file. - - As of version 0.98.1, the buss number will be replaced with the name of the + The buss number will be replaced with the name of the device, e.g. \texttt{output-buss = "Launchpad Mini"}, if port-mapping is active. Perhaps tricky, but once one has set up a whole suite of I/O device maps, - one can reliably use these hard-wired port numbers to look up the actual + one can reliably use these mapped port numbers to look up the actual system port numbers. For example, with the above setup, \textsl{Seq66} can - be assured that output buss 1 will always go to the Mini. + be assured that output buss 1 will always go to the + \textsl{Launchpad Mini}. %------------------------------------------------------------------------------- % vim: ts=3 sw=3 et ft=tex diff --git a/doc/latex/tex/references.tex b/doc/latex/tex/references.tex index 81ae63ac..5c198744 100644 --- a/doc/latex/tex/references.tex +++ b/doc/latex/tex/references.tex @@ -6,7 +6,7 @@ % \library Documents % \author Chris Ahlstrom % \date 2015-08-31 -% \update 2023-02-17 +% \update 2023-03-03 % \version $Revision$ % \license $XPC_GPL_LICENSE$ % @@ -19,7 +19,6 @@ % cakewalk % WRK % -% %------------------------------------------------------------------------------- \section{References} @@ -95,6 +94,18 @@ \section{References} \url{https://libreav.org/software/seq66}. 2019. + \bibitem{midihowto} + Phil Kerr. + \emph{The Linux MIDI-HOWTO.} + \url{https://tldp.org/HOWTO/MIDI-HOWTO.html}. + 2002. + + \bibitem{midilinux} + Murks. + \emph{ALSA and JACK MIDI explained (by a dummy for dummies).} + \url{https://freeshell.de/~murks/posts/ALSA_and_JACK_MIDI_explained_(by_a_dummy_for_dummies)/}. + 2010. + \bibitem{midimapper} Coolsoft. \emph{Coolsoft MIDIMapper (Windows).} diff --git a/doc/latex/tex/sessions.tex b/doc/latex/tex/sessions.tex index d95b1146..12ddbf23 100644 --- a/doc/latex/tex/sessions.tex +++ b/doc/latex/tex/sessions.tex @@ -23,7 +23,7 @@ \section{Session Management} The first thing to do for session management is to make sure that the application is capable of various levels of session management, from \textsl{UNIX} signals to - a complete session manager like the \textsl{Non Session Manager}. + a complete session manager like the \textsl{Non/New Session Manager}. Basic session management consist of being able to properly start the application and let it run properly during its life-cyle, whether it is a command-line application or a graphical application. diff --git a/doc/latex/tex/song_editor.tex b/doc/latex/tex/song_editor.tex index 09eab690..54df1c44 100644 --- a/doc/latex/tex/song_editor.tex +++ b/doc/latex/tex/song_editor.tex @@ -151,13 +151,11 @@ \subsection{Song Editor / Top Panel} \itempar{Undo}{song editor!undo} The \textbf{Undo} button rolls back the last change in the layout of a pattern. Each time it is clicked, the most recent change is undone. -% It is inactive if there is nothing to undo. Also implemented via \texttt{Ctrl-Z}. \itempar{Redo}{song editor!redo} The \textbf{Redo} button reapplies the last change undone by the \textbf{Undo} button. -% It is inactive if there is nothing to redo. Also implemented via \texttt{Shift-Ctrl-Z}. \itempar{Zoom Out and Zoom In}{song editor!zoom} @@ -189,12 +187,10 @@ \subsection{Song Editor / Top Panel} It also enables the grid snap functionality, which ndicates the horizontal grid snap for movement actions and trigger drawing. - If disabled, it allows the trigger to be placed and to be smoothly extended in either direction, without snapping, when the mouse is moved left or right. It allows exact recording of the musician's arming/muting of patterns. - Unlike the \textbf{Grid Snap} of the pattern editor, the units of the song editor snap value are in fractions of a measure length. The following values are supported: @@ -202,7 +198,7 @@ \subsection{Song Editor / Top Panel} \textsl{1/1, 1/2, 1/4, 1/8, 1/16, and 1/32} Note that arming/muting can be done in the "names" panel using a - right-click on the pattern name. + \textsl{right-click} on the pattern name. Also note that changes that occur within the snap value will cause odd recording, so be sure to set the snap value low enough. @@ -232,7 +228,7 @@ \subsection{Song Editor / Top Panel} and a \textbf{TT} button to reset the transposition value to 0. Transposition ranges from -60 to +60, or five octaves either way. Transpostion is applied by setting the value, and then doing - a \texttt{Shift}-Left-click on each trigger that needs that + a \texttt{Shift-left-click} on each trigger that needs that transposition value. \itempar{L/R Loop}{song editor!play loop} @@ -249,8 +245,7 @@ \subsection{Song Editor / Top Panel} continues past the \textbf{R marker}. Note that these markers can be placed using Left and Right mouse clicks, respectively, in the time/measures ruler. - - Also note that, as of version 0.93.0, this button has been added to the main + Also note that this button has been added to the main window, and appears only in the "external" version of the song editor. Furthermore, the \textbf{L/R} markers can also be set in a pattern editor, where they can be used to focus in on a small section of notes. @@ -289,9 +284,9 @@ \subsection{Song Editor / Top Panel} points. The transposition value ranges from -60 to 0 to +60, in units of semitones. The button resets the value to 0. - To apply a transposition value, first set it in the spin-box. - Then carefully Shift-Left-click on the desired segment(s) to transpose. + Then carefully \textsl{shift-left-click} + on the desired segment(s) to transpose. A number with a plus-or-minus will appear at the left of the segment to indicate a non-zero transposition. The transposition value will be saved with the trigger when the song is @@ -304,7 +299,6 @@ \subsection{Song Editor / Measures Ruler} The measures ruler ("bar indicator", or "Time") consists of a \textsl{timeline} at the top and the \textbf{L marker} and \textbf{R marker} mentioned above. - The \textsl{measures ruler} is the ruled and numbered section at the top of the arrangement panel. It provides a place to put the left and right markers. In the \textsl{Seq24} documentation, it is called the "bar @@ -319,21 +313,23 @@ \subsection{Song Editor / Measures Ruler} This is useful for review. \item \textbf{In the lower half} of the time-line, the mouse pointer changes to a "finger" icon. - Left-clicking there then moves the "L" marker to that point. - Right-clicking there moves the "R" marker to that point. - ("R" will never precede "L", though). + \textsl{Left-clicking} there then moves the \textbf{L} + marker to that point. + \textsl{Right-clicking} there moves the \textbf{R} marker to that point. + (\textbf{R} will never precede \textbf{L}, though). If the \textbf{Loop} button in the main window is active, then - playback will loop between the "L" and "R" buttons. + playback will loop between the \textbf{L} and \textbf{R} buttons. This looping now works with both Live and Song modes. \end{itemize} \index{measures ruler!left-click} - Left-click in the bottom-half of the measures ruler to move and drop an + \textsl{Left-click} in the bottom-half of the + measures ruler to move and drop an \index{L anchor} \index{L marker} \textbf{L marker} (\textbf{L anchor}) on the measures ruler. \index{measures ruler!right-click} - Right-click in the bottom-half of the measures ruler to drop an + \textsl{Right-click} in the bottom-half of the measures ruler to drop an \index{R anchor} \index{R marker} \textbf{L marker} (\textbf{R anchor}) on the measures ruler. @@ -350,9 +346,10 @@ \subsection{Song Editor / Measures Ruler} \index{marker!mode} \index{marker!movement} - Another way to move the "L" and "R" markers has been added. + Another way to move the \textbf{L} and \textbf{R} markers has been added. To select which marker will move, click the upper half of the time - strip (otherwise, the "L" will move, prematurely) to give it keyboard focus. + strip (otherwise, the \textbf{L} will move, + prematurely) to give it keyboard focus. Then press the lower-case \index{keys!l} \texttt{l} key or the lower-case @@ -362,7 +359,8 @@ \subsection{Song Editor / Measures Ruler} Then press the \texttt{Left-Arrow} or \texttt{Right-Arrow} key to move the selected marker. Also included at the same level as the measures ruler are the buttons - "-", "0", and "+", which are used for vertical zoom, as described below. + \textbf{-}, \textbf{0}, and \textbf{+}, + which are used for vertical zoom, as described below. \subsection{Song Editor / Patterns (Names) Panel} \label{subsec:song_editor_patterns_panel} @@ -400,20 +398,21 @@ \subsection{Song Editor / Patterns (Names) Panel} The letter \textbf{M} is in a grey box if the track/pattern is muted via song playback, and a white (or colored) box if it is unmuted in song playback. - Left-clicking on the "M" (or the name of the pattern) + \textsl{Left-clicking} on the \textbf{M} (or the name of the pattern) mutes/unmutes the pattern. \index{left click} - Song muting is effected via a left-click on the pattern name. + Song muting is effected via a \textsl{left-click} on the pattern name. This is also useful in song-recording (where the triggers are recorded). \index{shift left click} - If the Shift key is held while left-clicking on the M or the pattern - name, then + If the Shift key is held while \textsl{left-clicking} + on the M or the pattern name, then the mute/unmute state of every other active pattern is toggled. This feature is useful for isolating a single track or pattern. \index{right click} Normally, one records song triggers using the grid buttons or MIDI control to turn patterns on and off. - One can also right-click on the pattern name during song-record and + One can also \textsl{right-click} on the pattern + name during song-record and thereby see the trigger(s) being created. \item \textbf{Empty Track}. Completely empty tracks (no track events or meta events) @@ -429,7 +428,7 @@ \subsection{Song Editor / Patterns (Names) Panel} \index{patterns column!left-click} \index{patterns column!ctrl-left-click} \index{song editor!muting} - Left-clicking on the pattern name or the "M" toggles the muting + \textsl{Left-clicking} on the pattern name or the \textbf{M} toggles the muting (arming) status of the track. It does the same thing if the \texttt{Ctrl} key is held at the same time. @@ -437,13 +436,15 @@ \subsection{Song Editor / Patterns (Names) Panel} \index{song editor!inverse muting} \index{song editor!solo} \index{shift-left-click solo} - Shift-left-clicking on the pattern name or the "M" button toggles the muting + \textsl{Shift-left-clicking} on the pattern name + or the \textbf{M} button toggles the muting (arming) status of \textsl{all other tracks} except the track that was selected. This action is useful for quickly listening to a single sequence in isoloation. \index{patterns column!right-click} - Right-clicking on the pattern name or the "M" button brings up the same + \textsl{Right-clicking} on the pattern name or + the \textbf{M} button brings up the same pattern editing menu as discussed in \sectionref{subsubsec:patterns_pattern_filled}. Recall that this context menu has the following entries: @@ -486,11 +487,12 @@ \subsubsection{Song Editor / Song Roll / Layout} keystrokes. \item \textbf{De-selection}. \index{song editor!section deselection} - Left-clicking or right-clicking in an empty area of the song roll + \textsl{Left-clicking} or \textsl{right-clicking} in + an empty area of the song roll will deselect the selection. \item \textbf{Selection Movement}. \index{song editor!selection movement} - If one grabs (left-click) inside + If one grabs (\textsl{left-click}) inside the pattern or pattern subsection, that item can be moved horizontally, as long as there is room. \item \textbf{Section Length ("handle")}. @@ -498,14 +500,15 @@ \subsubsection{Song Editor / Song Roll / Layout} \index{song editor!section length} The small squares in two corners of the patterns are the section "handles". - By grabbing a handle with a left-click, the handle can be moved + By grabbing a handle with a \textsl{left-click}, + the handle can be moved horizontally to either lengthen or shorten the pattern to the nearest snap position, if there is room to move in the desired direction. \item \textbf{Pattern Subsectioning}. \index{song editor!split pattern} \index{song editor!middle click} \index{pattern subsection} - A middle-click (or ctrl-left-click) + A \textsl{middle-click} (or \textsl{ctrl-left-click}) inside a pattern inserts a selection position marker in it, breaking the pattern into two equal pieces. We call each piece a \textsl{pattern subsection}. @@ -529,12 +532,12 @@ \subsubsection{Song Editor / Song Roll / Layout} \index{song editor!right-click-hold} \index{song editor!draw} \index{paint mode} - Right-click on the arrangement panel (roll) to enter + \textsl{Right-click} on the arrangement panel (roll) to enter paint mode, and hold the button. Paint mode does not work while the sequence is playing. Another way to turn on painting is to make sure that the performance editor piano roll has the - keyboard focus by left-clicking in it, then press the + keyboard focus by \textsl{left-clicking} in it, then press the \texttt{p} key to enter the paint mode, and \texttt{x} escape it. See \sectionref{subsubsec:song_editor_song_roll_keystrokes}. @@ -543,18 +546,20 @@ \subsubsection{Song Editor / Song Roll / Layout} \index{song editor!horizontal zoom} The song editor supports horizontal zoom in the piano roll. This feature is accessible via the "magnifying glass" buttons, and also - accessible via the keystrokes "z", "0", and "Z". + accessible via the keystrokes \textbf{z}, \textbf{0}, and \textbf{Z}. The zoom feature also modifies the time-line. \index{zoom} \index{song editor!vertical zoom} The song editor supports limited vertical zoom in the piano roll. - This feature is accessible via the "-", "0", and "+" buttons, and also - accessible via the keystrokes "v", "0", and "V". + This feature is accessible via the \textbf{-}, \textbf{0}, and + \textbf{+} buttons, and also + accessible via the keystrokes \textbf{v}, \textbf{0}, and \textbf{V}. \index{song editor!left-click-right-hold} \index{song editor!insert} - A left-click with a simultaneous right-click-hold inserts one copy of the + A \textsl{left-click} with a simultaneous + \textsl{right-click-hold} inserts one copy of the pattern. The inserted pattern shows up as a box with a tiny representation of the notes visible inside. Some patterns can be less than a measure in length, resulting in a tiny box. @@ -564,12 +569,13 @@ \subsubsection{Song Editor / Song Roll / Layout} and drag the mouse rightward. \index{song editor!middle-click} - Middle-click (or ctrl-left-click) on a trigger in a pattern row + \textsl{Middle-click} (or \textsl{ctrl-left-click}) + on a trigger in a pattern row to splits the trigger into two triggers. \index{pattern!split} \index{song editor!pattern subsection} This splits the pattern into two equal \textsl{pattern subsections}. - Each middle-click on the pattern adds a new selection position, + Each \textsl{middle-click} on the pattern adds a new selection position, halving the size of the subsections as more pattern subsections are added. The \texttt{allow\_snap\_split} option in the 'rc' file allows the split to be made at the nearest snap point instead of in the @@ -577,14 +583,16 @@ \subsubsection{Song Editor / Song Roll / Layout} \index{song editor!left-click} \index{song editor!selection} - When a pattern or a pattern subsection is left-clicked in the piano + When a pattern or a pattern subsection is + \textsl{left-clicked} in the piano roll, it is marked with a dark gray filling. It can then be moved horizontally if there is room, or be deleted or copied for later pasting. \index{song editor!right left click} \index{song editor!deletion} - When a right-left-click action is done in this gray area, the result + When a + \textsl{right-left-click} action is done in this gray area, the result is to \textsl{delete} that pattern section or subsection. \index{keys!delete} One can also hit the \texttt{Delete} key.