From 91b10c2fc521b39118cbc574864f6a833545e155 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 12 Jan 2023 04:39:39 -0500 Subject: audio/jamulus: Updated for version 3.9.1. Signed-off-by: B. Watson Signed-off-by: Willy Sudiarto Raharjo --- audio/jamulus/jamulus.1x | 203 ++++++++++++++++++++++++--------------- audio/jamulus/jamulus.SlackBuild | 32 +++--- audio/jamulus/jamulus.info | 6 +- 3 files changed, 142 insertions(+), 99 deletions(-) diff --git a/audio/jamulus/jamulus.1x b/audio/jamulus/jamulus.1x index 85d49f8ec9..4f9f4b8933 100644 --- a/audio/jamulus/jamulus.1x +++ b/audio/jamulus/jamulus.1x @@ -1,9 +1,9 @@ .\" Manual page for jamulus .\" Copyright (c) 2021 .\" mirabilos -.\" Published under the same terms as jamulus itself. +.\" Published under the same terms as Jamulus itself. .\"- -.Dd December 7, 2021 +.Dd January 12, 2023 .Dt JAMULUS "1x" "SlackBuilds.org" .Os jamulus-3.8.1 .Sh NAME @@ -15,7 +15,6 @@ .Op Fl c | Fl \-connect Ar address .Op Fl d | Fl \-discononquit .Op Fl e | Fl \-directoryserver Ar hostname -.Op Fl e | Fl \-directoryfile Ar filename .Op Fl F | Fl \-fastupdate .Op Fl f | Fl \-listfilter Ar filter .Op Fl h | Fl \&? | Fl \-help @@ -27,26 +26,29 @@ .Op Fl m | Fl \-htmlstatus Ar file .Op Fl n | Fl \-nogui .Op Fl o | Fl \-serverinfo Ar info -.Op Fl p | Fl \-port Ar number .Op Fl P | Fl \-delaypan +.Op Fl p | Fl \-port Ar number .Op Fl Q | Fl \-qos Ar value .Op Fl R | Fl \-recording Ar directory .Op Fl s | Fl \-server .Op Fl T | Fl \-multithreading .Op Fl t | Fl \-notranslation -.Op Fl u | Fl \-numchannels Ar channels +.Op Fl u | Fl \-numchannels .Op Fl v | Fl \-version .Op Fl w | Fl \-welcomemessage Ar message .Op Fl z | Fl \-startminimized +.Op Fl \-centralserver Ar hostname .Op Fl \-clientname Ar name .Op Fl \-ctrlmidich Ar MIDISetup +.Op Fl \-directoryfile Ar file .Op Fl \-mutemyown .Op Fl \-norecord +.Op Fl \-serverbindip Ar ip .Op Fl \-serverpublicip Ar ip .Op Fl \-showallservers .Op Fl \-showanalyzerconsole .Sh DESCRIPTION -.Nm jamulus , +.Nm Jamulus , a low-latency audio client and server, enables musicians to perform real-time .Dq jam sessions over the internet. @@ -58,82 +60,99 @@ is also possible. .Pp One participant starts .Nm -in server mode, ideally on a dedicated server (virtual) machine; -all participants start the (graphical) client which transmits audio -to the server, receiving back a mixed stream. +in Server mode, ideally on a dedicated server (virtual) machine; +all participants start the (graphical) Client which transmits audio +to the Server, receiving back a mixed stream. Use of a metronome is recommended. Clients should be connected using ethernet, not wireless, and use proper headphone and microphone connections, not Bluetooth. -The server should run on a low-latency system, ideally not a VM. +The Server should run on a low-latency system, ideally not a VM. .Pp Running .Nm -without any extra options launches the full graphical client. +without any extra options launches the full graphical Client. .Pp The options are as follows: .Bl -tag -width Ds .It Fl 6 | Fl \-enableipv6 -enable IPv6 addressing (IPv4 is always enabled). +enable IPv6 support .It Fl c | Fl \-connect Ar address -.Pq client mode only -connect to the given server +.Pq Client mode only +connect to the given Server .Ar address .Pq Ar hostname Ns Op Ar :port at startup .It Fl d | Fl \-discononquit -.Pq server mode only -disconnect all clients on quit +.Pq Server mode only +disconnect all Clients on quit .It Fl e | Fl \-directoryserver Ar hostname -.Pq server mode only -make the server public and set its genre by setting the address -of the directory server to use to +.Pq Server mode only +Register the Server with the given Directory by setting the Directory Server Address to use to .Ar hostname ; see also .Fl o ; -to be a directory server, use +to be a Directory Server, use .Dq Li localhost .It Fl F | Fl \-fastupdate -.Pq server mode only -use 64 samples frame size mode, which reduces latency if clients connect with +.Pq Server mode only +use 64 samples frame size mode, which reduces latency if Clients connect with .Dq enable small network buffers turned on; requires a faster CPU to avoid dropouts and uses more bandwidth to -connected clients +connected Clients +.It Fl \-jsonrpcsecretfile Ar file +(Server mode only) +Set the path to a text +.Ar file +containing an authentication string for obtaining access to the JSON-RPC API. +This option is required when +.Fl \-jsonrpcport +is used. +.It Fl \-jsonrpcport Ar port +(Server mode only) +Enables JSON-RPC API server to control the application, set the TCP +.Ar port +number. +This API is +.Em experimental +and may change. +It is only accessible from localhost. +Please refer to the JSON-RPC API Documentation. .It Fl f | Fl \-listfilter Ar filter -.Pq directory server mode only -whitelist servers allowed to register on the server list; +.Pq Directory mode only +whitelist which Servers are allowed to register on the server list; .Ar filter must consist of semicolon-separated IP addresses .It Fl h | Fl \&? | Fl \-help display a short help text and exit immediately .It Fl i | Fl \-inifile Ar file -.Pq client and non-headless server mode only +.Pq Client and non-headless Server mode only override default initialisation file with .Ar file .It Fl j | Fl \-nojackconnect -.Pq client mode only +.Pq Client mode only do not automatically connect to JACK .It Fl L | Fl \-licence -.Pq server mode only -require clients to accept the agreement shown in the welcome message +.Pq Server mode only +require Clients to accept the agreement shown in the welcome message .Pq use Fl w No to set the text before they are allowed joining .It Fl l | Fl \-log Ar file -.Pq server mode only +.Pq Server mode only enable logging to .Ar file .It Fl M | Fl \-mutestream -.Pq client mode only +.Pq Client mode only start in muted state .It Fl m | Fl \-htmlstatus Ar file -.Pq server mode only -write server status and list of connected clients, in HTML format, to +.Pq Server mode only +write Server status and list of connected Clients, in HTML format, to .Ar file periodically .It Fl n | Fl \-nogui disable the GUI .It Fl o | Fl \-serverinfo Ar info -.Pq public servers only -set server location details, formatted as +.Pq Registered Servers only +set Server location details, formatted as .Sm off .Xo .Ar name Li \&; @@ -148,50 +167,58 @@ is the numeric value of a see .Pa https://doc.qt.io/qt\-5/qlocale.html#Country\-enum for a list +.It Fl P | Fl \-delaypan +.Pq Server mode only +start with delay panning enabled .It Fl p | Fl \-port Ar number set the local UDP port to use to .Ar number .Pq default: 22124 -.Op Fl P | Fl \-delaypan -.Pq server mode only -start with delay panning enabled. .It Fl Q | Fl \-qos Ar value -set the QoS value. Default is 128. Disable with 0. -.It Fl R | Fl \-recording Ar directory -.Pq server mode only +set QoS +.Ar value +.Pq iptos byte +to use +.Pq default: 128 +.It Fl R | Fl \-recording Ar Directory +.Pq Server mode only enable recording .Pq but see Fl \-norecord storing tracks in -.Ar directory +.Ar Directory .It Fl s | Fl \-server -start in server mode +start in Server mode .It Fl T | Fl \-multithreading -.Pq server mode only +.Pq Server mode only use multithreading to make better use of multi-core CPUs and -support more clients +support more Clients .It Fl t | Fl \-notranslation disable translations, use built-in English strings -.It Fl u | Fl \-numchannels Ar channels -.Pq server mode only +.It Fl u | Fl \-numchannels +.Pq Server mode only set maximum number of channels .Pq and , therefore , users ; default is 10, maximum is 150 .It Fl v | Fl \-version display version information and exit immediately .It Fl w | Fl \-welcomemessage Ar message -.Pq server mode only +.Pq Server mode only show .Ar message .Pq may contain HTML and inline CSS to users on connect .It Fl z | Fl \-startminimized -.Pq server mode only +.Pq Server mode only start with minimised window +.It Fl \-centralserver Ar hostname +.Pq Server mode only +deprecated alias for +.Fl \-directoryserver .It Fl \-clientname Ar name -.Pq client mode only +.Pq Client mode only set window title and JACK client name .It Fl \-ctrlmidich Ar MIDISetup -.Pq client mode only +.Pq Client mode only set MIDI controller channel to listen on, control number offset and consecutive CC numbers (channels); format: .Sm off @@ -216,62 +243,78 @@ left to right. .Nm does not provide feedback as to the current state of the Solo and Mute buttons so the controller must track and signal their state locally. -.Op Fl e | Fl \-directoryfile Ar filename -.Pq server mode only -enable server list persistence, set file name. +.It Fl \-directoryfile Ar file +.Pq Directory mode only +remember registered Servers even if the Directory is restarted .It Fl \-mutemyown -.Pq headless client only +.Pq headless Client only mute my channel in my personal mix .It Fl \-norecord -.Pq server mode only +.Pq Server mode only do not automatically start recording even if configured with .Fl R +.It Fl \-serverbindip Ar ip +.Pq Server mode only +configure Legacy IP address to bind to .It Fl \-serverpublicip Ar ip -.Pq server mode only -configure public Legacy IP address when both the directory server -and the actual server are situated behind the same NAT, so that -clients can connect +.Pq Server mode only +configure public legacy IP address when both the Directory Server +and the actual Server are situated behind the same NAT, so that +Clients can connect .It Fl \-showallservers -.Pq client mode only -show all registered servers in the serverlist regardless whether a ping -to the server is possible or not +.Pq Client mode only +show all registered Servers in the serverlist regardless whether a ping +to the Server is possible or not .Pq debugging command .It Fl \-showanalyzerconsole -.Pq client mode only +.Pq Client mode only show analyser console to debug network buffer properties .Pq debugging command .El .Pp Note that the debugging commands are not intended for general use. .Pp -.Nm jamulus -knows four modes of operation: client mode and three kinds of server -.Pq private , public , directory . -A private server is unlisted, clients can only connect if given +.Nm Jamulus +knows four modes of operation: Client mode and three kinds of Server +.Pq Unregistered, Registered, Directory. +A Unregistered Server is unlisted, Clients can only connect if given the address (IP address and port). -A public server will contact a directory server (whose address must be -given at server startup) and show up in that server's list; clients -can retrieve a list of public servers from the directory server. -Several directory servers are operated by the Jamulus project; there is -a directory server for each genre, which is how public servers are -categorised into genres. +A Registered Server will contact a Directory (whose address must be +given at Server startup) and show up in that Server's list; Clients +can retrieve a list of Registered Servers from the Directory Server. +Several Registered Directories are operated by the Jamulus project; +there is a Directory for each genre, which is how Registered Jamulus +Servers are categorised into genres. .Sh SEE ALSO .Xr qjackctl 1 .Bl -tag -width Ds -.It Pa https://jamulus.io/wiki/ -The full Jamulus documentation. +.It Pa https://jamulus.io/wiki/Software\-Manual +online handbook +.It Pa https://jamulus.io/wiki/FAQ +frequently asked questions +.It Pa https://jamulus.io/wiki/Running\-a\-Server +documentation on Server configuration and types +.It Pa https://jamulus.io/wiki/Server\-Linux#running\-in\-registered\-mode +current list of Directory Servers operated by the Jamulus project, +controlling the +.Dq genre +.It Pa https://jamulus.io/wiki/Tips\-Tricks\-More +verbose +.Fl \-ctrlmidich +documentation and other more or less useful information +.It Pa https://github.com/jamulussoftware/jamulus/blob/master/docs/JSON\-RPC.md +JSON-RPC API Documentation (see +.Fl \-jsonrpcport +above) .El .Sh AUTHORS .An -nosplit .An mirabilos Aq tg@debian.org wrote this manual page for the Debian project, but it may be used elsewhere as well. -.An B. Watson Aq urchlay@slackware.uk -modified this man page slightly for the SlackBuilds.org project and -jamulus 3.8.1. .Sh BUGS This manual page was derived from the source code and summarises some of the information from the website, but it could be more helpful. .Pp -Some of the networking code seems to assume Legacy IP +Some of the networking code assumes Legacy IP .Pq IPv4 . diff --git a/audio/jamulus/jamulus.SlackBuild b/audio/jamulus/jamulus.SlackBuild index 34ff85be25..4b997610bc 100644 --- a/audio/jamulus/jamulus.SlackBuild +++ b/audio/jamulus/jamulus.SlackBuild @@ -6,6 +6,7 @@ # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. +# 20230112 bkw: update for v3.9.1. # 20211207 bkw: # - update for v3.8.1. # - add 'headless' option to SERVERONLY=yes config. @@ -16,7 +17,7 @@ cd $(dirname $0) ; CWD=$(pwd) PRGNAM=jamulus -VERSION=${VERSION:-3.8.1} +VERSION=${VERSION:-3.9.1} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -101,41 +102,40 @@ make install INSTALL_ROOT=$PKG # binary already stripped. -# Man page borrowed from Debian and modified slightly (since they -# don't use 'noupcasename', their binary is called Jamulus). +# Man page taken from the sourceand modified slightly. # Had to make the man page a "1x" instead of "1": It uses BSD macros # (see groff_mdoc(7)). If I made it a "1" man page, it would say # "BSD General Commands Manual" unconditionally (no way to force it # to say "SlackBuilds.org" or even "General Commands Manual"). mkdir -p $PKG/usr/man/man1 gzip -9c < $CWD/$PRGNAM.1x > $PKG/usr/man/man1/$PRGNAM.1x.gz +rm -rf $PKG/usr/share/man # original page (in wrong place) if [ "${SERVERONLY:-no}" != "yes" ]; then - # 'make install' puts the SVG icons in the wrong place. also the only - # png icon provided is 512x512, ludicrously large. + # The only png icon provided is 512x512, ludicrously large, make smaller ones. + # Note to self: use rsvg-convert rather than ImageMagick's convert, because + # IM behaves differently depending on whether inkscape is installed. It + # wouldn't really hurt anything, I just want to be consistent. HICOLOR=$PKG/usr/share/icons/hicolor/ - mkdir -p $HICOLOR/scalable/apps - mv $HICOLOR/512x512/apps/*.svg $HICOLOR/scalable/apps + ICNAME=io.jamulus.jamulus - CVT="convert -background none" for px in 16 32 48 64 128; do size=${px}x${px} dir=$HICOLOR/$size/apps mkdir -p $dir - $CVT -resize $size distributions/$PRGNAM.svg $dir/$PRGNAM.png - $CVT -resize $size distributions/$PRGNAM-server.svg $dir/$PRGNAM-server.png + CVT="rsvg-convert --width=$px --height=$px" + $CVT src/res/$ICNAME.svg > $dir/$ICNAME.png + $CVT src/res/${ICNAME}server.svg > $dir/${ICNAME}server.png done mkdir -p $PKG/usr/share/pixmaps - ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png + ln -s ../icons/hicolor/48x48/apps/$ICNAME.png $PKG/usr/share/pixmaps/$PRGNAM.png fi -# NEWS is a 0-byte placeholder in 3.4.3. +# NEWS is a 0-byte placeholder in 3.4.3... and nonexistent in 3.9.1 mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a \ - COPYING ChangeLog CONTRIBUTING.md README.md \ - SECURITY.md RELEASE-PROCESS.md TRANSLATING.md \ - $PKG/usr/doc/$PRGNAM-$VERSION +cp -a COPYING ChangeLog CONTRIBUTING.md README.md SECURITY.md \ + $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild # Include our own (hopefully) helpful hints for servers. diff --git a/audio/jamulus/jamulus.info b/audio/jamulus/jamulus.info index 948f0941da..bb162de233 100644 --- a/audio/jamulus/jamulus.info +++ b/audio/jamulus/jamulus.info @@ -1,8 +1,8 @@ PRGNAM="jamulus" -VERSION="3.8.1" +VERSION="3.9.1" HOMEPAGE="https://jamulus.io/" -DOWNLOAD="https://github.com/jamulussoftware/jamulus/archive/r3_8_1/jamulus-r3_8_1.tar.gz" -MD5SUM="1d4fe75560bacdf18987fdbd92260dec" +DOWNLOAD="https://github.com/jamulussoftware/jamulus/archive/r3_9_1/jamulus-r3_9_1.tar.gz" +MD5SUM="9c529cbc90824d5c891100b8c0d335aa" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="jack" -- cgit v1.2.3-65-gdbad