Giter Club home page Giter Club logo

jamulussoftware / jamulus Goto Github PK

View Code? Open in Web Editor NEW
979.0 32.0 220.0 37.77 MB

Jamulus enables musicians to perform real-time jam sessions over the internet.

Home Page: https://jamulus.io

License: Other

QMake 0.78% C++ 25.05% Makefile 0.47% Perl 0.28% C 65.14% Assembly 0.40% Objective-C 0.06% Shell 1.32% M4 0.87% CSS 0.38% HTML 0.90% Batchfile 0.02% NSIS 1.21% CMake 0.92% Python 0.79% Objective-C++ 0.34% PowerShell 0.25% Roff 0.19% Meson 0.66%
audio jam-sessions opus internet realtime low-latency-audio jamulus online-jamming

jamulus's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jamulus's Issues

Problems when running client and server simultaneously

Both I and my friend have had the same problem when trying to run the Jamulus client and server simultaneously on a Mac on a home network. The client can connect to the server just fine. We do port forwarding on our home router so that the other person can connect in remotely. At first the remote connection seems to work fine as well. But after a short period of time (less than a minute), the remote client connection goes silent, only occasionally letting through a very short burst of sound. I'm sorry to file a bug with so little solid documentation, but it happened relatively reliably. When I ran only the server and not the client, the remote connection appeared to work fine. So I suspect some kind of interaction between the client and server, but don't really know. We were both running relatively modern versions of Jamulus, installed between a month and a week ago.

Issue with server install instructions

Good Day

I tried installing the headless server software as recommended at https://github.com/corrados/jamulus/wiki/Running-a-Server
However, I am experiencing the same issue as detailed here
https://sourceforge.net/p/llcon/discussion/server/thread/3e4035ff18/
The problem is quite simple, the line "ExecStart=/usr/local/bin/Jamulus ..." should read "ExecStart=/usr/local/bin/Jamulus/Jamulus ..."
The instructions tell you to make a jamulus directory for the binary file but the jamulus.service configuration file points to the folder instead of the binary

Have a good day

Mute button for own audio

Consider having a mute button to mute your own audio that is being sent up to the server. There is a mute button on your own channel strip but that is just to mute your sound that you are hearing. Your audio is still being sent up to the server for other people to hear it.

Additional Skin for the Main Window

@pljones and @gilgongo: I have a nice new project for you if you like. Right now we have the "normal" and "fancy" stile. Instead of a check box we could introduce a combo box with {normal, fance, nice ;-)} options. There are plenty of nice GUIs out there, e.g. the Ardour style:
grafik
Or others. My idea would be that @gilgongo is the designer and @pljones does the coding. Regarding the design, you could integrate all the requirements for color-blindness, contrast, etc. You could also incorporate feedback from the community. Regarding the coding, @pljones it would be great to discuss the details with me. I already have some ideas how to implement that.

Are you both interested?

Diagramming Jamulus

I've had a go at trying to explain the basic Jamulus configuration in diagram form with a view to putting this on the wiki for non-technical users.

EDIT: Following discussions below, here's the latest versions

BTW I'm using this to make the diagrams the basic version of which is free for non-commercial use and lets you save the files externally. There might be a better one though. It was just the first I found on Google.

Overview

For people who just need to get the general idea:

Overview

Public Server At Home

PublicServer

(I was trying to keep the diagrams wide rather than deep so they wouldn't need too much scrolling on the page, but I might move the central server down a bit so the signal path can be straight like it is in the diagram below)

Private Server At Home

PrivateServer

Server list doesn't show up in MacOSX

Server list doesn't show up in MacOSX.
I already tried reinstalling the app and supposedly deleting all service files, but even though when I open the app my profile and config still show up the same settings I add before.

Jamulus User Survey?

If we knew more about how people were using Jamulus, would we do things differently?

Knowing more about how Jamulus is being used might might help uncover mis-understandings, structure the documentation better, as well as possibly evolve the functionality of the software.

I've created a draft survey here with some initial questions. I'm thinking mostly from the point of view of improving the documentation, but anything we can ask that we think we can act on, the better.

Please don't submit real answers yet! This is still under construction!

build failure on debian - error: uninitialized const ‘iNsDelay’

Compiling error with:

$ git show -s
commit bd111c3abc22b2d2b6f5634f4b9b77a6d20eef4d
Author: Volker Fischer <[email protected]>
Date:   Sun Apr 5 17:35:40 2020 +0200

    some code cleanup

on

$ uname -a
Linux 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linuxadmin 

Performed these steps on AWS instance:

$ sudo apt update
$ sudo apt upgrade
.
perform reboot
.
$ sudo apt install build-essential
$ sudo apt install libqt4-dev
$ sudo apt-get install libjack-jackd2-dev
$ mkdir GitHub
$ cd GitHub/
$ mkdir jamulus
$ sudo apt-get install git
$ git clone https://git.code.sf.net/p/llcon/jamulus
$ cd jamulus/
$ qmake "CONFIG+=nosound" Jamulus.pro 
$ make clean
$ make

after a few seconds:

g++ -c -m64 -pipe -std=c++11 -O2 -D_REENTRANT -Wall -W -DAPP_VERSION=\"3.4.6git\" -DOPUS_BUILD -DUSE_ALLOCA -DCUSTOM_MODES -D_REENTRANT -DHAVE_LRINTF -DHAVE_STDINT_H -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -Isrc -Ilibs/opus/include -Ilibs/opus/celt -Ilibs/opus/silk -Ilibs/opus/silk/float -I. -I. -o server.o src/server.cpp

src/server.cpp: In constructor ‘CHighPrecisionTimer::CHighPrecisionTimer(bool)’:
src/server.cpp:121:20: error: uninitialized const ‘iNsDelay’ [-fpermissive]
     const uint64_t iNsDelay;
                    ^~~~~~~~
In file included from src/server.h:36:0,
                 from src/server.cpp:25:
src/global.h:121:41: error: assignment of read-only variable ‘iNsDelay’
 #define SYSTEM_SAMPLE_RATE_HZ           48000 // Hz
                                         ^

src/server.cpp:126:31: note: in expansion of macro ‘SYSTEM_SAMPLE_RATE_HZ’
                    (uint64_t) SYSTEM_SAMPLE_RATE_HZ; // in ns
                               ^~~~~~~~~~~~~~~~~~~~~

src/global.h:121:41: error: assignment of read-only variable ‘iNsDelay’
 #define SYSTEM_SAMPLE_RATE_HZ           48000 // Hz
                                         ^

src/server.cpp:131:31: note: in expansion of macro ‘SYSTEM_SAMPLE_RATE_HZ’
                    (uint64_t) SYSTEM_SAMPLE_RATE_HZ; // in ns
                               ^~~~~~~~~~~~~~~~~~~~~
Makefile:1672: recipe for target 'server.o' failed
make: *** [server.o] Error 1

FYI:

$ g++ --version
g++ (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Fix Wave file header lengths

I noticed when using ffmpeg to process the files that the headers were wrong (it issued a warning - looking inside showed the dummy 0xffffffff values not overwritten).

Here's the fix:
#4

Audio delay and Server recording Question

Hello.
Thanks for Jamulus is a great software.
I want to ask:
I'm using Jamulus with a local server and two client myself (A) with overall delay 20ms and a remote user (B) 60ms delay. With jitter on auto. 5.33 ms buffer delay with jack both linux software and os.
We're having issues because I hear B with delay and vice versa. We can play but sometimes we struggle cause A is waiting for B and vice versa and the time of the song drops.
The recording files are almost perfect no scratches in the sound or delay.
How is possible the we hear sound with delay and sometimes scratches but the recording section is in sync?
Thanks, Bye Luca
Screenshot from 2020-04-13 00-22-49

Maybe add a second licence choice for the server

This issue has been migrated from Sourceforge. Created: 2015-02-05
Creator: Volker Fischer

Right now only the CC licence is available. Maybe it makes sense to offer a second choice.
Discussion

Volker Fischer - 2015-03-13

    Priority: 5 --> 2
  

Volker Fischer - 2017-10-08

    status: open --> closed
  

Volker Fischer - 2017-10-08

Nobody is using the CC licence feature anyway, so no need to add another one which is then also not used by anyone...

Peter L Jones - 2019-07-06

I am :)

I'd have rather not had to have the NC version but that's not a major issue for me.

Now the recording feature is there, it does become more important, as the recorded media are subject to copyright of the individual contributors.

(There are probably also GDPR issues... Hm.)

Jamulus crash when history file is given

This issue has been migrated from Sourceforge. Created 28-03-2020

The version 3.4.4 seems to crash when history file is provided:

Jamulus -n -s -p 22124 -l /jam/jamulus.log -y /jam/history.jpg
- no GUI mode chosen
- server mode chosen
- selected port number: 22124
- logging file name: /jam/jamulus.log
- history file name: /jam/history.jpg
- welcome message: Wellcome to Jamulus docker server.
Qt5 requires a windowing system to paint a JPEG image; image will use SVG
AHistoryGraph::Start ( /jam/history.jpg )

This behaviour is reproduced on Docker image: probably it missing some dependencies.

Volker 29-03-2020: pljones has changed the history graph recently so that it can use SVG, see #6. I hope he can give you support on this.

Volker 29-03-2020: SVG uses QXmlStreamWriter. Does this need a special library? Do you know this?
Do you have an error call stack available to see where it crashes?

Sample Rate choice OSX / Jack Audio Toolkit Integration

Hello,

First let me say that I haven't got any problems to compile the project and I have to say that it is clear like water. (I love QT)

Well actually it is not an issue but a request
All my projects are saved in 44100Hz and default value of Jamulus is 48000, it could be better if we could choose the sample rate.

Thanks for the great job !

Add support for IPv6

Hi,
I'm trying to use Jamulus with my own dedicated server in both ipv4+ipv6 stack.

When I try to connect to the DNS with A and AAAA record, nothing happens. I dont see any packets sent from my client, and on my server (with wireshark).
When I use the IPv4 directly, all is working.
When I use the IPv6 directly, I see my client sending a lot of packets to 127.0.0.1:22124

Is there something wrong on my setup or on the client part regarding IPv6 ?

I'm using Jamulus 3.4.4 on Archlinux
Thanks

More information in Jamulus client about failed connections

This issue has been migrated from Sourceforge. Created: 2020-03-30
Creator: Dan Koloski

My experience is that MAC OS Jamulus clients don't deliver any obvious message when they are unable to connect to a server (I have not tried a Windows client).

Symptom: There is no visible error, just no chat welcome message appears and there is no visual representation of user's track (or any other tracks) in the mixer, but the server name still appears at the top of the mixer in the UI and the Connect button is still toggled as if connected. For me, this seems to happen when attempting to connect to any server that doesn't yet have a ping time established, as well as every time I've tried to connect to a private server directly via IP.

Suggestion: It would be ideal to

  1. give a more obvious message that the connection was unsuccessful
  2. to reset the Connect button
  3. remove the server name from the UI above the mixer, and
  4. tell the users what they can do about it. For example: "Connection to [servername] failed. Unable to establish a UDP connection, which is required for streaming audio. For tips on how to resolve this issue, visit [URL or support article]."

Channel pan

Hi!! Congratulations for the magnificent work done so far, this software is a salvation for us all!!
I'd like to share some ideas.
I wondered if by chance in the TODO list there is the possibility of:

  • creating a pan knob/fader for each client/channel to optimize stereo listening
  • vst efx implementation

Thanks!

Input threshold for -R?

It appears that -R starts recording on the first connection and ends after the last connection has ended.

If a connection is making very little sound, it still uses quite a lot of disk space (a user connected to my server for several hours and used over 1Gb of disk space while only producing a slight hum the whole time).

Would it be useful to only start server recording over a certain volume so that disk space isn't wasted?

Commit 8fd59dd93f399b1657e68fcc2e37bbf5d2f23796 breaks linux build

Commit #8fd59dd seems to have introduced a change (undeclared QRegularExpressionMatchIterator) that cases a build error on Debian/Qt4:

g++ -c -m64 -pipe -std=c++11 -O2 -D_REENTRANT -Wall -W -DAPP_VERSION=\"3.4.8git\" -DOPUS_BUILD -DUSE_ALLOCA -DCUSTOM_MODES -D_REENTRANT -DHAVE_LRINTF -DHAVE_STDINT_H -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -Isrc -Ilibs/opus/include -Ilibs/opus/celt -Ilibs/opus/silk -Ilibs/opus/silk/float -I. -I. -o connectdlg.o src/connectdlg.cpp
src/connectdlg.cpp: In member function ‘void CConnectDlg::SetServerList(const CHostAddress&, const CVector<CServerInfo>&)’:
src/connectdlg.cpp:329:17: error: ‘QRegularExpressionMatchIterator’ was not declared in this scope
                 QRegularExpressionMatchIterator reMatchIt = QRegularExpression ( "[A-Z][^A-Z]*" ).globalMatch ( strCountryToString );
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/connectdlg.cpp:331:25: error: ‘reMatchIt’ was not declared in this scope
                 while ( reMatchIt.hasNext() )
                         ^~~~~~~~~
Makefile:1544: recipe for target 'connectdlg.o' failed
make: *** [connectdlg.o] Error 1

Android support

This issue has been migrated from Sourceforge. Created: 2015-12-13
Creator: Volker Fischer

Add support for the Android operating system. The software can already be compiled for Android but the audio interface does not work right now. So the first step is to finish the audio interface implementation. As a second step, all GUI functionality must be checked that it is possible to use it with a touch screen only.

Store Jack connections

This issue has been migrated from Sourceforge. Created: 2015-03-13
Creator: Volker Fischer

Right now we always make auto connections to the default inputs and outputs of the system. It would be better if the user changes the connections to store the new connections and if they are available at Jamulus startup then reconnect them. If not, then use the system default as is done right now.

Server Status

I just realised this is a bit of a problem.

If I display the server status that's written to the html file, it shows the name I've asked it to show, plus to server internal port. Ideally, the value would be stored without the port number (internal and external are likely to differ) - all that's wanted is the server status.

Very low priority (I've fixed it in my javascript processing).

Problem with Central Server listing limit of 200 servers

The problem with the 200 server limit is that somebody sets up a public server, but neither they nor their bandmates can see it listed because the central server is full at the time. And with so many servers being registered and few leaving, they may never see it listed.

But with no indication of the real problem, they then think they have a technical issue with their setup,. So they play with port forwarding and firewalls, post on the forums, etc. until they eventually conclude they need to set up a private server. At which point they they might get other problems, post on the forums about port forwarding, ISP issues, etc.

Is it worth addressing this issue, and if so, how (other than raising the limit)?

Server names list ordering feature

Hi all.

The different lines in the server names list (see below) are moving fast which is hard when you're searching for a server name, or in which server your musician mate is, or where is the server,...
servername-list

It would be great if a user could be able to sort the list:

  • by alphabetically "Server Name" order when clicking on the "Server name" row/column case
  • by ping time order when clicking on the "ping time" row/column case
  • by number of musicians when clicking on the "Musicians" row/column case

I'd suggest next to split the Location in 2 columns, one for the country, one for the city. Then it would allow to order the list by Country or by City clicking on it too.

I hope this make senses and it helps.
And moreover, thanks for this very nice piece of software, you guys deserves a lot of kudos for that!

Using 3.4.7 on linux debian buster here.

VS 2019 build Qt5Guid.dll, Qt5Widgetsd.dll,.. not found

Hi there,

I'm actually a pure .NET developer, but this project is so cool that I am dealing with the open source / cross platform for the first time in my life. My last unmanaged line of code was more than 10 years ago. So sorry if my requests should be trivial.

I was already able to compile the project in Visual Studio 2019.
When setting up Qt I selected the latest version Qt 5.14.2 (I wasn't sure here, since Qt 5.9.9 to Qt 5.14.2 could be selected)

When I start the project from Visual Studio 2019, I get the error message:
Qt5Guid.dll, Qt5Widgetsd.dll, Qt5Networkd.dll, Qt5Xmld.dll not found.

I probably forgot to install something at Qt (no experience with it so far), but unfortunately, I don't know what.

Qt

Core dump with -R if directory exists

Jamulus 3.4.4 on Ubuntu 18.04.4 LTS amd64 with libqt4-dev 4:4.8.7+dfsg-7ubuntu1

Steps to re-create:

  1. Stop Jamulus server and create dir with jamulus write permissions:
mkdir /home/gilgongo/JamRecordings
chown jamulus:jamulus /home/gilgongo/JamRecordings
  1. Start server with UID jamulus GID jamulus with -R /home/gilgongo/JamRecordings

  2. Jamulus core dumps and shuts down with error:

Mar 31 22:31:44 covid19 jamulus[12427]: - recording directory name: /home/gilgongo/JamRecordings/
Mar 31 22:31:44 covid19 jamulus[12427]: terminate called after throwing an instance of 'std::runtime_error'
Mar 31 22:31:44 covid19 jamulus[12427]:   what():  /home/gilgongo/JamRecordings does not exist but could not be created
Mar 31 22:31:45 covid19 systemd[1]: jamulus.service: Main process exited, code=dumped, status=6/ABRT
Mar 31 22:31:45 covid19 systemd[1]: jamulus.service: Failed with result 'core-dump'.

Expected behaviour: either keep server running but ignore -R and show warning (if Jamulus is expecting to create JamRecordings dir itself), or just allow Jamulus to write to the directory.

Note that letting the server create the directory works (and works across subsequent server reboots) but obviously required jamulus xrw on the parent dir, which may not be a good idea.

Expected behaviour of the connection list GUI?

I have a public server on a cloud host outside my network running v3.4.7git (Linux) and a client v3.4.6 (Win) on my LAN.

Summary

  1. The default connection list only seems to show a small sub-set of servers. I assume this is because Jamulus only wants to show me servers with acceptable ping times. However, my server has a short ping time for me, but does not show on the list unless I use --showallservers. But I can get my server to show in the default list if I first connect directly to it (but only until I quit the client). I would expect it show automatically in the default list if the server list is sorted/truncated by ping time.

  2. I also observe that --showallservers omits some, but not all, ping times and musician numbers from the list. I would expect all ping times and musician numbers to be displayed.

  3. Some servers are shown in bold text. Why is that?

Screenshots to illustrate

The default connection window I see looks like this:

connectionlist-normal

My server is not listed. However, when I run my client with --showallservers, I see this:

connectionlist

My server is listed, but shows no ping time or musicians.

If I then connect directly to the server, I can connect OK, and the ping time is lower than shown by others on the list:

connection-ping

If I then remove the --showallservers option and open the connection window again, I see my server at the top of the list (but only until I quit my client):

connectionlist-listed

low-res icon issue

This issue has been migrated form SourceForge Created: 2016-10-21

I happen to be on KDE Neon. Jamulus works great, but the icon in my task-manager is low-res.

icon-jamulus

Channel Levels Improvement

It's very interesting to be able to see almost in real time the level that each user sends to the server.

I think of three improvements:

  1. At the moment my input LEDs are 1/2 notches higher than the LEDs that I see lit on the "mixer" and this problem occurs especially with the voice. I often speak and even if I send with the very high volume the LEDs on the mixer do not update so often. (this I think is a problem of data communication from the server, maybe it averages the values? it should send the audio peak value...)

  2. could the led series be transformed into a bar? I mean a vertical bar that shows the current level, the rms, and the peak value (usually of the last moments) (this would be very interesting, perhaps with a more "updated" graphics but I think it's a bit more work having to create the bar from scratch)

  3. Add either a second bar or a quick toggle button to display the server values ​​in the level bar on the mixer (as it does now) or display the values ​​relating to what I hear on the headphones (therefore mirroring the volumes set on the mixer) (this would immediately help to see the highest or the lowest users not compared to the server but to the current mix that I hear on headphones (if a person is mute I don't have to see any signal, if I select "solo" I have to see only their signal based on how I have the faders in the mixer)) (maybe and option to have the two bar one near the other or to have the toggle button)

I hope I explained myself.

Increase "stability" of Connection Setup server list

This issue has been migrated from Sourceforge. Created: 2020-04-06

One of the most irritating parts of using Jamulus is trying to click on the server you want to join, now the number of servers has increased so much.

The current behaviour appears to be as follows:

  1. Sort the list by ping time, smoothing this over some period (as it stabilises with time)
  2. Each time the number of musicians on a server changes, pop open the display

Between the two, with people joining and leaving servers that have very similar ping times - about 20 in or around London - it means you can very easily start a click with the pointer over one server and end up joining a different one.

So...

  1. The smoothing algorithm could be improved - don't change the "sort ping" more often than once every 10 seconds or something
  2. Also, if I've chosen not to display the musicians on a server, it means I don't want to display the musicians on that server, so don't pop open the list of musicians on that server again (at least for 30 seconds maybe 2 minutes).

That should help keep usage a bit smoother without losing the information that's displayed.
Discussion

Volker Fischer - 2020-04-06

As a quick workaround you could start Jamulus with --showallservers. This list is sorted by the registration time and does not change at all.

Volker Fischer - 2020-04-06

Also, if I've chosen not to display the musicians on a server, it means I don't want to display the musicians on that server, so don't pop open the list of musicians on that server again (at least for 30 seconds maybe 2 minutes).

Agreed, that was a bad behavior. I fixed that:
70c499a
Can you please test this new version if you are happier with the behavior?

Strange behaviour with GUI and OSX

Hello, after compiling Jamulus with Jack Audio Toolkit Support everythin is fine but i got one exception :

I start the .app normally and everything is fine until after a while when the window is not focused but is running in background (UserInteractiveNonFocal),

I got a lot of :

JackEngine::XRun: client = Jamulus was not finished, state = Triggered
JackAudioDriver::ProcessGraphAsyncMaster: Process error

I precise that when I focus on the Jamulus window again, the Xruns disappear.

Then I noticed this kind of message in OSXConsole.

loginwindow	-[PersistentAppsSupport saveLogoutPersistentState:finalSnapshot:] |      checkAgainstApp is : Jamulus
loginwindow	-[PersistentAppsSupport appShouldBeRelaunched:] | entered. checking app: Jamulus
loginwindow	-[PersistentAppsSupport saveLogoutPersistentState:finalSnapshot:] |           Adding to relaunchArray: Jamulus

runningboardd	Acquiring assertion targeting executable<Jamulus(1078646027)> from originator [daemon<com.apple.coreservices.launchservicesd>:202] with description <RBSAssertionDescriptor; frontmost:10277; ID: 347-202-616; target: 10277> attributes = {
    <RBSDomainAttribute: 0x7fcaf3710f90; domain: com.apple.launchservicesd; name: RoleUserInteractiveFocal; sourceEnvironment: 0x0>;
}
runningboardd	Assertion 347-202-616 (target:executable<Jamulus(1078646027)>) will be created as active

runningboardd	Finished acquiring assertion 347-202-616 (target:executable<Jamulus(1078646027)>)

runningboardd	[executable<Jamulus(1078646027)>:10277] Ignoring jetsam update because this process is not memory-managed
runningboardd	[executable<Jamulus(1078646027)>:10277] Set darwin role to: UserInteractiveNonFocal
runningboardd	[executable<Jamulus(1078646027)>:10277] Ignoring GPU update because this process is not GPU managed

Jamulus	LSExceptions shared instance invalidated for timeout.

Problem occurs generally with this error message before.

par défaut	16:24:58.539627+0100	Activity Monitor	(reg) gpu 0x3177 flags 0x10 (IG) vid.did=8086.5927 b:d:f=0:2:0 
gpu 0x3177        pci 0x10000020c IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2
gpu 0x3177       agdc 0x1000006eb     /AppleIntelFramebufferController/IntelFBClientControl
gpu 0x3177       gpuc 0x000000000 
gpu 0x3177 agdpclient 0x1000006f5     /AppleIntelFramebufferController/IntelFBClientControl/AppleGraphicsDevicePolicy/AGDPClientControl
gpu 0x3177      accel 0x1000004aa     /IntelAccelerator
gpu 0x3177      fb0:0 0x1000004ac     /AppleIntelFramebuffer@0
gpu 0x3177      fb1:1 0x1000004ad     /AppleIntelFramebuffer@1
gpu 0x3177      fb2:2 0x1000004af     /AppleIntelFramebuffer@2

Also I noticed that without the GUI this problem does'nt occur.
It could be a workaround to start on cli only but I need to mute myself before entering the server as I did'nt see any of these parameters in the ini file.

Thanks.

OSX 10.15.4
QMake version 3.1
Using Qt version 5.14.1
jackdmp 1.9.13

Need remove Usb to amplifier

After choosing the Yamaha amplifier ASIO, Jamulus give error message (different sampling or frequency error) and won't start any more.
I need remove the usb from the Yamaha, then Jamulus starts.

Reinstalling won't help.

Intelligent Metronome

This issue has been migrated from Sourceforge. Created: 2020-04-03
Creator: Petra-Kathi

An idea to minimize latency differences:

The server can detect latencies of individual clients by clock
comparisons of respectively transmitted packets, so it should be able to
advise the individual clients to create metronome ticks (not audible
with the other participants) with individual latencies / time shifts of
some (ten) milliseconds , so the strokes are heard with best relative
timing.

The individual stroke timing should be derived from observation of
the ping timing over the last, say, 5 seconds, so it would do some
averaging against individual extraordinary retarded packets.

The participant with the slowest line should then get the stroke first, and the
other ones appropriately retarded by some milliseconds. The result
should be a better aligned combined sound, even though that would be
retarded by about the amount of the latency of the slowest participant
(single direction latency), but rather consistently.

Increase LED luminance in UI?

With the addition of the UV meters, the issue of contrast in the UI has become more important. Suggest increasing the luminescence of the colours as below. However, in this mockup the lights are 2D, whereas in the UI they are 3D. This means I can only approximate a good luminance for them.

Here the Red is #FF3300, Green is #66FF33 and Yellow is #FFFF00 while the default is #F2F2F2

image

A server in the same NAT region as the client is not visible in the server list

This issue has been migrated from Sourceforge. Created: 2013-08-24

If the Jamulus server and client are in the same local network using local IP addresses assigned by a usual router (using NAT), the server does not show up in the server list.

Gronaz - 2014-03-18
Some usual routers may not allow connections from within an IP in the private lan to another IP in the lan via the router's wan IP.

Although, I first didn't notice this "server-not-visible" behaviour for me. Once the server upgraded to 3.3.4, I had a need to run the server with the GUI and then I couldn't see the server in my same-lan client's list.
As I kept the 3.3.3 binary I could test it: same thing, not visible when ran with GUI.
Whatever, for both 3.3.3 and 3.3.4, whith the setting in the client "Central server address" unchecked and the field below filled with a reference to the server's lan IP (/etc/hosts entry for me) the client can connect to the server, even when the list is empty.
When the reference is to the server's wan ip, I simply can't connect, which seems to be related to the first sentence in this post.

So this bug is only half-a-bug: when server is ran with GUI.
The situation when the wan ip is used, it doesn't seem to be a bug in Jamulus.

RYG indicator lights need colour-blind compensation

Red–green colour blindness affects up to 8% of males and 0.5% of females of Northern European descent. Colours of traffic lights are confusing to these people as there is insufficient apparent difference between them.

To avoid discriminating against red-green colour blind people, suggest adding textual status to avoid confusion:

image

Another approach

Maybe use blink rates? Not as clear - the user has to know what the blink rates mean - but once they know they can remember forever. Might also help those without colour blindness too.

  • No blinking (steady) on Green
  • Slow blinking on Yellow
  • Fast blinking on Red

[RFE] Input mixing console, multiple inputs.

I wanted to check what do you think about adding an input mixer, where we could source
multiple input sources (even from multiple sources/cards), into a single signal.

The use case would be: being able to source multiple inputs (like a virtual drummer or background base music), along with a center-panned microphone and your instrument.

I know we have the alternative to run multiple Jamulus instances, and probably we have software options for doing that outside jamulus, but I guess it'd be different on every OS.

I'm not sure I'd have enough steam to code a feature like this. But I wanted to know how you feel about something like that for just in case I found the time.

Physical geography vs ping rate in the server list UI

For reasons unknown, I understand from #54 that clients may often fail to ping servers. When this happens, they don't show on the list. I myself have never seen more than about 10 servers listed. Yet if I set --showallservers I can see several in my country. And if I try connecting to them, turn out to have better or at least similar ping times to those given at the top of my default list.

If my experience is representative of other users, this would seem to be significantly underselling the experience of using Jamulus by hiding servers that may well be faster if users could see them.

If we cannot do anything about clients failing to ping servers, perhaps we should make it easier for users to select servers in their physical geography rather than relying solely on ping rate?

Jamulus 3.4.4 not starting on Windows 10

I tried to install Jamulus (v3.4.4) for the first time yesterday. However, it did not even open.
I tried deactivating all other sound devices and startup programs, however I was not able to open the application.
Please see the details from the event viewers crashlog:
Jamulus_crashlog.txt

I tried to download the previous version for windows (v3.4.2) since I realized the most recent version was just 5 days old. And indeed I was able to open the application on v3.4.2

Please let me know, if you need me to provide further details or if there is any debug mode of the application.

[FR] Provide Windows x64 builds

ATM Jamulus doesn't see ReaRoute (virtual asio driver) provided by x64 builds of Reaper. It's needed to set up Reaper as a host for existing VST[i] plugins and instruments and prepare the signal to be fed to Jamulus.

x86 ReaRoute works ok, but it requires bridging existing x64 plugins inside Reaper, or installing separate x86 copies of said plugins/instruments, which is suboptimal.

Jamulus crashes when opus library is built with ENABLE_HARDENING

As originally reported in the forum, when Jamulus is built using opus as an external shared library, with this assertion:

Fatal (internal) error in celt/celt_decoder.c, line 126: assertion failed: st->end <= 21

This is the actual backtrace of the crash:

#0  0x00007fba1d9f7ea1 in raise () from /lib64/libc.so.6
#1  0x00007fba1d9e153d in abort () from /lib64/libc.so.6
#2  0x00007fba1f4321d1 in celt_fatal (str=<optimized out>, file=<optimized out>, line=<optimized out>) at celt/arch.h:76
#3  0x00007fba1f3fbf37 in validate_celt_decoder (st=0x55b8b25eebe0) at celt/celt_decoder.c:126
#4  celt_decode_with_ec.constprop.0 (st=0x55b8b25eebe0, data=<optimized out>, len=45, pcm=pcm@entry=0x7fba137fda40, frame_size=<optimized out>, dec=dec@entry=0x0, 
    accum=0) at celt/celt_decoder.c:867
#5  0x00007fba1f427e6d in opus_custom_decode (st=<optimized out>, data=data@entry=0x0, len=<optimized out>, pcm=0x55b8b25b5560, frame_size=frame_size@entry=128)
    at celt/celt_decoder.c:1234
#6  0x000055b8b180ff07 in CClient::ProcessAudioDataIntern (this=this@entry=0x7ffd36fc3730, vecsStereoSndCrd=...) at /usr/include/c++/9/bits/stl_vector.h:1040
#7  0x000055b8b18103a9 in CClient::ProcessSndCrdAudioData (vecsStereoSndCrd=..., this=0x7ffd36fc3730) at src/client.cpp:835
#8  CClient::ProcessSndCrdAudioData (vecsStereoSndCrd=..., this=0x7ffd36fc3730) at src/client.cpp:813
#9  CClient::AudioCallback (psData=..., arg=0x7ffd36fc3730) at src/client.cpp:810
#10 0x000055b8b1813e76 in CSoundBase::ProcessCallback (this=0x7ffd36fc3f40, this=0x7ffd36fc3f40, psData=...) at src/soundbase.h:108
#11 CSound::process (nframes=1024, arg=0x7ffd36fc3f40) at linux/sound.cpp:258
#12 0x00007fba1f3b8d0a in ?? () from /usr/lib64/libjack.so.0
#13 0x00007fba1f3b8478 in ?? () from /usr/lib64/libjack.so.0
#14 0x00007fba1f3d114c in ?? () from /usr/lib64/libjack.so.0
#15 0x00007fba1d9a2efa in start_thread () from /lib64/libpthread.so.0
#16 0x00007fba1dabb3bf in clone () from /lib64/libc.so.6

After some investigation, it turns out that having opus as a shared library (as opposed to be statically linked) is not really the problem. The difference is that when built externally, opus is built with ENABLE_HARDENING defined by default, which enables some run-time sanity checks on the code.

The version of opus inside Jamulus is an older one which does not even have the validate_celt_decoder(CELTDecoder *st) function inside celt/celt_decoder.c and that is the reason why it does not crash (not even by forcing the definition of ENABLE_HARDENING).

Status indication for Central Server registration

So that operators can know whether to expect to see their public server listed by the Central Server, show a registration status indicator in the UI (example below).

Note

Because we currently have a number of people on the forums whose problems may in fact be due to their server not being registered due to this issue , it is important to message explicitly the "Registered" and "Unregistered" states to avoid the possibility of users misinterpreting silence as being all is well, when in fact they are unregistered (or vice versa).

Ideally, a state of "Connecting..." (or "Registering..."? But I think that might be misinterpreted) should also be displayed to help troubleshoot other issues if the server cannot contact the Central Server.

image

For headless servers, a similar message to be displayed in the log (platform dependent?)

Allow internationalization

I'd be really happy to provides the project with a French translation for the GUI if a translation mechanism was made available.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.