asb2m10 / dexed

DX7 FM multi plaform/multi format plugin
GNU General Public License v3.0
2.86k stars 245 forks source link

379 Cartridge Manager refractor (see original cartridge name) #438

Closed asb2m10 closed 4 months ago

asb2m10 commented 4 months ago

The Cartridge Manager needed a haircut. If you click on the cartridge name on the right bottom it will open the OS file browser for this cartridge.

Comments are welcomed.

Dev builds are available here : https://github.com/asb2m10/dexed/actions/runs/10032291816

This should close #379 and (already closed duplicate #374)

image

FulopNandor commented 4 months ago

I built debug versions with the application of the branch 379-cartmanager_refactor. and experienced the followings:

In MS Windows 10

The new function worked correctly in case of both the standalone Dexed.exe and the Dexed.vst3 plugin, i.e.

In Raspbian OS (bookworm) 64 bit Linux (Raspberry Pi4)

I have Raspberry Pi4 only, as a Linux host, so I was not able to run the component packed into linux-bin.zip. For this reason, I cloned the Dexed repo into my RPi4, then applied the branch 379-cartmanager_refactor and built Dexed in DEBUG mode.

Standalone Dexed

The jackd was started first, then I started Dexed from Terminal.

When I clicked onto button CART, the cart manager window opened but the following line also appeared in the window of the running Terminal:

JUCE Assertion failure in juce_Component.cpp:2666

However, the new function seemed to work properly, i.e:

carla-single

I built a carla for RPi4 from https://github.com/falkTX/Carla.git, and started carla-single invoking the Dexed.clap:

$ carla-single clap /home/fn/.clap/Dexed.clap

Among others, the following messages also appeared in the running Terminal, which ones maybe relate to Dexed, too, but I guess that these are not Dexed's fault:

[carla] Plugin requested unsupported CLAP extension 'clap.log'
[carla] Plugin requested unsupported CLAP extension 'clap.thread-check'
[carla] Plugin requested unsupported CLAP extension 'clap.thread-pool'
[carla] Plugin requested unsupported CLAP extension 'clap.audio-ports'
[carla] Plugin requested unsupported CLAP extension 'clap.audio-ports-config'
[carla] Plugin requested unsupported CLAP extension 'clap.note-ports'
[carla] Plugin requested unsupported CLAP extension 'clap.resource-directory/1'
[carla] Plugin requested unsupported CLAP extension 'clap.params'
[carla] Plugin requested unsupported CLAP extension 'clap.track-info/1'
[carla] Plugin requested unsupported CLAP extension 'clap.track-info.draft/1'
[carla] Plugin requested unsupported CLAP extension 'clap.note-name'
[carla] Plugin requested unsupported CLAP extension 'clap.remote-controls/2'
[carla] Plugin requested unsupported CLAP extension 'clap.remote-controls.draft/2'
[carla] Plugin requested unsupported CLAP extension 'clap.voice-info'
[carla] Plugin requested unsupported CLAP extension 'clap.context-menu/1'
[carla] Plugin requested unsupported CLAP extension 'clap.context-menu.draft/0'
[carla] Plugin requested unsupported CLAP extension 'clap.preset-load/2'
[carla] Plugin requested unsupported CLAP extension 'clap.preset-load/2'
[carla] CarlaPluginCLAP::clapTimerRegister(20, 0x7fa080f21c)

and a further one, such a line appeared, which might be caused by the Dexed:

JUCE Assertion failure in clap-juce-wrapper.cpp:1658

Unfortunately, clicking onto virtual keyboard of Dexed, no sound was produced unlike in case of the standalone Dexed.

Whenever I clicked button CART, the line

JUCE Assertion failure in juce_Component.cpp:2666

always appeared - but the new function (i.e. the proper filename of the cartridge recently selected was shown, or the label [No reference to original cartridge] instead of it when the file was not available) worked properly, like in case of the Standalone Dexed.

qtractor

I have not too much experience related to qtractor, too, despite it I have tried its latest version available for Raspbian OS:

$ /usr/bin/qtractor --version Qtractor 0.9.31 Qt: 6.4.2

I created a simple test session, having a single track (MIDI type) and single clip, and inserted Dexed.clap into the Track 1 being in Mixer view there, and I set its Activate to on. During these operations, several lines appeared in the Message view of the qtractor; among them there were two ones, which could be related to Dexed:

(... omitted ...)
JUCE Assertion failure in clap-juce-wrapper.cpp:1658
(... omitted ...)
qtractorClapPlugin[0x55980a45b0]::openEditor: could not get the resize hints of the plugin GUI.
(... omitted ...)

When I clicked to Dexed's rectangle at Track 1 in the Mixer View, the Dexed's editor window appeared, and also this line:

qtractorClapPlugin[0x5579669de0]::openEditor: could not get the resize hints of the plugin GUI.

Unlike carla-single, the Dexed produces sounds when I clicked onto keys of its virtual keyboard.

When I clicked onto button CART, the line

JUCE Assertion failure in juce_Component.cpp:2666

also appeared again (and at each case, whenever I clicked it again, in the followings, but, the cart manager window also opened at each time successfully).

Unlike carla-single, when I clicked any particular voice in the cart manager window, the entire Dexed editor was closed suddenly. But, when I re-opened Dexed editor, it showed the name of the last selected voice before the close.

In the cart manager window, when I double-clicked on some cartridges, or tried to load a cartridge by a double-click, the entire qtractor crashed by a

Segmentation fault (core dumped)

When I started qtractor again, and opened the test file, qtractor immediately crashed by a Segmentation fault again.

And, after a relaunching of the qtractor and making another test session, I opened the Dexed editors again. I opened cartridge manager window and selected voice LAURIE instead of Say Again. As a response, the Dexed's editor closed itself immediately again, but voice name LAURIE was shown on the main window of Dexed. But, when I clicked onto the keys of the virtual keyboard, no sound was produced, and no VU-meter showed any activity.

I saved the session, exited qtractor, then re-launched, and re-opened the last saved file: unfortunately, qtractor also collapsed by a ˙˙Segmentation fault``.

I launched qtractor again, created a brand new session, etc., etc., inserted Dexed.clap, I was able to select SynprezFM_01.syx by single clicks, and select a voice from the vertical choices (e.g. SITAR). Although the cartridge selector window closed itselt, the name SITAR was displayed in the main window of Dexed

Briefly: the common behaviour of qtractor+Dexed.clap is very unstable, so I have given up this kind of testing. But I am almost 100% sure, that I have never seen a Based on cartridge label in the cartridge manager window of Dexed.clap, only [No reference to original cartridge].

asb2m10 commented 4 months ago

Thanks for the complete feedback @FulopNandor, this is highly appreciated.

I've fixed the JUCE Assertion failure in juce_Component.cpp:2666 so I think we are good to go.

The issues you listed with carla and qtractor are CLAP related and should be addressed elsewhere. I've tested CLAP on Bitwig and Reaper and I didn't have any issues.

I will have to do a DAW / plugin type compatibility matrix to match what is supported and not.