Commit Graph

240 Commits

Author SHA1 Message Date
Peter L Jones
a97ac9aa4e Server processing for channel levels 2020-04-06 18:58:50 +01:00
Volker Fischer
fc9970f837 fixed Linux compilation error 2020-04-05 18:57:28 +02:00
Volker Fischer
bd111c3abc some code cleanup 2020-04-05 17:35:40 +02:00
Volker Fischer
a761f9bf9e some code cleanup and small fix for audio compression (should not access the info outside the mutex because it might have changed by another thread) 2020-04-05 09:34:00 +02:00
Volker Fischer
c310aa16cd WIP 64 samples frame size support in the server, not yet working 2020-04-05 08:13:53 +02:00
Volker Fischer
57f203502c WIP on support of 64/128 samples frame size in the server 2020-04-04 19:03:19 +02:00
Volker Fischer
5a05bf6a2f only use low complexity OPUS processing for 128 samples frame size, see https://sourceforge.net/p/llcon/discussion/533517/thread/bdb3fe2195 2020-04-04 12:40:13 +02:00
Volker Fischer
40dd2e8980 changed the maximum number of clients from 40 to 50 2020-03-29 21:35:09 +02:00
Volker Fischer
4cfd54b21b audio fade-in at the server if new client connects 2020-03-29 18:03:24 +02:00
Volker Fischer
3eaec8363a changed the maximum number of clients from 20 to 40 2020-03-29 16:14:29 +02:00
Volker Fischer
53f50070a7 some more work for 64 samples frame size support 2020-03-28 16:27:45 +01:00
Peter L Jones
eca8eff4c9 Revert --histitems argument 2020-03-22 17:45:00 +00:00
Peter L Jones
32e56ff0c6 Pass number of items and days 2020-03-21 22:20:18 +00:00
Volker Fischer
791d600634 2019->2020 2020-01-01 15:41:43 +01:00
Volker Fischer
fa0f122638 fixed warnings shown in QtCreator 2019-05-17 22:55:46 +02:00
Volker Fischer
6466a4aaf7 cleanup some 'COMPATIBILITY OLD VERSION, TO BE REMOVED' 2019-05-17 22:06:48 +02:00
Volker Fischer
30b5833d3d - remove unnecessary command line argument (if directory is given, the recording is enabled automatically
- jamrecorder is not a pointer in the class but an object now
- only call jamrecorder functions if it is enabled
2019-04-11 22:25:36 +02:00
Peter L Jones
005a506b0d
Merge branch 'master' into feature/pljones-audio-stream-saving 2019-04-03 18:14:49 +01:00
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
Volker Fischer
e8096e48f0 2018 -> 2019 2019-03-24 09:30:30 +01:00
Volker Fischer
8bfdc7347a 2017 -> 2018 2018-03-09 21:13:02 +00:00
Volker Fischer
b0d37c86e7 2016 -> 2017 2017-08-11 21:08:54 +00:00
Volker Fischer
4e497d3f99 remove old CELT library 2016-02-14 16:19:14 +00:00
Volker Fischer
ca73117279 update the copyright 2015-12-31 13:14:09 +00:00
Volker Fischer
932e802eb6 fixes 2015-12-09 16:34:21 +00:00
Volker Fischer
5d693d8ea4 on request show the names of the connected clients in the server list 2015-12-06 17:51:06 +00:00
Volker Fischer
b5bae73ab3 added support for server disconnection 2015-10-17 15:37:58 +00:00
Volker Fischer
04634e4195 added debug code for measuring the timer jitter 2015-03-13 17:15:48 +00:00
Volker Fischer
33e5a07cf7 change all 2014 to 2015 2015-02-04 18:17:23 +00:00
Volker Fischer
72c5f4cc63 a licence agreement dialog can be requested by the server 2015-01-23 19:43:18 +00:00
Volker Fischer
26ccd51546 make sure the OPUS encoder/decoder function is only called if the audio compression type is actually set to OPUS codec 2014-07-28 17:46:54 +00:00
Volker Fischer
7918416054 added configurations "CONFIG+=opus_shared_lib" for using OPUS as a shared lib and "CONFIG+=nocelt" to disable legacy support for the old CELT library 2014-07-26 06:07:50 +00:00
Volker Fischer
388664e48e support for querying the server version and OS type for debugging purpose (not in the regular version available) 2014-02-21 21:25:26 +00:00
Volker Fischer
2ac7a92eaf finished implementation of a separate socket high priority thread 2014-02-16 08:20:07 +00:00
Volker Fischer
2c443c7aef avoid allocating memory in the server real-time processing routine 2014-01-12 09:48:49 +00:00
Volker Fischer
33afb04f3f - speed optimizations (removed some memory allocations in the processing routine)
- removed duplicate function
- clean up some code
2014-01-08 21:24:37 +00:00
Volker Fischer
f016e9e022 avoid allocating memory in time critical client thread -> improve socket send function in the channel 2014-01-06 15:57:40 +00:00
Volker Fischer
215be703a7 increase the thread priority of the real time timer 2014-01-06 12:53:54 +00:00
Volker Fischer
c0a67a9884 update to 2014 2014-01-05 16:52:38 +00:00
Volker Fischer
72f7c25d98 code style 2014-01-03 09:00:24 +00:00
Volker Fischer
6e49e4e92c change the mechanism of how the LEDs are updated -> no window event posts anymore to avoid blocking in the critical audio thread 2014-01-03 08:54:49 +00:00
Volker Fischer
ae874ae0b4 changed MAX_NUM_CHANNELS to 20 2013-09-08 20:15:21 +00:00
Volker Fischer
ef76866d6f remove legacy ping time message (now very old versions of llcon do not get ping measurements from the server anymore) 2013-09-07 20:30:08 +00:00
Volker Fischer
6bdb82c65f Added support for putting the receive socket in a separate thread. Unfortunately the current code does not work as expected. Some Qt warnings appear and after a while the receive socket does not receive any more network packets. Therefore a global macro is introduced to enable/disable the new code. Default is: disabled. 2013-06-03 16:07:17 +00:00
Volker Fischer
72b24fedf3 clean up "new connection" mechanism for the server (which messages are fired, etc.) 2013-05-10 19:37:57 +00:00
Volker Fischer
ddbc1d3d8d get rid of "Llcon" 2013-03-24 15:42:23 +00:00
Volker Fischer
196f0ff477 get rid of the name "llcon" 2013-03-24 10:49:25 +00:00
Volker Fischer
b69e8a3028 removed OPUS_EXPECTED_PACKET_LOSS_PERC because it seems not to be used in the CELT decoder (just for SILK) 2013-03-10 08:15:15 +00:00
Volker Fischer
3c790d28df bug fix 2013-03-04 16:11:37 +00:00
Volker Fischer
f2d4cb3e17 next try... 2013-03-03 21:56:25 +00:00
Volker Fischer
f892dc6312 bug fix 2013-03-03 21:38:23 +00:00
Volker Fischer
91548aacf6 use better high precision timer for Linux 2013-03-03 21:32:42 +00:00
Volker Fischer
05a71cd572 fixes by Michael Gorbovitski (mickg100) for OPUS performance improvement -> Thank you! 2013-02-20 17:22:04 +00:00
Volker Fischer
b4069f93f9 some code cleanup 2013-02-17 10:33:01 +00:00
Volker Fischer
694ee2fae2 bug fix: use OPUS custom interface instead of the normal one 2013-02-16 19:11:30 +00:00
Volker Fischer
eb277e3a96 support for OPUS codec 2013-02-16 18:16:12 +00:00
Volker Fischer
f0d46f4fc0 started OPUS integration by just creating the OPUS objects and do nothing with them right now 2013-02-16 10:54:40 +00:00
Volker Fischer
b518f0cd96 added a "cc6_" prior to all file names, functions and global variables 2013-02-15 20:09:10 +00:00
Volker Fischer
a04438fdc5 support for server welcome message on connect (enabled via a command line argument) 2013-02-11 20:24:38 +00:00
Volker Fischer
cc3547676b Added Support for instrument picture on fader tag 2013-02-11 15:36:47 +00:00
Volker Fischer
a7895f88ea update year to 2013 2013-01-23 10:41:13 +00:00
Volker Fischer
aada1a912f introduce command line argument for enabling the ping of the slave servers in the list to keep the NAT port open (central server functionality only) 2012-07-14 16:18:09 +00:00
Volker Fischer
0e04086d37 removed Cycle Time Variance measurement since it is not required anymore 2011-06-16 11:43:28 +00:00
Volker Fischer
4325c54605 new function interface 2011-06-16 11:37:17 +00:00
Volker Fischer
d48c1ac3b4 retain compatibility to old versions in regards to the server and the old ping messages -> to be removed later on 2011-06-12 08:04:14 +00:00
Volker Fischer
d571f5328b backup checkin, including lots of test code... 2011-06-11 05:19:48 +00:00
Volker Fischer
16f1bb0eb3 some fixes 2011-05-28 14:39:13 +00:00
Volker Fischer
0f46659fcb some more fixes 2011-05-28 12:17:01 +00:00
Volker Fischer
439dd65b46 most of the work done for separate client/server jitter buffer settings but not yet finished (does not work as expected yet) 2011-05-27 20:29:37 +00:00
Volker Fischer
691e593e0b fix for the "set jitter buffer message" lock up problem 2011-05-25 21:01:45 +00:00
Volker Fischer
49070c77c1 replaced normal ping messages with connection less ping message to avoid all the acknowledge messages 2011-05-24 19:40:57 +00:00
Volker Fischer
3b8a04a829 use different ping message for server list ping 2011-05-24 18:44:51 +00:00
Volker Fischer
b28daa079a removed old disconnect message which only works with connected channels -> replaced by a connection less disconnect message 2011-05-23 19:06:02 +00:00
Volker Fischer
a770b75a06 added a connection less message for disconnect -> does not work yet since connection less messages are not evaluated for connected channels 2011-05-22 09:47:09 +00:00
Volker Fischer
56f528b13e bug fix in server, added simulation mode in buffer base class, added deactivated test code for simulation buffer statistics, avoid audio drop outs when the jitter buffer size is changed 2011-05-17 15:39:33 +00:00
Volker Fischer
793b21f9d9 the maximum number of channel can be set via command line now, added some test functions in the buffer 2011-05-13 18:23:00 +00:00
Volker Fischer
73dc8e1d77 support for auto start minimized on Windows (not yet finished) 2011-05-08 15:01:20 +00:00
Volker Fischer
f5120f272a add support for a system tray icon for the server 2011-05-06 20:18:20 +00:00
Volker Fischer
dfa5296de0 add local port number in server registering struct to allow a connection to the local host server with different port than the default one 2011-05-04 18:18:31 +00:00
Volker Fischer
e71166d96c support for setting predefined server in the server list by the command line arguments, bug fix with connection dialog if no country is given but a city, started work for unregistering server 2011-05-03 20:37:06 +00:00
Volker Fischer
c08fe59a68 support for the new GUI controls in the server, net yet finished (still buggy) 2011-04-30 13:01:26 +00:00
Volker Fischer
886251367b support for setting the server info parameters via the command line arguments 2011-04-25 13:25:33 +00:00
Volker Fischer
23d79c5f85 the number of connected clients are now not managed with the server list but by the connection less ping time message 2011-04-25 10:51:57 +00:00
Volker Fischer
81bc9e7aad small fix in comment 2011-04-23 20:43:07 +00:00
Volker Fischer
a49ef5c6bc server list entry work (colors), some code cleanup 2011-04-18 20:42:37 +00:00
Volker Fischer
a238cd9569 first working initial server list implementation 2011-04-14 06:46:21 +00:00
Volker Fischer
79e0982ff0 some more server list implementations, some code cleanup 2011-04-09 19:42:30 +00:00
Volker Fischer
7e1ff9c38a create server list function 2011-04-09 11:12:32 +00:00
Volker Fischer
77a387ade4 attached one message to the server list 2011-04-09 10:53:34 +00:00
Volker Fischer
8dbb1949db some more server list preparation work 2011-04-07 19:09:08 +00:00
Volker Fischer
24f707f2e7 removed connecion less channel class since it is not required 2011-04-06 19:01:39 +00:00
Volker Fischer
ab4775f6a0 support for some more connection less channel messages for the central server 2011-04-05 20:09:16 +00:00
Volker Fischer
36d13454b3 added a command line argument, some code style changes 2011-04-05 18:38:22 +00:00
Volker Fischer
74ac1d075f added a command line argument, some code style changes 2011-04-05 18:34:34 +00:00
Volker Fischer
1e245e428e increase maximum possible channels to 12 2011-04-01 20:06:14 +00:00
Volker Fischer
d470a0bb68 use units in constants (e.g. HZ, MS), some more work on server list 2011-03-31 07:10:43 +00:00
Volker Fischer
9feff9057a prepared everything for transmitting/receiving the first connection less ping time measurement 2011-03-30 07:55:43 +00:00
Volker Fischer
0cff6af6d8 connection less messages system requires the host address to always be available (not stored in channel object) 2011-03-29 20:11:03 +00:00
Volker Fischer
184b995904 support for server full message and parsing of connection less messages at the server 2011-03-27 16:13:44 +00:00
Volker Fischer
8926dec08b some more work for connection less protocl mechanism 2011-03-27 08:56:24 +00:00