Softcut buf worker #958
Softcut buf worker #958
Conversation
|
btw, i'm gonna have probably quite a few crone PRs coming up that are dependent on each other and possiby with messy history. it might make sense to merge to a feature branch instead of master... lmk |
|
i can help test these edge cases. yes if you'd like to do a crone feature branch with several PR's i'm cool with that (but also fine with master if you prefer) |
|
ok, so far it seems to have the desired effect. testing:
(the point being to generate some timing-sensitive OSC traffic between
before this change, the tremolo would stop while the soundfile loading tied up crone's OSC handler. after the change it seems fine. so i'll go ahead and finish the other buffer job types |
|
ok, added implementation and glue for remaining methods. ( haven't tested these yet.. clocking out for the moment. (and there are still disk optimizations to do; we are still seeking on every I/O frame which is idiotic but simple.) there are quite a few parameters and cases (src/dst position and channels..) so it's not impossible that i typo'd something, switched param order somewhere &c. (to be clear, all changes are on crone side - in |
|
@catfact do you expect to add much more to this branch? was going to start testing everything thoroughly |
|
y'know, maybe not really. two things:
so i'm going to remove "do not merge" label. it is still pending test - i really have not tried all combinations of stereo/mono input/output and have basically just tested the mono case in both directions. but i think further improvements can be dealt with as separate issues. |
|
not compiling presently on-device:
side note: the CI setup just generates docs, so the "all checks passed" is a little misleading |
|
oh sorry, i'll fix. meantime try rolling back to |
|
no problem-- i also rolled back my earlier push and PR'd your repo for the same buffer fix i'll do some testing on this! |
|
fixed compilation on x86 but not yet tried on pi. (should be fine.) the broken part was when i pushed WIP for job-complete notifications. that's still in there and i'd welcome any thoughts on it. should now send this has clear use cases for debugging but i don't know whether its useful beyond that. buffer work queue is quite large, so there should be no need for queuing/throttling work requests on matron side, unless making hundreds or thousands of requests (which would be very weird design.) but maybe there are times when some action needs to wait on buffer job completion (e.g., save soundfile, then do something with it on disk.) |
|
just checked, compiles on hardware. re: buffer work completion callbacks--- i can see them being useful as you say. i haven't given much thought how to deal with the lua syntax. i'll move on to checking functionality |
|
oh, want to merge this? catfact#4 |
fix reads
|
yikes--- crone now segfaults when matron connects. (i'm manually start/stopping matron and crone) i can continue looking at this on saturday, apologies for the delay |
|
Hm... Up til |
|
Oops Up til e6b4fd8 was tested extensively on device... |
|
alright, this is too borked now with the merges and errors. closing and will re-open when i can sit down with it again |
this is WIP, but putting it up for early testing in case that's useful.
buffer management is now done with a dedicated worker thread; IPC interface makes requests that are placed on a job queue.
i've only implemented the
softcut/buffer/read_monocommand, will finish the rest and refactor/rewrite for disk efficiency.i'd like as much testing coverage as possible for this since there are lots of edge cases:
etc