jamulus.1x 9.5 KB

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