MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / make_direct_dit_plan

Function make_direct_dit_plan

src/models/ace_step/session.cpp:29–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27}
28
29AceStepPlan make_direct_dit_plan(const AceStepRequest &request, const AceStepTaskRoute &route) {
30 AceStepPlan plan;
31 plan.caption = request.prompt;
32 if (request.bpm.has_value() && *request.bpm > 0) {
33 plan.metadata.bpm = request.bpm;
34 }
35 if (request.keyscale.has_value() && ace_step_metadata_text_is_provided(*request.keyscale)) {
36 plan.metadata.keyscale = request.keyscale;
37 }
38 if (request.timesignature.has_value() && ace_step_metadata_text_is_provided(*request.timesignature)) {
39 plan.metadata.timesignature = request.timesignature;
40 }
41 const bool locks_duration_to_source =
42 (route.locks_duration_to_source || ace_step_request_uses_flow_edit_morph(request)) &&
43 request.source_audio.has_value() &&
44 request.audio_code_ids.empty();
45 if (locks_duration_to_source) {
46 const runtime::AudioBuffer &audio = *request.source_audio;
47 plan.metadata.duration =
48 static_cast<int64_t>(static_cast<float>(audio.samples.size() / static_cast<size_t>(audio.channels)) /
49 static_cast<float>(audio.sample_rate));
50 } else if (request.generation.duration_seconds > 0.0F) {
51 plan.metadata.duration = static_cast<int64_t>(request.generation.duration_seconds);
52 }
53 plan.metadata.language = request.vocal_language;
54 return plan;
55}
56
57void apply_request_audio_codes(AceStepPlan &plan, const AceStepRequest &request) {
58 if (request.audio_code_ids.empty() || ace_step_request_uses_flow_edit_morph(request)) {

Callers 1

runMethod · 0.85

Calls 4

emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected