Skip to content

Commit e3312b8

Browse files
author
Your Name
committed
windows testing
1 parent 097e7f1 commit e3312b8

File tree

18 files changed

+96
-24
lines changed

18 files changed

+96
-24
lines changed

daw/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ cmake ..
88
cmake --build .
99
```
1010

11+
## Windows
12+
13+
to investigate: VS2026 has a compile error that VS2022 doesn't. stick to 2022 for now.
14+
1115
## Assets
1216

1317
raw gltf files right out of blender aren't great, so we use gltfpack on the result: run

daw/assets/kitskeys.glb

-576 Bytes
Binary file not shown.

daw/src/chorus/chorus.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ class GuiApp : public kitgui::BaseApp {
9797
public:
9898
GuiApp(kitgui::Context& ctx, ParamsFeature& params) : kitgui::BaseApp(ctx), mParams(params) {}
9999
void OnUpdate() override {
100+
mParams.FlushFromAudio();
100101
ImGui::TextWrapped(
101102
"KitsChorus is currently based on the Juno-60 chorus algorithm. More algorithms Soon(tm), maybe?");
102103
kitgui::DebugParam<ParamsFeature, Params::Rate>(mParams);

daw/src/distort/distort.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ class GuiApp : public kitgui::BaseApp {
178178
public:
179179
GuiApp(kitgui::Context& ctx, ParamsFeature& params) : kitgui::BaseApp(ctx), mParams(params) {}
180180
void OnUpdate() override {
181+
mParams.FlushFromAudio();
181182
kitgui::DebugParam<ParamsFeature, Params::Algorithm>(mParams);
182183
kitgui::DebugParam<ParamsFeature, Params::Gain>(mParams);
183184
kitgui::DebugParam<ParamsFeature, Params::Tone>(mParams);

daw/src/example/example.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class GuiApp : public kitgui::BaseApp {
6464
public:
6565
GuiApp(kitgui::Context& ctx, ParamsFeature& params) : kitgui::BaseApp(ctx), mParams(params) {}
6666
void OnUpdate() override {
67+
mParams.FlushFromAudio();
6768
ImGui::TextWrapped("UI example (TODO)");
6869
/*mParams.DebugImGui();*/
6970
}

daw/src/freqshift/freqshift.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ class GuiApp : public kitgui::BaseApp {
8787
public:
8888
GuiApp(kitgui::Context& ctx, ParamsFeature& params) : kitgui::BaseApp(ctx), mParams(params) {}
8989
void OnUpdate() override {
90+
mParams.FlushFromAudio();
9091
ImGui::TextWrapped(
9192
"KitFreqsOut shifts the frequencies of the input sound by a fixed hz amount. this is most useful for "
9293
"inharmonic sounds; aka sound effects, percussion, etc. Use it on a voice clip to get alien sounds, or "

daw/src/gui/debugui.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ class BaseParamKnob : public kitgui::Knob {
7777
clap_param_info_t info;
7878
mParam.FillInformation(id, &info);
7979
mName = info.name;
80+
mMin = info.min_value;
81+
mMax = info.max_value;
8082
}
8183
~BaseParamKnob() override = default;
8284
clap_id GetParamId() const { return mId; }

daw/src/gui/kitguiFeature.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class KitguiFeature : public clapeze::GuiFeature {
3737
bool Show() override;
3838
bool Hide() override;
3939

40+
kitgui::Context& GetContext() { return mCtx; };
41+
4042
private:
4143
clapeze::PluginHost& mHost;
4244
kitgui::Context mCtx;

daw/src/harmonizer/harmonizer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ class GuiApp : public kitgui::BaseApp {
123123
public:
124124
GuiApp(kitgui::Context& ctx, ParamsFeature& params) : kitgui::BaseApp(ctx), mParams(params) {}
125125
void OnUpdate() override {
126+
mParams.FlushFromAudio();
126127
ImGui::TextWrapped(
127128
"This is a pitch shift effect inspired by the EvenTide H910, the very first realtime pitch shift hardware "
128129
"module. This, of course, means the way it achieves this effect is kind of nasty, and not very "

daw/src/keysynth/keysynth.cpp

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ class Processor : public clapeze::InstrumentProcessor<ParamsFeature::ProcessorHa
206206
// filter
207207
// range from 8hz to 12.5khz
208208
float filterNote = kitdsp::lerpf(0.0f, 127.0f, params.Get<Params::FilterCutoff>());
209-
float res = params.Get<Params::FilterResonance>();
209+
float res = params.Get<Params::FilterResonance>() * 0.89f; // 0.85 acts as cap, experimentally determined
210210
float filterSteepness = 0.5f; // steeper means "achieves self-oscillation quicker"
211211
float filterQ = 0.5f * std::exp(filterSteepness * (res / (1 - res))); // [0, 1] -> [0.5, inf]
212212
float filterModMix = params.Get<Params::FilterModMix>();
@@ -302,15 +302,37 @@ class GuiApp : public kitgui::BaseApp {
302302
mScene->Load("assets/kitskeys.glb");
303303
// TODO: to update all this if the viewport changes
304304
mScene->SetViewport({600.0f, 400.0f});
305+
mScene->SetBrightness(0.0025f); // idk why magnum is so intense by default, to investigate
305306

306307
struct KnobSetupInfo {
307308
Params param;
308309
std::string node;
309310
};
310311
const std::vector<KnobSetupInfo> knobs{
311-
{Params::PolyMode, "knob-mid-Davies-1900h"}, {Params::PolyCount, "knob-mid-Davies-1900h.001"},
312-
{Params::OscOctave, "knob-mid-Davies-1900h.003"}, {Params::OscTune, "knob-mid-Davies-1900h.004"},
313-
{Params::FilterCutoff, "knob-mid-Davies-1900h.006"}, {Params::FilterResonance, "knob-mid-Davies-1900h.005"},
312+
{Params::PolyMode, "knob-mid-Davies-1900h"},
313+
{Params::PolyCount, "knob-mid-Davies-1900h.001"},
314+
{Params::PolyChordType, "knob-mid-Davies-1900h.002"},
315+
{Params::OscOctave, "knob-mid-Davies-1900h.003"},
316+
{Params::OscTune, "knob-mid-Davies-1900h.004"},
317+
{Params::OscModMix, "knob-small-trimpot-R-0904N-L-25KC"},
318+
{Params::OscModAmount, "knob-small-trimpot-R-0904N-L-25KC.001"},
319+
{Params::FilterCutoff, "knob-mid-Davies-1900h.006"},
320+
{Params::FilterResonance, "knob-mid-Davies-1900h.005"},
321+
{Params::FilterModMix, "knob-small-trimpot-R-0904N-L-25KC.002"},
322+
{Params::FilterModAmount, "knob-small-trimpot-R-0904N-L-25KC.003"},
323+
{Params::LfoRate, "knob-mid-Davies-1900h.008"},
324+
{Params::LfoShape, "knob-mid-Davies-1900h.009"},
325+
{Params::EnvAttack, "knob-mid-Davies-1900h.010"},
326+
{Params::EnvDecay, "knob-mid-Davies-1900h.011"},
327+
{Params::EnvSustain, "knob-mid-Davies-1900h.012"},
328+
{Params::EnvRelease, "knob-mid-Davies-1900h.013"},
329+
{Params::VcaGain, "knob-mid-Davies-1900h.007"},
330+
{Params::VcaLfoAmount, "knob-small-trimpot-R-0904N-L-25KC.004"},
331+
};
332+
333+
// TODO
334+
const std::vector<KnobSetupInfo> toggles{
335+
{Params::VcaEnvDisabled, "switch-toggle"},
314336
};
315337

316338
// TODO: data-driven
@@ -367,6 +389,7 @@ class GuiApp : public kitgui::BaseApp {
367389
kitgui::DebugParam<ParamsFeature, Params::VcaLfoAmount>(mParams);
368390
}
369391
void OnUpdate() override {
392+
mParams.FlushFromAudio();
370393
mScene->Update();
371394
// imgui
372395
if (ImGui::BeginMenuBar()) {
@@ -379,12 +402,20 @@ class GuiApp : public kitgui::BaseApp {
379402
for (auto& knob : mKnobs) {
380403
clap_id id = knob->GetParamId();
381404
double raw = mParams.GetMainHandle().GetRawValue(id);
405+
406+
auto pos = mScene->GetObjectScreenPositionByName(knob->GetSceneNode());
407+
knob->mShowDebug = mShowDebugWindow;
382408
if (knob->Update(raw)) {
383409
mParams.GetMainHandle().SetRawValue(id, raw);
384410
}
385411
// we assume the knob is at 12-o-clock, and knobs have 0.75turn(270deg) ranges
412+
auto normalizedValue = kitdsp::clamp((raw - knob->mMin) / (knob->mMax - knob->mMin), 0.0, 1.0);
386413
constexpr float maxTurn = kitdsp::kPi * 2.0f * 0.75f;
387-
mScene->SetObjectRotationByName(knob->GetSceneNode(), (static_cast<float>(raw) - 0.5f) * -maxTurn);
414+
mScene->SetObjectRotationByName(knob->GetSceneNode(), (static_cast<float>(normalizedValue) - 0.5f) * -maxTurn);
415+
}
416+
417+
if(ImGui::IsKeyPressed(ImGuiKey_GraveAccent)) {
418+
mShowDebugWindow = !mShowDebugWindow;
388419
}
389420

390421
if (mShowDebugWindow) {
@@ -401,7 +432,7 @@ class GuiApp : public kitgui::BaseApp {
401432
ParamsFeature& mParams;
402433
std::unique_ptr<kitgui::Scene> mScene;
403434
std::vector<std::unique_ptr<kitgui::BaseParamKnob>> mKnobs;
404-
bool mShowDebugWindow = false;
435+
bool mShowDebugWindow = true;
405436
};
406437
#endif
407438

@@ -446,7 +477,7 @@ class Plugin : public InstrumentPlugin {
446477
#if KITSBLIPS_ENABLE_GUI
447478
ConfigFeature<clapeze::AssetsFeature>(GetHost());
448479
// aspect ratio 1.5
449-
kitgui::SizeConfig cfg{600, 400, true, true};
480+
kitgui::SizeConfig cfg{600, 400, false, true};
450481
ConfigFeature<KitguiFeature>(
451482
GetHost(), [&params](kitgui::Context& ctx) { return std::make_unique<GuiApp>(ctx, params); }, cfg);
452483
#endif

0 commit comments

Comments
 (0)