jamulus.1x 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. .\" Manual page for jamulus
  2. .\" Copyright (c) 2021
  3. .\" mirabilos <tg@debian.org>
  4. .\" Published under the same terms as jamulus itself.
  5. .\"-
  6. .Dd December 7, 2021
  7. .Dt JAMULUS "1x" "SlackBuilds.org"
  8. .Os jamulus-3.8.1
  9. .Sh NAME
  10. .Nm jamulus
  11. .Nd real-time collaborative music session
  12. .Sh SYNOPSIS
  13. .Nm
  14. .Op Fl 6 | Fl \-enableipv6
  15. .Op Fl c | Fl \-connect Ar address
  16. .Op Fl d | Fl \-discononquit
  17. .Op Fl e | Fl \-directoryserver Ar hostname
  18. .Op Fl e | Fl \-directoryfile Ar filename
  19. .Op Fl F | Fl \-fastupdate
  20. .Op Fl f | Fl \-listfilter Ar filter
  21. .Op Fl h | Fl \&? | Fl \-help
  22. .Op Fl i | Fl \-inifile Ar file
  23. .Op Fl j | Fl \-nojackconnect
  24. .Op Fl L | Fl \-licence
  25. .Op Fl l | Fl \-log Ar file
  26. .Op Fl M | Fl \-mutestream
  27. .Op Fl m | Fl \-htmlstatus Ar file
  28. .Op Fl n | Fl \-nogui
  29. .Op Fl o | Fl \-serverinfo Ar info
  30. .Op Fl p | Fl \-port Ar number
  31. .Op Fl P | Fl \-delaypan
  32. .Op Fl Q | Fl \-qos Ar value
  33. .Op Fl R | Fl \-recording Ar directory
  34. .Op Fl s | Fl \-server
  35. .Op Fl T | Fl \-multithreading
  36. .Op Fl t | Fl \-notranslation
  37. .Op Fl u | Fl \-numchannels Ar channels
  38. .Op Fl v | Fl \-version
  39. .Op Fl w | Fl \-welcomemessage Ar message
  40. .Op Fl z | Fl \-startminimized
  41. .Op Fl \-clientname Ar name
  42. .Op Fl \-ctrlmidich Ar MIDISetup
  43. .Op Fl \-mutemyown
  44. .Op Fl \-norecord
  45. .Op Fl \-serverpublicip Ar ip
  46. .Op Fl \-showallservers
  47. .Op Fl \-showanalyzerconsole
  48. .Sh DESCRIPTION
  49. .Nm jamulus ,
  50. a low-latency audio client and server, enables musicians to perform real-time
  51. .Dq jam
  52. sessions over the internet.
  53. It is available across multiple platforms, so participants of any field
  54. can communicate without specialist setup requirements.
  55. This is not restricted to music, of course; other use
  56. .Pq perhaps conferencing?
  57. is also possible.
  58. .Pp
  59. One participant starts
  60. .Nm
  61. in server mode, ideally on a dedicated server (virtual) machine;
  62. all participants start the (graphical) client which transmits audio
  63. to the server, receiving back a mixed stream.
  64. Use of a metronome is recommended.
  65. Clients should be connected using ethernet, not wireless, and use
  66. proper headphone and microphone connections, not Bluetooth.
  67. The server should run on a low-latency system, ideally not a VM.
  68. .Pp
  69. Running
  70. .Nm
  71. without any extra options launches the full graphical client.
  72. .Pp
  73. The options are as follows:
  74. .Bl -tag -width Ds
  75. .It Fl 6 | Fl \-enableipv6
  76. enable IPv6 addressing (IPv4 is always enabled).
  77. .It Fl c | Fl \-connect Ar address
  78. .Pq client mode only
  79. connect to the given server
  80. .Ar address
  81. .Pq Ar hostname Ns Op Ar :port
  82. at startup
  83. .It Fl d | Fl \-discononquit
  84. .Pq server mode only
  85. disconnect all clients on quit
  86. .It Fl e | Fl \-directoryserver Ar hostname
  87. .Pq server mode only
  88. make the server public and set its genre by setting the address
  89. of the directory server to use to
  90. .Ar hostname ;
  91. see also
  92. .Fl o ;
  93. to be a directory server, use
  94. .Dq Li localhost
  95. .It Fl F | Fl \-fastupdate
  96. .Pq server mode only
  97. use 64 samples frame size mode, which reduces latency if clients connect with
  98. .Dq enable small network buffers
  99. turned on; requires a faster CPU to avoid dropouts and uses more bandwidth to
  100. connected clients
  101. .It Fl f | Fl \-listfilter Ar filter
  102. .Pq directory server mode only
  103. whitelist servers allowed to register on the server list;
  104. .Ar filter
  105. must consist of semicolon-separated IP addresses
  106. .It Fl h | Fl \&? | Fl \-help
  107. display a short help text and exit immediately
  108. .It Fl i | Fl \-inifile Ar file
  109. .Pq client and non-headless server mode only
  110. override default initialisation file with
  111. .Ar file
  112. .It Fl j | Fl \-nojackconnect
  113. .Pq client mode only
  114. do not automatically connect to JACK
  115. .It Fl L | Fl \-licence
  116. .Pq server mode only
  117. require clients to accept the agreement shown in the welcome message
  118. .Pq use Fl w No to set the text
  119. before they are allowed joining
  120. .It Fl l | Fl \-log Ar file
  121. .Pq server mode only
  122. enable logging to
  123. .Ar file
  124. .It Fl M | Fl \-mutestream
  125. .Pq client mode only
  126. start in muted state
  127. .It Fl m | Fl \-htmlstatus Ar file
  128. .Pq server mode only
  129. write server status and list of connected clients, in HTML format, to
  130. .Ar file
  131. periodically
  132. .It Fl n | Fl \-nogui
  133. disable the GUI
  134. .It Fl o | Fl \-serverinfo Ar info
  135. .Pq public servers only
  136. set server location details, formatted as
  137. .Sm off
  138. .Xo
  139. .Ar name Li \&;
  140. .Ar city Li \&;
  141. .Ar locale
  142. .Xc
  143. .Sm on
  144. where
  145. .Ar locale
  146. is the numeric value of a
  147. .Li QLocale ;
  148. see
  149. .Pa https://doc.qt.io/qt\-5/qlocale.html#Country\-enum
  150. for a list
  151. .It Fl p | Fl \-port Ar number
  152. set the local UDP port to use to
  153. .Ar number
  154. .Pq default: 22124
  155. .Op Fl P | Fl \-delaypan
  156. .Pq server mode only
  157. start with delay panning enabled.
  158. .It Fl Q | Fl \-qos Ar value
  159. set the QoS value. Default is 128. Disable with 0.
  160. .It Fl R | Fl \-recording Ar directory
  161. .Pq server mode only
  162. enable recording
  163. .Pq but see Fl \-norecord
  164. storing tracks in
  165. .Ar directory
  166. .It Fl s | Fl \-server
  167. start in server mode
  168. .It Fl T | Fl \-multithreading
  169. .Pq server mode only
  170. use multithreading to make better use of multi-core CPUs and
  171. support more clients
  172. .It Fl t | Fl \-notranslation
  173. disable translations, use built-in English strings
  174. .It Fl u | Fl \-numchannels Ar channels
  175. .Pq server mode only
  176. set maximum number of channels
  177. .Pq and , therefore , users ;
  178. default is 10, maximum is 150
  179. .It Fl v | Fl \-version
  180. display version information and exit immediately
  181. .It Fl w | Fl \-welcomemessage Ar message
  182. .Pq server mode only
  183. show
  184. .Ar message
  185. .Pq may contain HTML and inline CSS
  186. to users on connect
  187. .It Fl z | Fl \-startminimized
  188. .Pq server mode only
  189. start with minimised window
  190. .It Fl \-clientname Ar name
  191. .Pq client mode only
  192. set window title and JACK client name
  193. .It Fl \-ctrlmidich Ar MIDISetup
  194. .Pq client mode only
  195. set MIDI controller channel to listen on, control number offset and
  196. consecutive CC numbers (channels); format:
  197. .Sm off
  198. .Xo
  199. .Ar channel
  200. .Op Li \&;f Ar off Li \&* Ar nchans
  201. .Op Li \&;p Ar off Li \&* Ar nchans
  202. .Op Li \&;s Ar off Li \&* Ar nchans
  203. .Op Li \&;m Ar off Li \&* Ar nchans
  204. .Xc
  205. .Sm on
  206. .Pp
  207. The first semicolon-separated element sets the MIDI channel
  208. .Nm
  209. listens on for control messages.
  210. The other elements specify the items to control by their
  211. first literal letter (f\ =\ volume fader, p\ =\ pan, m\ =\ mute,
  212. s\ =\ solo) directly followed by the offset (CC number) to start from,
  213. a literal asterisk, and the amount of consecutive CC numbers to assign.
  214. Fader strips in the mixer window are controlled in ascending order from
  215. left to right.
  216. .Nm
  217. does not provide feedback as to the current state of the Solo and Mute
  218. buttons so the controller must track and signal their state locally.
  219. .Op Fl e | Fl \-directoryfile Ar filename
  220. .Pq server mode only
  221. enable server list persistence, set file name.
  222. .It Fl \-mutemyown
  223. .Pq headless client only
  224. mute my channel in my personal mix
  225. .It Fl \-norecord
  226. .Pq server mode only
  227. do not automatically start recording even if configured with
  228. .Fl R
  229. .It Fl \-serverpublicip Ar ip
  230. .Pq server mode only
  231. configure public Legacy IP address when both the directory server
  232. and the actual server are situated behind the same NAT, so that
  233. clients can connect
  234. .It Fl \-showallservers
  235. .Pq client mode only
  236. show all registered servers in the serverlist regardless whether a ping
  237. to the server is possible or not
  238. .Pq debugging command
  239. .It Fl \-showanalyzerconsole
  240. .Pq client mode only
  241. show analyser console to debug network buffer properties
  242. .Pq debugging command
  243. .El
  244. .Pp
  245. Note that the debugging commands are not intended for general use.
  246. .Pp
  247. .Nm jamulus
  248. knows four modes of operation: client mode and three kinds of server
  249. .Pq private , public , directory .
  250. A private server is unlisted, clients can only connect if given
  251. the address (IP address and port).
  252. A public server will contact a directory server (whose address must be
  253. given at server startup) and show up in that server's list; clients
  254. can retrieve a list of public servers from the directory server.
  255. Several directory servers are operated by the Jamulus project; there is
  256. a directory server for each genre, which is how public servers are
  257. categorised into genres.
  258. .Sh SEE ALSO
  259. .Xr qjackctl 1
  260. .Bl -tag -width Ds
  261. .It Pa https://jamulus.io/wiki/
  262. The full Jamulus documentation.
  263. .El
  264. .Sh AUTHORS
  265. .An -nosplit
  266. .An mirabilos Aq tg@debian.org
  267. wrote this manual page for the Debian project,
  268. but it may be used elsewhere as well.
  269. .An B. Watson Aq yalhcru@gmail.com
  270. modified this man page slightly for the SlackBuilds.org project and
  271. jamulus 3.8.1.
  272. .Sh BUGS
  273. This manual page was derived from the source code and summarises
  274. some of the information from the website, but it could be more helpful.
  275. .Pp
  276. Some of the networking code seems to assume Legacy IP
  277. .Pq IPv4 .