The Jamulus software enables musicians to perform real-time jam sessions over the internet. There is a Jamulus server which collects the audio data from each Jamulus client, mixes the audio data and sends the mix back to each client.
Find a file
Peter L Jones 8c1deffda7 Add recording support with Reaper Project generation
Includes the following changes

* Initial .gitignore
Administrative

* Fix up warning message
* Not all Windows file systems are case insensitive
Bugfixes

* (Qt5) Use QCoreApplication for headless
Possible solution to get the application to run as a headless server but it loses the nice history graph, so not ideal.

* Avoid ESC closing chat
Because ESC shouldn't close the chat window. Or the main app window.

* Add console logging support for Windows
Whilst looking for the headless support, I found this idea for Windows logging.  New improved version.  This makes far fewer changes.

----

* Add recording support with Reaper Project generation
The main feature!
    * New -r option to enable recording of PCM files and conversion to Reaper RPP with WAV files
    * New -R option to set the directory in which to create recording sessions
    You need to specify the -R option, there's no default... so I guess -r and -R could be combined.
    * New -T option to convert a session directory with PCM files into a Reaper RPP with WAV files
    You can use -T on "failed" sessions, if the -r option captures the PCMs but the RPP converter doesn't run for some reaon. (It was useful during development, maybe less so once things seem stable.)

The recorder is implemented as a new thread with queuing from the main "real time" server thread.

When a new client connects or if its audio format changes (e.g. mono to stereo), a new RIFF WAVE file is started.  Each frame of decompressed audio for each client written out as LPCM to the file.  When the client disconnects, the RIFF WAVE headers are updated to reflect the file length.

Once all clients disconnect, the session is considered ended and a Reaper RPP file is written.
2019-04-03 18:12:45 +01:00
android preparation for MIDI controller audio fader level support 2019-01-12 12:45:08 +00:00
libs/opus CVE-2017-0381 2017-03-29 15:57:13 +00:00
linux preparation for MIDI controller audio fader level support 2019-01-12 12:45:08 +00:00
mac small fix 2019-01-12 14:34:35 +00:00
src Add recording support with Reaper Project generation 2019-04-03 18:12:45 +01:00
windows Add recording support with Reaper Project generation 2019-04-03 18:12:45 +01:00
.gitignore Add recording support with Reaper Project generation 2019-04-03 18:12:45 +01:00
AUTHORS initial version 2006-01-28 11:29:22 +00:00
ChangeLog use integer for the fader level message 2019-01-12 12:59:16 +00:00
COPYING update licence for OPUS 2013-02-19 17:59:35 +00:00
INSTALL 2017 -> 2018 2018-03-09 21:13:02 +00:00
Jamulus.pro Add recording support with Reaper Project generation 2019-04-03 18:12:45 +01:00
NEWS initial version 2006-01-28 11:29:22 +00:00
README 2017 -> 2018 2018-03-09 21:13:02 +00:00
TODO update 2015-03-15 13:18:45 +00:00

/******************************************************************************\
 * Copyright (c) 2004-2018
 *
 * Author(s):
 *	Volker Fischer
 *
 ******************************************************************************
 *
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 *
\******************************************************************************/

Jamulus - Internet Jam Session Software
---------------------------------------

Low-Latency (Internet) Connection tool
Under the GNU General Public License (GPL)
http://llcon.sourceforge.net


INTRODUCTION:
The Jamulus software enables musicians to perform real-time jam sessions over
the internet. There is one server running the Jamulus server software which
collects the audio data from each Jamulus client, mixes the audio data
and sends the mix back to each client.

Jamulus is Open Source software (GPL, GNU General Public License) and runs under
Windows (ASIO), MacOS (Core Audio) and Linux (Jack). It is based on the Qt
framework and uses the OPUS audio codec. 

The required minimum internet connection speed is 200 kbps for the up- and
downstream. The ping time (i.e. round trip delay) from your computer to the
server should not exceed 40 ms average.

The source code is hosted at Sourceforge.net.


EXTERNAL CODE:
This code contains open source code from different sources. The developer(s) want
to thank the developer of this code for making their efforts available under open
source:

- Qt cross-platform application framework: http://qt-project.org

- Opus Interactive Audio Codec: http://www.opus-codec.org

- Audio reverberation code: by Perry R. Cook and Gary P. Scavone, 1995 - 2004
  (taken from "The Synthesis ToolKit in C++ (STK)"):
  http://ccrma.stanford.edu/software/stk
  
- Some pixmaps are from the Open Clip Art Library (OCAL):
  http://openclipart.org