VST and JUCE screenshot update.
This commit is contained in:
parent
adcbcdfd5e
commit
cda05294f5
9 changed files with 82 additions and 1 deletions
10
docs/JUCE.md
10
docs/JUCE.md
|
|
@ -20,6 +20,16 @@ Synthesis is the real xtc **Soft Keys** implementation, called through
|
||||||
uses a separate PIC build of the C archive with JACK/FLTK disabled; the installed
|
uses a separate PIC build of the C archive with JACK/FLTK disabled; the installed
|
||||||
application and existing build directories are not modified.
|
application and existing build directories are not modified.
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The native editor rendered at 2× scale, with effects enabled and -6 dB output;
|
||||||
|
no audio device is opened for this capture. Also see
|
||||||
|
[the JUCE VST3 in xtc's instrument chooser](../screenshots/juce-vst3-instrument.png)
|
||||||
|
and [capture commands and context](../screenshots/README.md#steinberg-and-juce-sdk-integration-phases-106107).
|
||||||
|
The editor image is separate from xtc's FLTK host, which does not embed it.
|
||||||
|
|
||||||
## Licensing and dependency impact
|
## Licensing and dependency impact
|
||||||
|
|
||||||
The inspected JUCE checkout is 9.0.4, revision
|
The inspected JUCE checkout is 9.0.4, revision
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,17 @@ check without adding a C++ runtime or network dependency to libxtc.
|
||||||
See [the example instructions](../examples/steinberg/README.md) for SDK versions,
|
See [the example instructions](../examples/steinberg/README.md) for SDK versions,
|
||||||
build commands, validation and ASIO diagnostics.
|
build commands, validation and ASIO diagnostics.
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The actual SDK-built effect in xtc's host. See its
|
||||||
|
[identity dialog](../screenshots/steinberg-sdk-identity.png), the
|
||||||
|
[SDK Sine instrument chooser](../screenshots/steinberg-sdk-instrument.png) and
|
||||||
|
[capture commands](../screenshots/README.md#steinberg-and-juce-sdk-integration-phases-106107).
|
||||||
|
These examples have no custom editor; the screenshots show xtc's host interface
|
||||||
|
with playback stopped. They do not demonstrate ASIO hardware operation.
|
||||||
|
|
||||||
## ASIO and VST2 scope
|
## ASIO and VST2 scope
|
||||||
|
|
||||||
ASIO is native driver I/O, separate from VST plugin hosting. The optional Windows
|
ASIO is native driver I/O, separate from VST plugin hosting. The optional Windows
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ VST3 insert chains.
|
||||||
The gallery captures are actual rendered application windows and menus on a
|
The gallery captures are actual rendered application windows and menus on a
|
||||||
1440 × 960 virtual X11 screen. The promotional `overview.png` is a designed
|
1440 × 960 virtual X11 screen. The promotional `overview.png` is a designed
|
||||||
composite of cropped, proportionally scaled captures with added headings; the
|
composite of cropped, proportionally scaled captures with added headings; the
|
||||||
other captures have no mockups, compositing or image edits.
|
other captures have no mockups, compositing or image edits. The JUCE editor
|
||||||
|
image below uses its separately documented direct component-rendering path.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
@ -29,6 +30,52 @@ APIs and GUI history/preparation paths. Original projects, media and user
|
||||||
configuration are not overwritten. Black margins are the virtual desktop;
|
configuration are not overwritten. Black margins are the virtual desktop;
|
||||||
floating views show the actual detached windows together.
|
floating views show the actual detached windows together.
|
||||||
|
|
||||||
|
## Steinberg and JUCE SDK integration (Phases 106–107)
|
||||||
|
|
||||||
|
Captured on 2026-11-06 from the built SDK examples, with no fabricated UI.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The 1560 × 980 image is rendered directly from the actual JUCE editor, with
|
||||||
|
filter/reverb enabled and output at -6 dB. It shows the parameter controls,
|
||||||
|
preset buttons and on-screen keyboard without opening an audio device.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- [Steinberg SDK effect identity and current adapter limits](steinberg-sdk-identity.png)
|
||||||
|
- [Steinberg SDK Sine instrument discovered by xtc](steinberg-sdk-instrument.png)
|
||||||
|
- [JUCE VST3 instrument discovered by xtc](juce-vst3-instrument.png)
|
||||||
|
|
||||||
|
The four 1440 × 960 FLTK captures load the actual SDK-built VST3 bundles.
|
||||||
|
The Steinberg examples have no custom editor; xtc displays its host graph and
|
||||||
|
metadata. The JUCE native editor above is rendered separately: xtc's C host
|
||||||
|
currently uses plugin defaults and does not embed native VST3 editors or expose
|
||||||
|
their controller parameters. Unsupported class counts in the choosers include
|
||||||
|
non-instrument/controller classes; they do not mean the selected synth failed.
|
||||||
|
The host is stopped and meters are idle. No ASIO interface is shown or implied.
|
||||||
|
See [Steinberg integration](../docs/STEINBERG.md) and
|
||||||
|
[JUCE integration](../docs/JUCE.md).
|
||||||
|
|
||||||
|
After building both SDK examples, reproduce only these host captures with:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make build/capture_screenshots
|
||||||
|
XTC_CAPTURE_STEINBERG_BUNDLE="$PWD/build/steinberg-sdk/VST3/Release/xtc-sdk-examples.vst3" \
|
||||||
|
XTC_CAPTURE_JUCE_BUNDLE="$PWD/build/juce/XtcJuceSynth_artefacts/Release/VST3/xtc JUCE Synth.vst3" \
|
||||||
|
xvfb-run -a -s '-screen 0 1440x960x24' \
|
||||||
|
./build/capture_screenshots "$PWD/screenshots"
|
||||||
|
```
|
||||||
|
|
||||||
|
This uses the existing capture prerequisites and temporary project isolation;
|
||||||
|
it preserves the other gallery images, including `overview.png`.
|
||||||
|
To reproduce the JUCE editor image, remove or move the existing destination
|
||||||
|
first (the command refuses overwrites):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
xvfb-run -a ./build/juce/xtc-juce-render_artefacts/Release/xtc-juce-render \
|
||||||
|
--snapshot "$PWD/screenshots/juce-soft-keys-editor.png"
|
||||||
|
```
|
||||||
|
|
||||||
## MIDI devices, defaults and file exchange (Phases 100–105)
|
## MIDI devices, defaults and file exchange (Phases 100–105)
|
||||||
|
|
||||||
- [Open MIDI input dropdown with real host devices](preferences-midi-input-devices.png)
|
- [Open MIDI input dropdown with real host devices](preferences-midi-input-devices.png)
|
||||||
|
|
|
||||||
BIN
screenshots/juce-soft-keys-editor.png
Normal file
BIN
screenshots/juce-soft-keys-editor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
BIN
screenshots/juce-vst3-instrument.png
Normal file
BIN
screenshots/juce-vst3-instrument.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
BIN
screenshots/steinberg-sdk-identity.png
Normal file
BIN
screenshots/steinberg-sdk-identity.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
BIN
screenshots/steinberg-sdk-instrument.png
Normal file
BIN
screenshots/steinberg-sdk-instrument.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
BIN
screenshots/steinberg-sdk-track-insert.png
Normal file
BIN
screenshots/steinberg-sdk-track-insert.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
|
|
@ -105,6 +105,19 @@ int main(int argc,char **argv) {
|
||||||
check(s->make_chord({4,7}));check(s->strum_chords(30,false));piano_view();capture("creative-strum-result");
|
check(s->make_chord({4,7}));check(s->strum_chords(30,false));piano_view();capture("creative-strum-result");
|
||||||
window.do_callback();std::puts("Creative workflow captures completed.");return 0;
|
window.do_callback();std::puts("Creative workflow captures completed.");return 0;
|
||||||
}
|
}
|
||||||
|
if(const char *sdk=std::getenv("XTC_CAPTURE_STEINBERG_BUNDLE")) {
|
||||||
|
const char *juce=std::getenv("XTC_CAPTURE_JUCE_BUNDLE");
|
||||||
|
if(!juce || !std::filesystem::exists(sdk) || !std::filesystem::exists(juce))
|
||||||
|
throw std::runtime_error("Supply existing Steinberg and JUCE bundles for SDK captures");
|
||||||
|
reset();
|
||||||
|
check(window.add_track_effect(0,sdk,0));
|
||||||
|
auto *inserts=window.track_inserts();inserts->select_track(0);tab("Track inserts");
|
||||||
|
capture("steinberg-sdk-track-insert");
|
||||||
|
dialog("steinberg-sdk-identity",[&]{check(inserts->inspect_slot());});
|
||||||
|
dialog("steinberg-sdk-instrument",[&]{unsigned int index=0;xtc_choose_plugin(sdk,48000,index,true);});
|
||||||
|
dialog("juce-vst3-instrument",[&]{unsigned int index=0;xtc_choose_plugin(juce,48000,index,true);});
|
||||||
|
window.do_callback();std::puts("Real Steinberg/JUCE SDK host captures completed.");return 0;
|
||||||
|
}
|
||||||
if(std::getenv("XTC_CAPTURE_HOST_VST3")) {
|
if(std::getenv("XTC_CAPTURE_HOST_VST3")) {
|
||||||
reset();capture("compact-workspace");
|
reset();capture("compact-workspace");
|
||||||
auto *create=dynamic_cast<Fl_Menu_Button *>(named(window,"Create"));if(!create)throw std::runtime_error("Missing Create dropdown");
|
auto *create=dynamic_cast<Fl_Menu_Button *>(named(window,"Create"));if(!create)throw std::runtime_error("Missing Create dropdown");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue