Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate recorder #3

Merged
merged 16 commits into from
Apr 12, 2019
Merged

Integrate recorder #3

merged 16 commits into from
Apr 12, 2019

Conversation

corrados
Copy link
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