CAboutDlg Qt cross-platform application framework Audio reverberation code by Perry R. Cook and Gary P. Scavone Some pixmaps are from the This app enables musicians to perform real-time jam sessions over the internet. There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. This app uses the following libraries, resources or code snippets: Country flag icons by Mark James For details on the contributions check out the Github Contributors list Spanish French Portuguese Dutch Italian German About CAboutDlgBase About TextLabelVersion Copyright (C) 2005-2020 Volker Fischer and others A&bout &Libraries &Contributors &Translation &OK CAnalyzerConsole Analyzer Console Error Rate of Each Buffer Size CAudioMixerBoard Personal Mix at the Server When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Server T R Y I N G T O C O N N E C T RECORDING ACTIVE Personal Mix at: CChannelFader Pan Mute Solo Channel Level Input level of the current audio channel at the server Mixer Fader Local mix level setting of the current audio channel at the server Status Indicator Shows a status indication about the client which is assigned to this channel. Supported indicators are: Status indicator label Panning Local panning position of the current audio channel at the server With the Mute checkbox, the audio channel can be muted. Mute button Solo button Fader Tag Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Grp Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Speaker with cancellation stroke: Indicates that another client has muted you. Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Group With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Group button The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. Mixer channel instrument picture Mixer channel label (fader tag) Mixer channel country flag PAN MUTE SOLO GRP M S G Alias/Name Instrument Location Skill Level Beginner Intermediate Expert Musician Profile CChatDlg Chat Window The chat window shows a history of all chat messages. Chat history Input Message Text Enter the chat message text in the edit box and press enter to send the message to the server which distributes the message to all connected clients. Your message will then show up in the chat window. New chat text edit box Type a message here &Edit Cl&ear Chat History CChatDlgBase Chat &Send CClientDlg Input Level Meter Make sure not to clip the input signal to avoid distortions of the audio signal. Input level meter Simulates an analog LED level meter. Connect/Disconnect Button Connect and disconnect toggle button Local Audio Input Fader L , where is the current attenuation indicator. Local audio input fader (left/right) Delay Status LED Delay status LED indicator Buffers Status LED The network jitter buffer is not large enough for the current network/audio interface jitter. This shows the level of the two stereo channels for your audio input. If the application is connected to a server and you play your instrument/sing into the microphone, the VU meter should flicker. If this is not the case, you have probably selected the wrong input channel (e.g. 'line in' instead of the microphone input) or set the input gain too low in the (Windows) audio mixer. For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Reverb effect Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Reverb effect level setting Reverb Channel Selection With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Left channel selection for reverb Right channel selection for reverb Shows the current audio delay status: Green The delay is perfect for a jam session. Yellow A session is still possible but it may be harder to play. Red The delay is too large for jamming. If this LED indicator turns red, you will not have much fun using the application. The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: The sound card's buffer delay (buffer size) is too small (see Settings window). The upload or download stream rate is too high for your internet bandwidth. The CPU of the client or server is at 100%. Buffers status LED indicator C&onnect &View &Connection Setup... My &Profile... C&hat... &Settings... &Analyzer Console... E&xit &Edit Sort Channel Users by &Name Sort Channel Users by &Instrument None Center R Central Server user users D&isconnect CClientDlgBase Delay Buffers Input L R Settings Chat Mute Myself C&onnect Pan Center Reverb Left Right CClientSettingsDlg Jitter Buffer Size The jitter buffer setting is therefore a trade-off between audio quality and overall delay. Local jitter buffer slider control Server jitter buffer slider control Auto jitter buffer switch Jitter buffer status LED indicator Sound Card Device The ASIO driver (sound card) can be selected using under the Windows operating system. Under MacOS/Linux, no sound card selection is possible. If the selected ASIO driver is not valid an error message is shown and the previous valid driver is selected. If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Sound card device selector combo box If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Sound Card Channel Mapping For each input/output channel (Left and Right channel) a different actual sound card channel can be selected. Left input channel selection combo box Right input channel selection combo box Left output channel selection combo box Right output channel selection combo box Enable Small Network Buffers If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Enable small network buffers check box Sound Card Buffer Delay Three buffer sizes are supported The buffer setting is therefore a trade-off between audio quality and overall delay. 128 samples setting radio button 256 samples setting radio button ASIO setup push button Display Channel Levels If enabled, each client channel will display a pre-fader level bar. Display channel levels check box Audio Channels mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. Audio channels combo box Audio Quality Audio quality combo box New Client Level New client level edit box Central server address line edit Current Connection Status Parameter If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. 64 samples setting radio button Custom Central Server Address If this LED indicator turns red, you will not have much fun using the software. ASIO Setup Mono Mono-in/Stereo-out Stereo The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). If the Auto setting is enabled, the network buffers of the local client and the remote server are set to a conservative value to minimize the audio dropout probability. To tweak the audio delay/latency it is recommended to disable the Auto setting and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 128 samples: Should work for most available sound cards. 256 samples: Should only be used on very slow computers or with a slow internet connection. Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Skin Select the skin to be used for the main window. Skin combo box Selects the number of audio channels to be used for communication between client and server. There are three modes available: and These modes use one and two audio channels respectively. Mono in/Stereo-out The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. Enabling In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Leave this blank unless you need to enter the address of a central server other than the default. The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). Low Normal High Fancy Compact Custom All Genres Genre Rock Genre Jazz Genre Classical/Folk/Choir Default preferred Size: Buffer Delay Buffer Delay: The selected audio device could not be used because of the following error: The previous driver will be selected. Ok CClientSettingsDlgBase Settings Soundcard Device Input Channel Mapping L R Output Channel Mapping Enable Small Network Buffers Buffer Delay (preferred) (default) (safe) Driver Setup Jitter Buffer Auto Local Server Size Misc Audio Channels Audio Quality New Client Level Skin % Display Channel Levels Custom Central Server Address: Audio Stream Rate val Ping Time Overall Delay CConnectDlg Server List Server list view Server Address The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: . The field will also show a list of the most recently used server addresses. Server address edit box Holds the current server IP address or URL. It also stores old URLs in the combo box list. Server List Selection Selects the server list to be shown. Server list selection combo box Filter The server list is filtered by the given text. Note that the filter is case insensitive. Filter edit box Show All Musicians If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. Show all musicians check box CConnectDlgBase Connection Setup List Filter Show All Musicians Server Name Ping Time Musicians Location Server Name/Address C&ancel &Connect CHelpMenu &Help &Pomoc Getting &Started... Software &Manual... What's &This &About... CLicenceDlg I &agree to the above licence terms Accept Decline By connecting to this server and agreeing to this notice, you agree to the following: You agree that all data, sounds, or other works transmitted to this server are owned and created by you or your licensors, and that you are making these data, sounds or other works available via the following Creative Commons License (for more information on this license, see You are free to: Share copy and redistribute the material in any medium or format Adapt remix, transform, and build upon the material The licensor cannot revoke these freedoms as long as you follow the license terms. Under the following terms: Attribution You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. NonCommercial You may not use the material for commercial purposes. ShareAlike If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. No additional restrictions You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. CMusProfDlg Musician Profile Alias/Name Instrument Country Kraj City Skill &Close None Beginner Intermediate Expert Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Alias or name edit box Instrument picture button Country flag button City edit box Skill level combo box Drum Set Djembe Electric Guitar Acoustic Guitar Bass Guitar Keyboard Synthesizer Grand Piano Accordion Vocal Microphone Harmonica Trumpet Trombone French Horn Tuba Saxophone Clarinet Flute Violin Cello Double Bass Recorder Streamer Listener Guitar+Vocal Keyboard+Vocal Bodhran Bassoon Oboe Harp Viola Congas Bongo Vocal Bass Vocal Tenor Vocal Alto Vocal Soprano Banjo Mandolin Ukulele Bass Ukulele No Name CServerDlg Client List The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. Connected clients list view Start Minimized on Operating System Start Show Creative Commons Licence Dialog If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. Make My Server Public Register Server Status If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. Custom Central Server Address The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. Central server address line edit Server List Selection Selects the server list (i.e. central server address) in which your server will be added. Server list selection combo box Server Name Server name line edit Location City The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. City where the server is located line edit Location country The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. Country where the server is located combo box Checkbox to turn on or off server recording Enable Recorder Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Current session directory text box (read-only) Current Session Directory Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Recorder status label Recorder Status Displays the current status of the recorder. Request new recording button New Recording During a recording session, the button can be used to start a new recording. E&xit &Hide server &Open server Predefined Address Recording Not recording Not enabled Server If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. The server name identifies your server in the connect dialog server list at the clients. &Window Unregistered Bad address Registration requested Registration failed Check server version Registered Central Server full Your server version is too old Requirements not fulfilled Unknown value CServerDlgBase Client IP:Port Name Jitter Buffer Size Start Minimized on Windows Start Show Creative Commons BY-NC-SA 4.0 Licence Dialog Make My Server Public (Register My Server in the Server List) Genre STATUS Custom Central Server Address: My Server Info Location: City Location: Country Enable jam recorder New recording Recordings folder TextLabelNameVersion CSound Error closing stream: $s The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. The Jack server sample rate is different from the required one. The required sample rate is: You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. Make sure to set the Frames/Period to a low value like to achieve a low delay. The Jack port registering failed. Cannot activate the Jack client. The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. CoreAudio input AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. CoreAudio output AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. The audio input stream format for this audio device is not compatible with this software. The audio output stream format for this audio device is not compatible with this software. The buffer sizes of the current input and output audio device cannot be set to a common value. Please choose other input/output audio devices in your system settings. The audio driver could not be initialized. The audio device does not support the required sample rate. The required sample rate is: The audio device does not support setting the required sampling rate. This error can happen if you have an audio interface like the Roland UA-25EX where you set the sample rate with a hardware switch on the audio device. If this is the case, please change the sample rate to Hz on the device and restart the software. The audio device does not support the required number of channels. The required number of channels for input and output is: Required audio sample format not available. No ASIO audio device (driver) found. The software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. CSoundBase Invalid device selection. The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Please restart the software. Close zamknij No usable audio device (driver) found. In the following there is a list of all available drivers with the associated error message: Do you want to open the ASIO driver setups? could not be started because of audio interface issues. QCoreApplication , Version Internet Jam Session Software Released under the GNU General Public License (GPL) global For more information use the What's This help (help menu, right mouse button or Shift+F1)