Package: fluidsynth
Version: 2.4.3+dfsg-4
Severity: minor
Tags: patch

   * What led up to the situation?

     Checking for defects with a new version

test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z < "man 
page"

  [Use "groff -e ' $' -e '\\~$' <file>" to find obvious trailing spaces.]

  ["test-groff" is a script in the repository for "groff"; is not shipped]
(local copy and "troff" slightly changed by me).

  [The fate of "test-nroff" was decided in groff bug #55941.]

   * What was the outcome of this action?


an.tmac:<stdin>:16: style: .TH missing fourth argument; consider 
package/project name and version (e.g., "groff 1.23.0")
troff:<stdin>:34: warning: trailing space in the line
troff:<stdin>:35: warning: trailing space in the line
troff:<stdin>:132: warning: ignoring escape character before 'T'
troff:<stdin>:256: warning: trailing space in the line
troff:<stdin>:283: warning: trailing space in the line
troff:<stdin>:286: warning: trailing space in the line
troff:<stdin>:300: warning: trailing space in the line


   * What outcome did you expect instead?

     No output (no warnings).

-.-

  General remarks and further material, if a diff-file exist, are in the
attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.12-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages fluidsynth depends on:
ii  init-system-helpers   1.68
ii  libc6                 2.40-7
ii  libfluidsynth3        2.4.3+dfsg-4
ii  libglib2.0-0t64       2.83.4-1
ii  libpipewire-0.3-0t64  1.2.7-1+b2
ii  libsdl2-2.0-0         2.32.2+dfsg-1
ii  libsystemd0           257.3-1

Versions of packages fluidsynth recommends:
pn  qsynth  <none>

fluidsynth suggests no packages.

-- no debconf information
Input file is fluidsynth.1

Output from "mandoc -T lint  fluidsynth.1": (shortened list)

      1 input text line longer than 80 bytes: If the channel falls...
      1 input text line longer than 80 bytes: Limits parameter 2 (...
      1 input text line longer than 80 bytes: Print out verbose me...
      1 input text line longer than 80 bytes: Prints out list of h...
      1 input text line longer than 80 bytes: Run fluidsynth with ...
      1 input text line longer than 80 bytes: The settings to be s...
      1 normalizing date format to: TH January 1, 2025
      1 undefined escape, printing literally: \T
      8 whitespace at end of input line

Remove trailing space with: sed -e 's/  *$//'

-.-.

Output from "test-nroff -mandoc -t -ww -z fluidsynth.1": (shortened list)

      1 ignoring escape character before 'T'
      6 trailing space in the line

Remove trailing space with: sed -e 's/  *$//'

-.-.

Remove space characters (whitespace) at the end of lines.
Use "git apply ... --whitespace=fix" to fix extra space issues, or use
global configuration "core.whitespace".

Number of lines affected is

13

-.-.

Wrong distance between sentences in the input file.

  Separate the sentences and subordinate clauses; each begins on a new
line.  See man-pages(7) ("Conventions for source file layout") and
"info groff" ("Input Conventions").

  The best procedure is to always start a new sentence on a new line,
at least, if you are typing on a computer.

Remember coding: Only one command ("sentence") on each (logical) line.

E-mail: Easier to quote exactly the relevant lines.

Generally: Easier to edit the sentence.

Patches: Less unaffected text.

Search for two adjacent words is easier, when they belong to the same line,
and the same phrase.

  The amount of space between sentences in the output can then be
controlled with the ".ss" request.

Mark a final abbreviation point as such by suffixing it with "\&".

Some sentences (etc.) do not begin on a new line.

Split (sometimes) lines after a punctuation mark; before a conjunction.

  Lines with only one (or two) space(s) between sentences could be split,
so latter sentences begin on a new line.

Use

#!/usr/bin/sh

sed -e '/^\./n' \
-e 's/\([[:alpha:]]\)\.  */\1.\n/g' $1

to split lines after a sentence period.
Check result with the difference between the formatted outputs.
See also the attachment "general.bugs"

38:SoundFont(R) 2 specifications. It can be used to render MIDI input or
39:MIDI files to audio.  The MIDI events are read from a MIDI device. The
43:the command line: 'fluidsynth soundfont.sf2'. fluidsynth will load the
45:default MIDI driver.  Once FluidSynth is running, it reads commands
46:from the stdin. There are commands to send MIDI events manually, to
47:load or unload SoundFonts, and so forth. All the available commands are
50:FluidSynth can also be used to play a list of MIDI files. Simply run
51:FluidSynth with the SoundFont and the list of MIDI files to play. In
53:events. Use the \-n option to deactivate MIDI input. If you also
63:The audio driver to use. "\-a help" to list valid options
105:The name of the midi driver to use. "\-m help" to list valid options.
144:The settings to be specified with \-o are documented in the 
fluidsettings.xml hopefully shipped with this distribution or online at 
https://www.fluidsynth.org/api/fluidsettings.xml . We recommend viewing this 
file in a webbrowser, favourably Firefox.
162:Unload a SoundFont. The number is the index of the SoundFont on the stack.
252:Limits parameter 1 (for example note number in a note events). Similar
256:Limits parameter 2 (for example velocity in a note event). Similar to 
router_chan 
272:channels. Regardless of the channel, the synthesizer plays the note on
300:SoundFont(R) is a registered trademark of E-mu Systems, Inc. 

-.-.

Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.
Add "\:" to split the string for the output, "\<newline>" in the source.  

Line 57, length 84

Run fluidsynth with the \-\-help option to check for changes in the list of 
options.

Line 135, length 94

Print out verbose messages about midi events (synth.verbose=1) as well as other 
debug messages

Line 144, length 250

The settings to be specified with \-o are documented in the fluidsettings.xml 
hopefully shipped with this distribution or online at 
https://www.fluidsynth.org/api/fluidsettings.xml . We recommend viewing this 
file in a webbrowser, favourably Firefox.

Line 151, length 90

Prints out list of help topics (type "help <topic>" to view details on 
available commands)

Line 249, length 85

If the channel falls into the window, it is multiplied by 'mul', then 'add' is 
added.

Line 256, length 82

Limits parameter 2 (for example velocity in a note event). Similar to 
router_chan 

-.-.

Put a parenthetical sentence, phrase on a separate line,
if not part of a code.
See man-pages(7), item "semantic newline".

fluidsynth.1:75:Audio file endian for fast rendering or aufile driver ("\-E 
help" for list)
fluidsynth.1:78:Load command configuration file (shell commands)
fluidsynth.1:111:Define a setting, \-o name=value ("\-o help" to dump current 
values)
fluidsynth.1:114:Audio file format for fast rendering or aufile driver ("\-O 
help" for list)
fluidsynth.1:117:Set MIDI port name (alsa_seq, coremidi drivers)
fluidsynth.1:132:Audio file type for fast rendering or aufile driver ("\T help" 
for list)
fluidsynth.1:151:Prints out list of help topics (type "help <topic>" to view 
details on available commands)
fluidsynth.1:193:Set the master gain (0 < gain < 5)
fluidsynth.1:224:Use n delay lines (default 3)
fluidsynth.1:252:Limits parameter 1 (for example note number in a note events). 
Similar
fluidsynth.1:256:Limits parameter 2 (for example velocity in a note event). 
Similar to router_chan 

-.-.

Space after an end of sentence.

fluidsynth.1:38:SoundFont(R) 2 specifications. It can be used to render MIDI 
input or
fluidsynth.1:39:MIDI files to audio.  The MIDI events are read from a MIDI 
device. The
fluidsynth.1:43:the command line: 'fluidsynth soundfont.sf2'. fluidsynth will 
load the
fluidsynth.1:45:default MIDI driver.  Once FluidSynth is running, it reads 
commands
fluidsynth.1:46:from the stdin. There are commands to send MIDI events 
manually, to
fluidsynth.1:47:load or unload SoundFonts, and so forth. All the available 
commands are
fluidsynth.1:50:FluidSynth can also be used to play a list of MIDI files. 
Simply run
fluidsynth.1:51:FluidSynth with the SoundFont and the list of MIDI files to 
play. In
fluidsynth.1:53:events. Use the \-n option to deactivate MIDI input. If you also
fluidsynth.1:63:The audio driver to use. "\-a help" to list valid options
fluidsynth.1:105:The name of the midi driver to use. "\-m help" to list valid 
options.
fluidsynth.1:144:The settings to be specified with \-o are documented in the 
fluidsettings.xml hopefully shipped with this distribution or online at 
https://www.fluidsynth.org/api/fluidsettings.xml . We recommend viewing this 
file in a webbrowser, favourably Firefox.
fluidsynth.1:162:Unload a SoundFont. The number is the index of the SoundFont 
on the stack.
fluidsynth.1:252:Limits parameter 1 (for example note number in a note events). 
Similar
fluidsynth.1:256:Limits parameter 2 (for example velocity in a note event). 
Similar to router_chan 
fluidsynth.1:272:channels. Regardless of the channel, the synthesizer plays the 
note on

-.-.

Put a subordinate sentence (after a comma) on a new line.

fluidsynth.1:45:default MIDI driver.  Once FluidSynth is running, it reads 
commands
fluidsynth.1:46:from the stdin. There are commands to send MIDI events 
manually, to
fluidsynth.1:47:load or unload SoundFonts, and so forth. All the available 
commands are
fluidsynth.1:54:want to deactivate the use of the shell, start FluidSynth with 
the \-i
fluidsynth.1:69:Turn the chorus on or off [0|1|yes|no, default = on]
fluidsynth.1:84:Set the master gain [0 < gain < 10, default = 0.2]
fluidsynth.1:111:Define a setting, \-o name=value ("\-o help" to dump current 
values)
fluidsynth.1:117:Set MIDI port name (alsa_seq, coremidi drivers)
fluidsynth.1:126:Turn the reverb on or off [0|1|yes|no, default = on]
fluidsynth.1:144:The settings to be specified with \-o are documented in the 
fluidsettings.xml hopefully shipped with this distribution or online at 
https://www.fluidsynth.org/api/fluidsettings.xml . We recommend viewing this 
file in a webbrowser, favourably Firefox.
fluidsynth.1:249:If the channel falls into the window, it is multiplied by 
'mul', then 'add' is added.
fluidsynth.1:272:channels. Regardless of the channel, the synthesizer plays the 
note on
fluidsynth.1:283:1 to CC 64 on the lower 8 MIDI channels, routes to ch 15) 

-.-.

Trailing space in a macro call.
Remove with "sed -i -e 's/  *$//'"

33:.RI [ options ] 
172:.B noteon channel key velocity 

-.-.

Output from "test-groff  -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z 
":

an.tmac:<stdin>:16: style: .TH missing fourth argument; consider 
package/project name and version (e.g., "groff 1.23.0")
troff:<stdin>:34: warning: trailing space in the line
troff:<stdin>:35: warning: trailing space in the line
troff:<stdin>:132: warning: ignoring escape character before 'T'
troff:<stdin>:256: warning: trailing space in the line
troff:<stdin>:283: warning: trailing space in the line
troff:<stdin>:286: warning: trailing space in the line
troff:<stdin>:300: warning: trailing space in the line

-.-.

Generally:

Split (sometimes) lines after a punctuation mark; before a conjunction.
--- fluidsynth.1        2025-03-07 19:42:16.844397865 +0000
+++ fluidsynth.1.new    2025-03-07 20:11:44.018676378 +0000
@@ -30,58 +30,73 @@
 FluidSynth \- a SoundFont synthesizer
 .SH SYNOPSIS
 .B fluidsynth
-.RI [ options ] 
-[ SoundFonts ] 
-[ midifiles ] 
+.RI [ options ]
+[ SoundFonts ]
+[ midifiles ]
 .SH DESCRIPTION
 \fBFluidSynth\fP is a real-time MIDI synthesizer based on the
-SoundFont(R) 2 specifications. It can be used to render MIDI input or
-MIDI files to audio.  The MIDI events are read from a MIDI device. The
-sound is rendered in real-time to the sound output device.
+SoundFont(R) 2 specifications.
+It can be used to render MIDI input or MIDI files to audio.
+The MIDI events are read from a MIDI device.
+The sound is rendered in real-time to the sound output device.
 .PP
 The easiest way to start the synthesizer is to give it a SoundFont on
-the command line: 'fluidsynth soundfont.sf2'. fluidsynth will load the
-SoundFont and read MIDI events from the default MIDI device using the
-default MIDI driver.  Once FluidSynth is running, it reads commands
-from the stdin. There are commands to send MIDI events manually, to
-load or unload SoundFonts, and so forth. All the available commands are
-discussed below.
+the command line:
+\&'fluidsynth soundfont.sf2'.
+fluidsynth will load the SoundFont
+and read MIDI events from the default MIDI device using the default MIDI
+driver.
+Once FluidSynth is running,
+it reads commands from the stdin.
+There are commands to send MIDI events manually,
+to load or unload SoundFonts,
+and so forth.
+All the available commands are discussed below.
 .PP
-FluidSynth can also be used to play a list of MIDI files. Simply run
-FluidSynth with the SoundFont and the list of MIDI files to play. In
-this case you might not want to open the MIDI device to read external
-events. Use the \-n option to deactivate MIDI input. If you also
-want to deactivate the use of the shell, start FluidSynth with the \-i
-option: 'fluidsynth \-ni soundfont.sf2 midifile1.mid midifile2.mid'.
+FluidSynth can also be used to play a list of MIDI files.
+Simply run FluidSynth with the SoundFont
+and the list of MIDI files to play.
+In this case you might not want to open the MIDI device to read external
+events.
+Use the \-n option to deactivate MIDI input.
+If you also want to deactivate the use of the shell,
+start FluidSynth with the \-i option:
+\&'fluidsynth \-ni soundfont.sf2 midifile1.mid midifile2.mid'.
 .PP
-Run fluidsynth with the \-\-help option to check for changes in the list of 
options.
+Run fluidsynth with the \-\-help option to check for changes in the list
+of options.
 .SH OPTIONS
 \fBfluidsynth\fP accepts the following options:
 
 .TP
 .B \-a, \-\-audio\-driver=[label]
-The audio driver to use. "\-a help" to list valid options
+The audio driver to use.
+"\-a help" to list valid options
 .TP
 .B \-c, \-\-audio\-bufcount=[count]
 Number of audio buffers
 .TP
 .B \-C, \-\-chorus
-Turn the chorus on or off [0|1|yes|no, default = on]
+Turn the chorus on or off
+[0|1|yes|no, default = on]
 .TP
 .B \-d, \-\-dump
 Dump incoming and outgoing MIDI events to stdout
 .TP
 .B \-E, \-\-audio\-file\-endian
-Audio file endian for fast rendering or aufile driver ("\-E help" for list)
+Audio file endian for fast rendering or aufile driver
+("\-E help" for list)
 .TP
 .B \-f, \-\-load\-config
-Load command configuration file (shell commands)
+Load command configuration file
+(shell commands)
 .TP
 .B \-F, \-\-fast\-render=[file]
 Render MIDI file to raw audio data and store in [file]
 .TP
 .B \-g, \-\-gain
-Set the master gain [0 < gain < 10, default = 0.2]
+Set the master gain
+[0 < gain < 10, default = 0.2]
 .TP
 .B \-G, \-\-audio\-groups
 Defines the number of LADSPA audio nodes
@@ -102,19 +117,23 @@ The number of midi channels [default = 1
 The number of stereo audio channels [default = 1]
 .TP
 .B \-m, \-\-midi\-driver=[label]
-The name of the midi driver to use. "\-m help" to list valid options.
+The name of the midi driver to use.
+"\-m help" to list valid options.
 .TP
 .B \-n, \-\-no\-midi\-in
 Don't create a midi driver to read MIDI input events [default = yes]
 .TP
 .B \-o
-Define a setting, \-o name=value ("\-o help" to dump current values)
+Define a setting, \-o name=value
+("\-o help" to dump current values)
 .TP
 .B \-O, \-\-audio\-file\-format
-Audio file format for fast rendering or aufile driver ("\-O help" for list)
+Audio file format for fast rendering or aufile driver
+("\-O help" for list)
 .TP
 .B \-p, \-\-portname=[label]
-Set MIDI port name (alsa_seq, coremidi drivers)
+Set MIDI port name
+(alsa_seq, coremidi drivers)
 .TP
 .B \-q, \-\-quiet
 Do not print welcome message or other informational output
@@ -123,16 +142,20 @@ Do not print welcome message or other in
 Set the sample rate
 .TP
 .B \-R, \-\-reverb
-Turn the reverb on or off [0|1|yes|no, default = on]
+Turn the reverb on or off
+[0|1|yes|no, default = on]
 .TP
 .B \-s, \-\-server
 Start FluidSynth as a server process
 .TP
 .B \-T, \-\-audio\-file\-type
-Audio file type for fast rendering or aufile driver ("\T help" for list)
+Audio file type for fast rendering or aufile driver
+("\-T help" for list)
 .TP
 .B \-v, \-\-verbose
-Print out verbose messages about midi events (synth.verbose=1) as well as 
other debug messages
+Print out verbose messages about midi events
+(synth.verbose=1)
+as well as other debug messages
 .TP
 .B \-V, \-\-version
 Show version of program
@@ -141,14 +164,22 @@ Show version of program
 Size of each audio buffer
 
 .SH SETTINGS
-The settings to be specified with \-o are documented in the fluidsettings.xml 
hopefully shipped with this distribution or online at 
https://www.fluidsynth.org/api/fluidsettings.xml . We recommend viewing this 
file in a webbrowser, favourably Firefox.
+The settings to be specified with \-o are documented in the
+fluidsettings.xml
+hopefully shipped with this distribution
+or online at
+https://www.fluidsynth.org/api/fluidsettings.xml .
+We recommend viewing this file in a webbrowser,
+favourably Firefox.
 
 .SH SHELL COMMANDS
 .TP
 .B GENERAL
 .TP
 .B help
-Prints out list of help topics (type "help <topic>" to view details on 
available commands)
+Prints out list of help topics
+(type "help <topic>"
+to view details on available commands)
 .TP
 .B quit
 Quit the synthesizer
@@ -159,7 +190,8 @@ Quit the synthesizer
 Load a SoundFont
 .TP
 .B unload number
-Unload a SoundFont. The number is the index of the SoundFont on the stack.
+Unload a SoundFont.
+The number is the index of the SoundFont on the stack.
 .TP
 .B fonts
 Lists the current SoundFonts on the stack
@@ -169,7 +201,7 @@ Print out the available instruments for
 .TP
 .B MIDI MESSAGES
 .TP
-.B noteon channel key velocity 
+.B noteon channel key velocity
 Send a note-on event
 .TP
 .B noteoff channel key
@@ -190,7 +222,8 @@ Print out the presets of all channels.
 .B AUDIO SYNTHESIS
 .TP
 .B gain value
-Set the master gain (0 < gain < 5)
+Set the master gain
+(0 < gain < 5)
 .TP
 .B interp num
 Choose interpolation method for all channels
@@ -221,7 +254,8 @@ Change reverb level
 Turn the chorus on or off
 .TP
 .B set synth.chorus.nr n
-Use n delay lines (default 3)
+Use n delay lines
+(default 3)
 .TP
 .B set synth.chorus.level num
 Set output level of each chorus line to num
@@ -235,8 +269,8 @@ Set chorus modulation depth to num (ms)
 .B MIDI ROUTER
 .TP
 .B router_default
-Reloads the default MIDI routing rules (input channels are mapped 1:1
-to the synth)
+Reloads the default MIDI routing rules
+(input channels are mapped 1:1 to the synth)
 .TP
 .B router_clear
 Deletes all MIDI routing rules.
@@ -246,14 +280,19 @@ Starts a new routing rule for events of
 .TP
 .B router_chan min max mul add
 Limits the rule for events on min <= chan <= max.
-If the channel falls into the window, it is multiplied by 'mul', then 'add' is 
added.
+If the channel falls into the window,
+it is multiplied by 'mul',
+then 'add' is added.
 .TP
 .B router_par1 min max mul add
-Limits parameter 1 (for example note number in a note events). Similar
-to router_chan.
+Limits parameter 1
+(for example note number in a note events).
+Similar to router_chan.
 .TP
 .B router_par2 min max mul add
-Limits parameter 2 (for example velocity in a note event). Similar to 
router_chan 
+Limits parameter 2
+(for example velocity in a note event).
+Similar to router_chan
 .TP
 .B router_end
 Finishes the current rule and adds it to the router.
@@ -267,10 +306,11 @@ router_begin note
 router_chan 0 7 0 15
 .TP
 router_end
-.TP
-Will accept only note events from the lower 8 MIDI
-channels. Regardless of the channel, the synthesizer plays the note on
-ch 15 (synthchannel=midichannel*0+15)
+.\".TP
+Will accept only note events from the lower 8 MIDI channels.
+Regardless of the channel,
+the synthesizer plays the note on ch 15
+(synthchannel=midichannel*0+15)
 .TP
 router_begin cc
 .TP
@@ -279,22 +319,23 @@ router_chan 0 7 0 15
 router_par1 1 1 0 64
 .TP
 router_add
-Configures the modulation wheel to act as sustain pedal (transforms CC
-1 to CC 64 on the lower 8 MIDI channels, routes to ch 15) 
+Configures the modulation wheel to act as sustain pedal
+(transforms CC 1 to CC 64 on the lower 8 MIDI channels,
+routes to ch 15)
 
 .SH AUTHORS
-Peter Hanappe <hana...@fluid-synth.org> 
-.br 
+Peter Hanappe <hana...@fluid-synth.org>
+.br
 Markus Nentwig <nent...@users.sourceforge.net>
-.br 
+.br
 Antoine Schmitt <a...@gratin.org>
-.br 
+.br
 Josh Green <jgr...@users.sourceforge.net>
-.br 
+.br
 Stephane Letz <l...@grame.fr>
-.br 
+.br
 Tom Moebert <tom[d0t]mbrt[ÄT]gmail[d0t]com>
 
 Please check the AUTHORS and THANKS files for all credits
 .SH DISCLAIMER
-SoundFont(R) is a registered trademark of E-mu Systems, Inc. 
+SoundFont(R) is a registered trademark of E-mu Systems, Inc.
  Any program (person), that produces man pages, should check the output
for defects by using (both groff and nroff)

[gn]roff -mandoc -t -ww -b -z -K utf8 <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  Any "autogenerator" should check its products with the above mentioned
'groff', 'mandoc', and additionally with 'nroff ...'.

  It should also check its input files for too long (> 80) lines.

  This is just a simple quality control measure.

  The "autogenerator" may have to be corrected to get a better man page,
the source file may, and any additional file may.

  Common defects:

  Not removing trailing spaces (in in- and output).
  The reason for these trailing spaces should be found and eliminated.

  "git" has a "tool" to point out whitespace,
see for example "git-apply(1)" and git-config(1)")

  Not beginning each input sentence on a new line.
Line length and patch size should thus be reduced.

  The script "reportbug" uses 'quoted-printable' encoding when a line is
longer than 1024 characters in an 'ascii' file.

  See man-pages(7), item "semantic newline".

-.-

The difference between the formatted output of the original and patched file
can be seen with:

  nroff -mandoc <file1> > <out1>
  nroff -mandoc <file2> > <out2>
  diff -d -u <out1> <out2>

and for groff, using

\"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - \"

instead of 'nroff -mandoc'

  Add the option '-t', if the file contains a table.

  Read the output from 'diff -d -u ...' with 'less -R' or similar.

-.-.

  If 'man' (man-db) is used to check the manual for warnings,
the following must be set:

  The option \"-warnings=w\"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT=\"-ww -b -z\"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-

Reply via email to