[WIP] new crone, standalone jack client #650
Conversation
|
(PS: sorry about the duplicate commits. this branch has been rebased and GH gets confused. they will turn into merge commits, or of course can redo this when/if time time to merge.) |
|
|
||
| using namespace crone; | ||
|
|
||
| class JackClient::Imp { |
tehn
Nov 22, 2018
Member
imp!!! 😸
imp!!!
|
read through the whole thing, looks great and very insightful/educational! do you want to keep moving on to testing now. |
|
i was just gonna roll it into the main repo under this project, already added the sources here... |
|
@tehn i've gone ahead and merged this set of changes even though its incomplete:
but anyways i wonder if you think it's too tricky to have to refactor the lua scripts using softcut right now. (mlr, cranes,... anything else?) if we can do that i think it would be good to just go matron->crone directly. not least b/c it is then easy for a lua script to load a scsynth engine and also use softcut. |
|
softcut is priority. mlr can be completely redesigned/redone, and i'll help dan derks fix crane (or do it for him) regarding any changes... so please do not be concerned with lua script compatibility. agreed that softcut should be persistent and not involved in engine-space, almost like an extension to the do you have an idea how to implement the softcut polls since they'll be always available? just have callback similar to |
yes, either that or take the opportunity to make an experiment using posix shared memory. (for levels and buffer waveform thumbnails.) |
|
oh but you're talking about the lua interface huh. will probably end up still providing a way to enable/disable phase and loop polls (whatever the IPC interface happens to be,) because there will be some measurable performance impact from computing these on the backend. IOW, they will look like the pitch polls as far as lua is concerned. |
|
BTW, i did get
|
|
added barebones Tape class. record is implemented, seems to work fine. playback isn't implemented yet but should be straightforward. (stubs in |
|
thank you for the individual commits--- it makes following how this works way easier |
|
let me know if there's anything i can explain or document better right now. as it stands, probably the most significant thing is just the OSC interface. all methods that the |
|
currently i'm adding some basic buffer/soundfile management for softcut. |
| @@ -141,5 +141,16 @@ extern void o_set_insert_fx_off(); | |||
| extern void o_set_insert_fx_mix(float level); | |||
| extern void o_set_insert_fx_param(const char* name, float value); | |||
|
|
|||
| //--- softcut parameter controls | |||
| //--- TODO: no lua glue for these yet | |||
tehn
Dec 1, 2018
Member
i can jump one this if you want? (lua glue...)
i can jump one this if you want? (lua glue...)
catfact
Dec 2, 2018
•
Author
Collaborator
sure. seems a sensible division of labor if i make changes to oracle.h/c and stop there?
if we're going to actively collaborate on this branch it would probably make sense to close this PR and make a new feature branch in the upstream repo, instead of on my fork. (not technically required, since i enabled maintainer access for this branch, but maybe more convenient.)
sure. seems a sensible division of labor if i make changes to oracle.h/c and stop there?
if we're going to actively collaborate on this branch it would probably make sense to close this PR and make a new feature branch in the upstream repo, instead of on my fork. (not technically required, since i enabled maintainer access for this branch, but maybe more convenient.)
tehn
Dec 2, 2018
Member
it does seem like a good division. i'll handle weaver implementation then.
agreed that a merge to monome/new-crone would be nice as i tend to work on many different norns hardwares with different git setups :/
it does seem like a good division. i'll handle weaver implementation then.
agreed that a merge to monome/new-crone would be nice as i tend to work on many different norns hardwares with different git setups :/
norns/cronecontains a new jack client designed to replace some of the Crone supercollider components.it has 4 inputs and 2 outputs. the idea is that the first pair of inputs are to be connected to system capture ports, 2nd pair is connected to supercollider playback, and outputs are connected to system playback.
cronewill perform mixing and routing, host "built-in" effects and thesoftcutengine.this is WIP:
libloand OSC messages, which is overkill.will make some roadmap issues and update this PR accordingly.
but for now:
the very first step is for people to try building and running this project on the norns (requirements:
cmake,libboost-dev,libjack-dev)i will be stitching fx and softcut into here shortly
norns/sc/coreneeds to be updated; engines can send directly to jack client output ports.need to programmatically connect jack clients
supernova->crone(and disconnectsupernova->system)as an interim measure, we could make an OSC bridge in
sclangfor routing/level commands; or, go straight to making changes inmatron/oracle.