jamulussoftware / jamulus

Jamulus enables musicians to perform real-time jam sessions over the internet.
https://jamulus.io
Other
997 stars 222 forks source link

Summary of findings (both implementation and documentation) #1504

Closed drummer1154 closed 3 years ago

drummer1154 commented 3 years ago

Prefaces: I: I am the drummer in a 3 peace advanced jazz band "fuTunes" and a retired SW developer/project manager, located in Munich, Germany. I have also been working as a sound engineer (FoH/Monitor/Studio). II: Currently I am struggling for our band to get a local Jamulus server running on a DS-Lite connection so the work on this Issue deducts me from essential research for our band. III: The more I dig into Jamulus topics the more I question myself: Are we going the right way to support the community (also regarding the current Corona situation)? From the (few) threads I was able to follow I see two separate movements: 1) Keep it simple and work as expected => optimize the current implementation without caring too much for documentation ("bottom-up"). 2) Update the documentation to match the implementation and improve the implementation only after it is clear how the pieces should work together and what to change where and why ("top-down"). Personally I support 2) but I admit that it will take more time in the beginning. IV: For me "local" always means "related to the (physical) location of my equipment (HW and SW)".

Referring to https://jamulus.io/wiki/Software-Manual ["the Manual"], to http://llcon.sourceforge.net/PerformingBandRehearsalsontheInternetWithJamulus.pdf ["the Case Study", February 2015], and to https://github.com/corrados/jamulus/issues/64#issuecomment-633309575 ["the Audio Diagram", May 2020], there are features which from my PoV do not work as documented or do not work as expected. I list the issues which have caused the biggest waste of time for me so far. Everything was tested with Jamulus V3.6.1. Once the root causes are clear, we can split up this summary into separate issues.

Signal Flow Diagram: In the Case Study we find "Figure 2: Simplified Jamulus block diagram" which shows the data processing but cannot be taken as an audio flow diagram. It shows the input from "other client" but does not show the server output to other clients and the text below says "This mix is ... transmitted to all connected clients ..." suggesting that there is only a single mix which is distributed to all clients - I was completely misled by this when I started working with Jamulus. Meanwhile I was pointed to the Audio Diagram which explains the audio flow but still suffers from missing information (see my points below).

I believe that most every musician will be able to read an audio signal flow diagram. From my PoV, 1) could be easily achieved by updating the block diagram from the Case Study, but 2) is more complicated because - at least for me - there are a lot of things which are not working as expected (see my points below). What is also required: Select a drawing tool - are there any preferences? Personally I would start with Visio.

Input level: The Manual: "This shows the level of the two stereo channels for your audio input." According to the Audio Diagram (congruent to the Manual), this display is expected to be always working. Issues:

Mute Myself button: The Manual: "Cuts your audio stream to the server so that you will be able to hear yourself and see your own input levels, but other musicians will not." According to the Audio Diagram, the local user's signal bypasses the Jamulus server and is fed back to the local audio interface directly (together with the mix coming from the server). If the Audio Diagram is correct, I see the following issues:

In the GUI of course a new button is required. I think the input level display can be shrunk to get the space for the new button. Local Audio Loop and Mute me for others shall be mutual exclusive (one activated releases the other).

[Edit] *) "Mute and Solo" does not work as you would expect from the Audio Diagram - Mute takes precedence :-( So this needs to be also changed so that for your own client Solo takes precedence.

Reverb effect: The Manual: "Reverb can be applied to one local mono audio channel or to both channels in stereo mode ...". This together with the following description ("... a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied ...") suggests that in mono mode, the reverb is applied only to the channel selected by the radio buttons. Issues:

Local audio pan / balance control: To me it is completely unclear how this is supposed to work, see also https://github.com/corrados/jamulus/issues/353, and I think it is wrong what I wrote in https://github.com/corrados/jamulus/issues/778#issuecomment-743773029 (I will edit this comment after things have been clarified). Issues:

So far for the documentation of the quirks I have found. @corrados @gilgongo @dakhubgit @WolfganP @Matzix: Could you please kindly review what I have written and direct me how to continue, thanks.

gilgongo commented 3 years ago

Thanks for this - very interesting.

Provide two up-to-date diagrams to be taken up into the Manual ... Jamulus is too complex to be quickly understood by simply reading the Manual

I think this depends entirely on what you mean by "understand". There's no problem creating such diagrams and documentation if we intend to keep that away from normal users :-) But if you mean you think Jamulus can't be used without these things, then I'm afraid that's objectively incorrect.

BTW quite who would create such diagrams, I don't know. I did a high-level one (and it's on the Getting Started page) but we concluded as you did after a while that it wasn't really very helpful so we demoted it to the bottom of the page. I doubt anyone actually looks at it. You are the first person to ask about it as far as I know. Also BTW I used a free online tool, the "source" file for which I posted on a ticket here if that's any help. https://github.com/corrados/jamulus/issues/64#issuecomment-613875648

The vertical slider labelled "Pan" is not a pan but an attenuator for the left and right input signals.

Could we call the Local Pan slider "Local L/R Volume" with labels "+ 0 +" vertically then? Non-zero numbers seems fairly pointless to me.

Why is the rotary pan not available if "Settings/Misc/Audio Channels" is set to Mono?

I've wondered this too. Perhaps others will know.

Side note: At least one of these confusions is to do with a mis-match between the user's understanding of a mixing desk and associated terms (eg "panning") and the way Jamulus actually works.

drummer1154 commented 3 years ago

@gilgongo

I think this depends entirely on what you mean by "understand".

By "understand" I mean to be able to use the SW intuitively for its intended purpose without the need to RTFM: To make music where the musicians are at home, located away from each other. OK, so you find Jamulus, you install it (not to mention the safety warnings), you open the GUI and then? On first glance it looks much like any other audio recording SW, only there are no channel strips, only a confusing "Pan" strip in the middle and an empty "Server" area to the right (I think I do not need to explain the initial client look any further).

The problems start directly after installing Jamulus client: It is not obvious that - conversely to any audio recording SW I am aware of - you will not be able to hear your own instrument. This is due to the client/server architecture which appears to be brilliant to me from a technical PoV and makes the platform performant. BUT:

Do you really want to create a user guide which forces every newbee to install not only the client but also the server? Does their computer have enough computing power to allow both client and server in parallel? If not, then what? E.g. myself as a "DOS / Windows Veteran" am forced to use an iMac (given to me by my bandmate) because my bandmates have been using this platform already for years, and in the first Corona lockdown we successfully started offline recording with Garageband (GB) which is included in the MacOS and imposes no additional cost. For Jamulus I need to say that I spent hours (if not days) to drill down the "Audio MIDI Setup" settings until I succeeded in hearing my instrument (mostly caused by samle rate and unclear settings in Jamulus Settings/Soundcard/Device). No such problem with GB: Just specify the interface and that's it - the USB LED on my Lexicon Omega ist permanently on (according to the Owner’s Manual: "the application" has configured the interface correctly), conversely to Jamulus where it fast blinks all the time even if it works somehow (and Volker told me it is the same thing on his setup).

So if there would be an up-to-date audio flow diagram, if you run into such difficulties, you would be able to identify the root cause more easily.

who would create such diagrams

I have already said that I am willing to create them - if we agree on a common tool. OK, I will check out https://online.visual-paradigm.com/.

Could we call the Local Pan slider "Local L/R Volume" with labels "+ 0 +" vertically then? Non-zero numbers seems fairly pointless to me.

Sorry but it is not the "Volume". It is an Attenuation (at least what I was able to get from my time consuming tests).

drummer1154 commented 3 years ago

@ann0see I do not agreee to your change of my title. Please revert back to my initial title and discuss a title change here until we agree. How come you override my PoV???

ann0see commented 3 years ago

Sorry about that. Usually issues here in the documentation repo have a language tag.

Since it will refer to the English documentation first, I added [en].

Since (at least some parts) some changes might refer to the manual, I added manual. But I can revert it.

Edit: done. I didn't want to insult you. Sorry.

dakhubgit commented 3 years ago

Ok, what I consider useful for startup is, assuming you are unconnected, to behave as follows: a) as if "mute myself" is active, namely route audio to the mixer directly rather than through a server b) add a mixer strip for oneself as if one were connected on one's own to a server That allows playing around with quite a bit of things in a private sandbox before even going online.

drummer1154 commented 3 years ago

@ann0see OK, NP, execution accepted. As this is my 1st Issue created here, please give me a hint regarding the language tag (didn't see any yet) and tell me why you are thinking I am complaining only about documentation ("Manual") where I explicitly stated both Implementation AND Documentation.

Every input is welcome!

-hg

gilgongo commented 3 years ago

By "understand" I mean to be able to use the SW intuitively for its intended purpose without the need to RTFM

So this isn't about the docs, it's about the UI?

Do you really want to create a user guide which forces every newbee to install not only the client but also the server?

We don't. Do we?

drummer1154 commented 3 years ago

So this isn't about the docs, it's about the UI?

Both, if you would please read everything.

Do you really want to create a user guide which forces every newbee to install not only the client but also the server?

We don't. Do we?

No, of course not. But you will be forced to if you want to keep the audience satisfied. Edit ... with the current implemetation and documentation.

ann0see commented 3 years ago

please give me a hint regarding the language tag

The process in the documentation is a bit complicated (don't want to bother you with that).

We agreed that at least every pull request should have a language tag (not sure about issues though) to keep organised. We suffered a lot of discussion being spread across multiple issues, PRs, etc. which makes it difficult to follow up.

Since this issue is in the documentation repository, I thought everything related to documentation changes would be discussed here, while everything related to the software on corrados' repository.

I added "Manual" to the title since (at least what I understand, you would like quite some changes in this file).

I must admit that the CONTRIBUTING file is not yet up to date and I acted too fast.

drummer1154 commented 3 years ago

Just to emphasize: For me this Issue is only a starting point for discussion. Most likely it can be closed later if we have created additional Issues in their correct repository which cover my findings.

@ann0see OK, I see - I am not at all familiar with the github process, sorry. I was not aware in which repository my new Issue was created and I just followed the advice given in https://github.com/corrados/jamulus/issues/778#issuecomment-743774622.

@dakhubgit Please try to evaluate whether your proposal at https://github.com/jamulussoftware/jamuluswebsite/issues/174#issuecomment-744040593 is really less impacting the current implementation than mine. Edit: From my PoV there is no need for a fader for oneself while not connected - the input level meter is enough to check for eventual overload. Also from a user perspective I believe that if you display a fader while not connected, you will get more or less the same picture in the GUI as when connected while your client is the only user. I believe this could be confusing.

gilgongo commented 3 years ago

OK. So you want:

  1. Some diagrams. Which you will make. I have no objection to that, just as long as we don't present them to normal users as being something they need to examine before using the software :-)

  2. Some changes to the UI. I'm a bit unclear on these though as there seem to be a variety of suggestions. Probably best to raise them as separate tickets on the software repo issues list.

  3. Some changes to the function - perhaps such that a user can play about on their own without joining a server? Again, best raised as separate tickets.

Lastly, and forgive me if I'm wrong, but you seem to imply there is some crisis of understanding between the maintainers of the software and documentation and the users of Jamulus. I would be the first to admit that improvements could be made for ease of use in both areas, which I suspect are not optimal. These things never are.

However, I would also point out that of 229 responses to our usage survey so far, answers to the question "How easy was it to understand how Jamulus worked?" are currently:

58% for "Easy - installed and got if going almost immediately" 32% for "A little tricky - needed a bit of work" 6% for "Hard - had to read the docs/forums"

This is not to imply complacency - and only 2.6% identify themselves as having "Basic" computer skills - and things could of course be improved.

ann0see commented 3 years ago

OK, I see - I am not at all familiar with the github process, sorry.

No problem. This is an issue we should talk about in another GitHub issue. gilgongo already said that the information/development structure is a bit unclear.

drummer1154 commented 3 years ago

Since this issue is in the documentation repository,

OK, I see, I was not aware of the nature of the repository, I just blindly followed the advice I received in https://github.com/corrados/jamulus/issues/778#issuecomment-743774622:

Please open a ticket to address this in the documentation

After I started editing (and testing), I decided to document all weaknesses I stumbled upon, and my proposal is to discuss the single points here and open new Issues (of course each then in its correct repository :-) once the solution is clear. I am going to copy dakhubgit's proposal. [Done and commented.]

ann0see commented 3 years ago

Still a bit confused about this issue, but as far as I understand, there are multiple smaller and bigger issues (also in the documentation).

Provide two up-to-date diagrams to be taken up into the Manual (maybe into a new "Technical Reference" section): 1) data flow and 2) audio signal flow. Rationale: "A picture paints a thousand words" - Jamulus is too complex to be quickly understood by simply reading the Manual, and the currently required "trial and error" method is a waste of time.

I also think that a a more technical explanation of Jamulus which is not part of Volker's paper would be good. We should maybe include this in the knowledge base (not yet online) since not every user would like to have to read this.

This page would describe how Jamulus works (with technical details including the fact that the Server has multiple mixes, etc.) and be linked from the getting started page.

The diagram on the getting started page: https://jamulus.io/wiki/Getting-Started#how-jamulus-works-in-general could stay (almost) the same but with another explanation

Jamulus works on the client server principle. Everybody’s audio is sent to a server, mixed and processed there. Afterwards the audio is sent to every client. If a server is made public and registered on a central server, its information will be broadcasted to all clients.

could be changed to

Jamulus works on the client server principle. Everybody’s audio is sent to a server, mixed and processed there for every client. Afterwards, the server sends every client their own mix. If a server is made public and registered on a central server, its information will be broadcasted to all clients.

(not yet sure about the exact wording)

This would go with @gilgongo s answer:

Some diagrams. Which you will make. I have no objection to that, just as long as we don't present them to normal users as being something they need to examine before using the software :-)

Input level, Mute myself etc. are still to be discussed.

drummer1154 commented 3 years ago

The diagram on the getting started page ...

is of course well suited for a "normal" user, thanks @gilgongo the sources are available so if it needs tweaking just go on.

As already said earlier I am really willing to create more technical drawings explaining the "inner" functioning so as to enable troubleshooting, but not required to be studied in the "normal case", when everything works well right from the beginning. I have an older Visio version which I will use. But I am sure that I will need help, and I also need to say that I do not have much time the next days. So most likely I will be starting over next weekend.

Input level, Mute myself etc. are still to be discussed.

Correct, and I hope the Jamulus architects are really willing to take these proposals into account without throwing them into the bin immediately, I am not the only one who says it is worth to improve the current methods.

ann0see commented 3 years ago

@drummer1154 I know you worked on some proposed diagrams etc. Can you open a PR with them if they are finished?