CAboutDlg The software 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. uses the following libraries, resources or code snippets: About , Version Internet Jam Session Software Under the GNU General Public License (GPL) CAboutDlgBase About TextLabelVersion Copyright (C) 2005-2020 Volker Fischer and others &OK CAnalyzerConsole Analyzer Console Error Rate of Each Buffer Size CAudioMixerBoard Server T R Y I N G T O C O N N E C T CChannelFader Channel Level Displays the pre-fader audio level of this channel. All connected clients at the server will be assigned an audio level, the same value for each client. Input level of the current audio channel at the server Mixer Fader Adjusts the audio level of this channel. All connected clients at the server will be assigned an audio fader at each client, adjusting the local mix. Local mix level setting of the current audio channel at the server With the Mute checkbox, the audio channel can be muted. Mute button With the Solo checkbox, the audio channel can be set to solo which means that all other channels except of the current channel are muted. It is possible to set more than one channel to solo. Solo button Fader Tag The fader tag identifies the connected client. The tag name, the picture of your instrument and a flag of your country can be set in the main window. Mixer channel instrument picture Mixer channel label (fader tag) Mixer channel country flag MUTE SOLO Alias/Name Instrument Location Skill Level Beginner Intermediate Expert Musician Profile Mute Solo 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 CChatDlgBase Chat Cl&ear &Close CClientDlg Input Level Meter The input level indicators show the input level of the two stereo channels of the current selected audio input. Make sure not to clip the input signal to avoid distortions of the audio signal. If the software is connected and you play your instrument/sing in the microphone, the LED level 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 a proper usage of the software, you should not hear your singing/instrument in 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!). Input level meter Simulates an analog LED level meter. Connect/Disconnect Button Push this button to connect a server. A dialog where you can select a server will open. If you are connected, pressing this button will end the session. Connect and disconnect toggle button 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 software. Local Audio Input Fader Local audio input fader (left/right) Reverberation effect level setting Left channel selection for reverberation Right channel selection for reverberation If this LED indicator turns red, you will not have much fun using the Delay status LED indicator Buffers status LED indicator C&onnect &View &Connection Setup... My &Profile... C&hat... &Settings... &Analyzer Console... E&xit None Center R L With the audio fader, the relative levels of the left and right local audio channels can be changed. For a mono signal it acts like a panning between the two channels. If, e.g., 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 , where is the current attenuation indicator. Reverberation Level A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. The mone channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector to right and move the fader upwards until the desired reverberation level is reached. The reverberation effect requires significant CPU so that it should only be used on fast PCs. If the reverberation level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does not cause any additional CPU usage. Reverberation Channel Selection With these radio buttons the audio input channel on which the reverberation effect is applied can be chosen. Either the left or right input channel can be selected. Delay Status LED The delay status LED indicator shows the current audio delay status. If the light is green, the delay is perfect for a jam session. If the light is yellow, a session is still possible but it may be harder to play. If the light is red, the delay is too large for jamming. Buffers Status LED The buffers status LED indicator shows the current audio/streaming status. If the light is green, there are no buffer overruns/underruns and the audio stream is not interrupted. If the light is red, the audio stream is interrupted caused by one of the following problems: The network jitter buffer is not large enough for the current network/audio interface jitter. The sound card buffer delay (buffer size) is set to a too small value. The upload or download stream rate is too high for the current available internet bandwidth. The CPU of the client or server is at 100%. 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 compensates for network and sound card timing jitters. The size of this jitter buffer has therefore influence on the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). The jitter buffer size can be manually chosen for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light on the bottom of the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun took place and the audio stream is interrupted. The jitter buffer setting is therefore a trade-off between audio quality and overall delay. An auto setting of the jitter buffer size setting is available. If the check Auto 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 the Auto check is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). In case the auto setting of the jitter buffer 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 functionality and to lower the jitter buffer size manually by using the sliders until your personal acceptable limit of the amount of dropouts is reached. The LED indicator will visualize the audio dropouts of the local jitter buffer by a red light. 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 In case 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 you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Sound Card Channel Mapping In case the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. 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 samples. The smaller the network buffers, the smaller the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. Enable small network buffers check box Sound Card Buffer Delay The buffer delay setting is a fundamental setting of the software. This setting has influence on many connection properties. Three buffer sizes are supported 64 samples: This is the preferred setting since it gives lowest latency but does not work with all sound cards. 128 samples: This setting should work on most of the available sound cards. 256 samples: This setting should only be used if only a very slow computer or a slow internet connection is available. Some sound card driver do not allow the buffer delay to be changed from within the software. In this case the buffer delay setting is disabled. To change the actual buffer delay, this setting has to be changed in 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 software will still work with this setting but with restricted performannce. 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 red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. The buffer setting is therefore a trade-off between audio quality and overall delay. 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. 128 samples setting radio button 256 samples setting radio button 512 samples setting radio button ASIO setup push button Fancy Skin If enabled, a fancy skin will be applied to the main window. Fancy skin check box Display Channel Levels If enabled, each client channel will display a pre-fader level bar. Display channel levels check box Audio Channels Select the number of audio channels to be used. There are three modes available. The mono and stereo modes use one and two audio channels respectively. In the mono-in/stereo-out mode the audio signal which is sent to the server is mono but the return signal is stereo. This is useful for the case that the sound card puts the instrument on one input channel and the microphone on the other channel. In that case the two input signals can be mixed to one mono channel but the server mix can be heard in stereo. Enabling the stereo streaming mode will increase the stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. In case of the stereo streaming mode, no audio channel selection for the reverberation effect will be available on the main window since the effect is applied on both channels in this case. Audio channels combo box Audio Quality Select the desired audio quality. A low, normal or high audio quality can be selected. The higher the audio quality, the higher the audio stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. Audio quality combo box New Client Level The new client level setting defines the fader level of a new connected client in percent. I.e. if a new client connects to the current server, it will get the specified initial fader level if no other fader level of a previous connection of that client was already stored. New client level edit box Central Server Address The central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. Default central server type combo box Central server address line edit Current Connection Status Parameter The ping time is the time required for the audio stream to travel from the client to the server and backwards. This delay is introduced by the network. This delay should be as low as 20-30 ms. If this delay is higher (e.g., 50-60 ms), your distance to the server is too large or your internet connection is not sufficient. The overall delay is calculated from the current ping time and the delay which is introduced by the current buffer settings. The upstream rate depends on the current audio packet size and the audio compression setting. Make sure that the upstream rate is not higher than the available rate (check the upstream capabilities of your internet connection by, e.g., using speedtest.net). If this LED indicator turns red, you will not have much fun using the software. ASIO Setup Mono Mono-in/Stereo-out Stereo Low Normal High Manual Default Default (North America) 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 % Fancy Skin Display Channel Levels Central Server Address: Audio Stream Rate val Ping Time Overall Delay CConnectDlg Server List The server list shows a list of available servers which are registered at the central server. Select a server from the list and press the connect button to connect to this server. Alternatively, double click a server from the list to connect to it. If a server is occupied, a list of the connected musicians is available by expanding the list item. Permanent servers are shown in bold font. Note that it may take some time to retrieve the server list from the central server. If no valid central server address is specified in the settings, no server list will be available. Server list view Server Address The IP address or URL of the server running the server software must be set here. An optional port number can be added after the IP address or URL using a comma as a separator, e.g, example.org: . A list of the most recent used server IP addresses or URLs is available for selection. Server address edit box Holds the current server IP address or URL. It also stores old URLs in the combo box list. Filter The server list is filered 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 Filter Show All Musicians Server Name Ping Time Musicians Location Server Name/Address C&ancel &Connect CHelpMenu 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 <i><a href=http://creativecommons.org/licenses/by-nc-sa/4.0>http://creativecommons.org/licenses/by-nc-sa/4.0</a></i>): 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 <b>Musician Profile:</b> Set your name or an alias here so that the other musicians you want to play with know who you are. Additionally you may set an instrument picture of the instrument you play and a flag of the country you are living. The city you live in and the skill level of 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 server. This tag will also show up at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. Alias or name edit box Instrument picture button Country flag button City edit box Skill level combo box None Musician Profile Alias/Name Instrument Country City Skill &Close Beginner Intermediate Expert 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 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 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. 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 If the Make My Server Public check box is checked, this server registers itself at the central server so that all users can see the server in the connect dialog server list and connect to it. The registering of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. Register Server Status If the Make My Server Public check box is checked, this will show the success of registration with the central server. Central Server Address The Central server address is the IP address or URL of the central server at which this server is registered. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. Default central server type combo box Central server address line edit Server Name The server name identifies your server in the connect dialog server list at the clients. If no name is given, the IP address is shown instead. 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 E&xit &Hide server &Open server Manual Default Default (North America) Server &Window Unregistered Bad address Registration requested Registration failed Check server version Registered Central Server full 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) STATUS Central Server Address: My Server Info Location: City Location: Country TextLabelNameVersion CSound 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: <b> Hz</b>. You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate.<br>Make sure to set the <b>Frames/Period</b> to a low value like <b> </b> 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 to set 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 no 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 to this software. The selected audio device could not be used because of the following error: Please restart the software. Close <b>No usable audio device (driver) found.</b><br><br>In the following there is a list of all available drivers with the associated error message:<ul> <br/>Do you want to open the ASIO driver setups? could not be started because of audio interface issues.