Skip to content

Integrate recorder#3

Merged
corrados merged 16 commits intomasterfrom
integrate_recorder
Apr 12, 2019
Merged

Integrate recorder#3
corrados merged 16 commits intomasterfrom
integrate_recorder

Conversation

@corrados
Copy link
Copy Markdown
Contributor

Integration of the new code is now finished and can be merge to the master branch. TODO: Testing of the code on all OSs is still open (but can be fixed on the master branch).
Thank you, pljones, for your code!

pljones and others added 16 commits April 3, 2019 18:12
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.
Add recording support with Reaper Project generation
…e recording is enabled automatically

- jamrecorder is not a pointer in the class but an object now
- only call jamrecorder functions if it is enabled
@corrados corrados self-assigned this Apr 12, 2019
@corrados corrados merged commit 9ac72ec into master Apr 12, 2019
@corrados corrados deleted the integrate_recorder branch April 12, 2019 21:04
corrados pushed a commit that referenced this pull request May 12, 2020
corrados pushed a commit that referenced this pull request May 23, 2020
corrados pushed a commit that referenced this pull request May 25, 2020
corrados pushed a commit that referenced this pull request Jun 5, 2020
Merge pull request #330 from ignotus666/master
corrados pushed a commit that referenced this pull request Jun 8, 2020
corrados pushed a commit that referenced this pull request Jun 19, 2020
corrados pushed a commit that referenced this pull request Jul 10, 2020
corrados pushed a commit that referenced this pull request Aug 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants