-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Recording after rebase to master #4994
Conversation
audioPort as nullptr by default.
frames by the masterGain.
"played" (recorded).
SampleBuffer. That solves problem with recording that caused samples to be moved and messed up. Thanks @-BaraMGB for helping.
Previously, begining record in any position would result the data being in the end of the TCO. @see LMMS#3947 (comment) Thanks to @-BaraMGB :)
`updateMenu`, use a virtual function overriden by every Track implemetation.
input channel configurations. And support recording of one channel and converting it to two. The user would be able to set their input config per track, or globally. For each recorded sampletrack, the recorded will get the channel config and will duplicate the samples from one channel to the other in a case of mono input.
options unchecked will be considered as global default. Suggested by @-tresf, Thanks!
actual data starts after that.
instead of hacking sampleBuffer ()->startFrame (). That solves a bug with `startFrame ()` being negetive in recording some cases.
rate. The deadblock was caused by the mixer stopping which make the recording thread to wait until it get started again and in the other side, the exporting thread which wants to acquire a mutex that had been locked by the recording thread. Many thanks to PhysSong :)
support is not available. Thanks to @-Sawuare.
played correctly after saving and loading a project due to sample rate not getting saved in the project file.
right place when it not played from the begining. That has created a difference between the ticks and the metronome and the sample track. The cause of the problem was that the calculation of the frame to play was wrong: we had calculated `framesPerTick` according to the current engine's sample rate instead of the SampleBuffer's sample rate.
automaticlly create "record sample tco" if there is no recording tco. This commit adds per-track record setting. If a sample track is set as record, lmms will check if there is a tco that set to record: * If there is, it will record into it. * If there is not, it will create a special tco that get created on recording, and as long as the recording.
and SampleTrack::m_recordingChannel.
avoid a warning. Thanks to @-PhysSong.
Many thanks to @-PhysSong.
@Reflexe Sorry for repetitively bumping this, but do you have any further plans on this PR? It's one of the features with many demands. |
Sorry about the delay. I'm actively working on this locally and will keep your all updated. |
The biggest problem of this PR is that it's very hard to review. I think this PR mainly consists of:
@Reflexe As you may know, the changes in |
Any update on this? I feel like this is a key feature for any DAW |
@Reflexe Do you want/need some help? If it's the case, I can try. |
Just forked and compiled this branch. Great job! Recording worked pretty good with Jack. Looking forward to see this feature in a release version! :) |
Sorry if I shouldn't bump this, but any update? My workflow would be heavily improved if this is implemented.
Are there currently any UI elements in place? I built this branch but still see no way to record. |
There is a lot more merge conflicts than "non-technical" user can solve. |
As I mentioned a while ago, I'm preparing to revive this PR by splitting to smaller PRs. As far as I understand, this PR consists of:
Now I have to analyze their dependency chain and look into individual commits. |
It seems like only a few changes are actually required if we give up supporting live updates while recording. Live updating requires a lot of changes regarding internal data structure, thread safety, and much more. |
Notes for who are looking for downloads: Due to the merge conflicts, neither I or the bot can't provide downloads as-is. As I mentioned above, this pull request is being reworked by me. It's not ready for review at this moment, and there won't be a new pull request until the project reorganization(#5592) finishes. If there are enough demands for testing binaries, However, I can consider providing unofficial binaries for the new rebased version(Warning: still WIP!). |
I remember trying a few odd things on the latest commits. Removing them should give a relatively working recording functionality. Do you have specific instabilities / errors? |
Is there any reason to not merge it to master? |
That's one of them:
|
it will need to be updated to merge it now ? |
This one is being continued in #5990 and probably more future PRs. |
Moved here: #5990 |
This is a refactored and rebased-to-master version of #4531 .
Bugs
samples/empty.wav
w2_invsinehalf.flac
has a furry tail in BitInvader due to resampling(maybe an issue with Graph?)Enhancements