Commit graph

98 commits

Author SHA1 Message Date
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
ea24503fdc preparation for MIDI controller audio fader level support 2019-01-12 12:45:08 +00:00
Volker Fischer
a7454095d3 for ASIO and 4 channel input, support mixing channels 1&2 with 3&4 2018-03-26 15:56:34 +00:00
Volker Fischer
7f41f186d4 prepare for special summing channels 2018-03-25 11:21:58 +00: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
4cbee9d1d5 fixes for new Qt version and new Visual Studio compiler (VS 2015) 2016-05-11 15:44:16 +00:00
Volker Fischer
ca73117279 update the copyright 2015-12-31 13:14:09 +00:00
Volker Fischer
33e5a07cf7 change all 2014 to 2015 2015-02-04 18:17:23 +00:00
Volker Fischer
c0a67a9884 update to 2014 2014-01-05 16:52:38 +00:00
Volker Fischer
9459a73ab5 do the same calculation as in client.cpp (first multiplication, then division) 2013-12-17 20:55:35 +00:00
Volker Fischer
3fc6ccc8aa introduce GetInOutLatencyMs to query the actual latency from the sound interface 2013-12-17 20:52:38 +00:00
Volker Fischer
a0c318eeec some speed optimizations 2013-12-14 22:16:20 +00:00
Volker Fischer
a7895f88ea update year to 2013 2013-01-23 10:41:13 +00:00
Volker Fischer
3f75913dca better handling of sound card reinits 2012-01-28 11:51:14 +00:00
Volker Fischer
b5e47ed9b5 small fix 2012-01-22 13:46:15 +00:00
Volker Fischer
73f408e401 make sure that sound working thread is actually killed on stopping the audio interface 2011-12-27 16:50:38 +00:00
Volker Fischer
8bbc9adaa3 moved a check from the sound class in the sound base class 2011-12-07 20:18:56 +00:00
Volker Fischer
914e41fac3 move function call in other function 2011-12-06 19:30:52 +00:00
Volker Fischer
d4a6ea617f added a debugging command line argument so that the complete server list of registered servers can be seen 2011-11-19 21:24:03 +00:00
Volker Fischer
8720c40db6 some more work for moving functions from the Windows sound interface to the sound base class 2011-10-18 20:04:56 +00:00
Volker Fischer
a8795c1bf3 put some functions from Windows sound in sound base class 2011-10-12 19:06:39 +00:00
Volker Fischer
30656eca99 fixed some warnings 2011-04-23 15:58:29 +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
f0a3e97b96 update of copyright 2011-02-22 18:56:52 +00:00
Volker Fischer
7540ca9d63 added some VST preparations 2010-03-31 20:11:01 +00:00
Volker Fischer
c1cd911c56 added settings save/load for sound card channel mapping settings 2010-03-20 18:36:59 +00:00
Volker Fischer
cc6b8a85f8 some more work on sound card channel mapping support for Windows 2010-03-20 08:55:42 +00:00
Volker Fischer
9828ceec81 put ASIO member variables in class, prepared for ASIO input/output channel selection 2010-03-19 20:23:31 +00:00
Volker Fischer
6869f026bc bug fix 2010-03-03 18:59:22 +00:00
Volker Fischer
e1b949e318 fix for m-audio ASIO driver 2010-03-02 18:22:55 +00:00
Volker Fischer
9f3d07ca67 added some more ASIO sample conversions 2010-02-04 20:25:57 +00:00
Volker Fischer
75b1994257 added some more ASIO sample formats (not yet all implemented!), support for sound card conversion buffer to support sound card frame sizes which are different from the predefined ones 2010-02-03 19:27:48 +00:00
Volker Fischer
769f02e5e7 updated copyright 2010-01-03 13:40:46 +00:00
Volker Fischer
e05667268d better error message text 2009-12-05 09:41:05 +00:00
Volker Fischer
70e53c4383 fixes for error messages, removed std::string -> replaced by QString 2009-12-01 20:08:21 +00:00
Volker Fischer
e9820ddcb0 added more information on error message 2009-12-01 08:52:06 +00:00
Volker Fischer
278a252822 fix for bug that software crashed in case the driver properties of current selected driver have incompatibly changed 2009-11-30 21:16:40 +00:00
Volker Fischer
c549ae90f0 bug fix in case max and min values for supported ASIO driver frame sizes are the same (software freezes in this case) 2009-08-16 00:26:48 +00:00
Volker Fischer
034530474c start work for supporting CELT codec, code does not compile at the moment (backup checkin) 2009-07-24 14:31:25 +00:00
Volker Fischer
d27fab9999 some more work on sound interface 2009-03-12 11:56:15 +00:00
Volker Fischer
caad05ddaa preparation for buffer size change callback for audio interfaces, small fix in server GUI 2009-03-10 17:33:12 +00:00
Volker Fischer
2fcb37d0e9 some more JACK code, this should be a first working version -> not yet tested 2009-03-08 21:38:38 +00:00
Volker Fischer
1697b8f9cd bug fix with sound card device selection, show red text if actual sound card buffer size differs from preffered value 2009-03-08 17:14:37 +00:00
Volker Fischer
81d119ba4a bug fix 2009-03-08 11:22:55 +00:00
Volker Fischer
3bf3ab832d some preparations for new JACK audio interface 2009-03-07 22:56:46 +00:00
Volker Fischer
0308768ecb preparation for sound card buffer change notification action 2009-03-07 21:13:52 +00:00
Volker Fischer
f38aa17ca6 fix for setting sound card device 2009-03-07 20:45:00 +00:00