Hm. @ricard This is how it sounds at the north sea shore :
The last B sharp has some kind of differential tones. Iām not certain whether it is aliasing since the source tone itself is not a clean sinus. There might be some othrr distortion reasons.
Recording chain is HiFiberry analog symmetrical out into
Agree. Those are some nasty artefacts on the top range (or in ricards case with 48khz, quite early on).
I connected my own Zynthian and have the same issues in the mid/top end (iām running 48khz as well)
I know for a fact that the main author of the bare metal miniJV880 uses 32khz as the setting in the ini. I havenāt tried to bump this up, but that surely would be an interesting A/B experiment with Zynthian in the opposite end.
My original presets inconsistencies, while trying to manually install Virtual JV on the previous 2506 iteration of Oram, were already gone, after I copied in the plugin configuration folder all the available and legally obtained expansion ROMs.
Now that with the latest Oram 2511 the JV installation process is completely automated, any residual issues with presets misaligned with the pluginās GUI, or unavailable to load on the Zynthian, should be a thing of the past for everyone.
Therefore, you donāt need anymore to run the presets regeneration routine for Virtual JV, which I was never able to complete successfully. Anyway, make sure to have all the required fw components stored in root/.config/JV880, as specified in previous posts.
⦠and now, it sounds good here too ⦠I noted in your previous post that you mentioned that you had a buffer size of 64 samples, whereas I for some reason have 128. So I thought ⦠could this really be the reason for the difference. So I changed the buffer size to 64, and sample rate to 48000, and lo and behold, nice clean sound all the way up (except for that high B; I should note though that in my example I went up yet another octave, where the top notes really sound strange).
Iām not sure why this is, certainly the buffer size should not have this effect on the sound. My guess, having looked through the source code for VirtualJV, is this: There is a mechanism prior to the sample rate converter which handles the fact that with a fractional sample rate ratio the number of samples needed per process call is not a whole number, so sometimes a few more and sometimes a few less samples are generated; on average, the number is correct. My guess is that for some reason, with certain ratios and buffer sizes, the algorithm fails to manage the data correctly, leading to artifacts.
I have all 26 .bin (although some are .bin and some are .BIN if that matters) in root/.config/JV880 (only). Should the they be somewhere else? I havenāt placed any other related files anywhere. Have done the āsearch for enginesā and āsearch for presetsā in webconf. And as I mentioned everything looks good in VNC-Engines but presets are missing in VNC-UI (forVirtualJV only). Anything that Iām missing here?
Hello, for your information, I tested the JV880 emulator. I was experiencing a lot of xruns (audio dropouts). I noticed that the plugin uses a lot of CPU resources even when itās not being actively used (more than 50% on a Raspberry Pi 4). Out of curiosity, I compiled a version on my computer, and it uses practically no resources at all (AMD 6600H GNU/Linux Manjaro). Then, I read the forum discussions and tried 32kHz as the sample rate for the audio interface, and that eliminated the xruns, but it still consumed the same amount of resources. Other sample rate values āāgave disastrous results (maybe I configured the other audio interface parameters incorrectly?).
Let me think about it: are you maybe inspecting a headlessā Zynthian user interface from an external computer (VNC-UI), while browsing at the same time its loaded processors on another VNC instance (VNC-Engines)?
I am not completely sure that this is technically viable, in the first placeā¦
If I havenāt misunderstood your setup, which is perfectly possible, I wonder if the VNC server is capable of showing, in synced fashion, the external graphical output of a given processor (the Zynthian GUI) and simultaneously its āinternalā native counterpart (the underlying VNC-Engine visualisation).
Iāve noted that there are a few āperformance parametersā which are accessible via CC, specifically Volume (CC 7), Pan (CC 10), Expression (CC11), Reverb on/off (CC91) and Chorus on/off (CC93). Given that a lot of sounds are drowned in reverb, itās quite nice to be able to turn it off, and depending on the preset, Expression controls various aspects of the sound.
Iāve hacked in CC11, CC91 and CC93 into zynthian_engine_jalv.py, and they work well (not sure what happens i I save a preset though - are they saved with the preset or are they solely performance controls; havenāt tested), but Iām wondering if it were better to create a custom .ttl file in /zynthian/zynthian-data/lv2-custom, like for instance OB-Xd has?
Thinking further, in the MIDI specification for the JV-880 I can also see that all parameters are accessible via sysex, leading me to think that it may be possible to create a complete .ttl file for the Zynthian UI accessing all parameters. But is the Zynthian UI capable of sending sysex to a plugin for parameter control? I have a vague recollection of bringing this up on the subject of Osirus and the answer was ānoā.
The TTL is for LV2 parameters. MIDI controlled parameters canāt be specified in TTLs.
We can add customized CC parameters in the jalv engine class, as probably you have done.
Having only CC parameters is suboptimal, because they are one-way (UI => engine) and we donāt have parameter feedback, but itās better than nothing, so please, make a PR with your mods and i would merge them.
Regarding sysex control, do you know if we would have sysex feedback? If so, we could think about deriving a specific class with a full sysex implementation. Alternately, we could improve the LV2 implementation, adding the LV2 parameters properly. This would be the best solution for sure.
From what I can tell from the JV-880 MIDI specification, itās possible to send a request command to the synth to request the value of any parameter, either as a single parameter or as a group, as well as setting parameter values. So it should definitely be possible for the Zynthian UI to query the JV-880 and get a response back with the current parameter settings.
I think as the number of emulators increase, there will be an increased benefit from having a sysex class in Zynthian for managing system exclusive based parameter communication. I agree that LV2 parameter support in the plugins would of course be best, but I also think that we need to realize that Linux is a relatively small market for plugin developers, so if we stick to our guns and say āif you want smooth integration into Zynthian, you need to provide LV2 parameter supportā, it simply wonāt happen in a lot of cases. Sure, itās a lot of work even after creating the sysex class to map up the parameters, but itās a fairly trivial task as such, compared to, say, actively modifying plugins to provide LV2 support.
VirtualJV preset generation is broken on Oram2511?
Hmmm, same her with ORAM 2511: All presets are shown in VNC but nothing on Zynthian. I started /zynthian/zynthian-sys/sbin/generate_lv2_presets_VirtualJV.py manually but this wonāt help also.
The new generated files are written to /zynthian/zynthian-plugins/lv2/jv880.lv2.
Hello @jofemodo, and everyone else possibly concerned
The configuration directory for VirtualJV, where ROM files should be placed for the plugin to work, seems to have disappeared from Oram 2025-11. It used to be:
/root/.config/JV880
Also, the location of the plugin itself appears to have been moved, from the previous:
/usr/local/lib/lv2/jv880.lv2
to a new place, in:
/zynthian/zynthian-plugins/lv2/jv880.lv2
with preset data in:
/zynthian-data/lv2-custom/jv880.lv2
Copying the firmware files to both folders does not effect any unlocking of the plugin on VNC, nor of course any listing of its presets on the Zynthian GUI, even after having searched for presets in Webconf and preemptively run on an SSH console:
Hi folks! Any clues @jofemodo and @riban, concerning the sudden disappearance of
/root/.config/JV880
in the latest Oram stable release?
I performed a deep search of the Zynthian system drive, and there seem not to be any alternative locations for uploading the VirtualJV firmware(s), except
/usr/local/lib/lv2/jv880.lv2
and
/zynthian/zynthian-plugins/lv2/jv880.lv2
that contain the plugin components and (arguably) preset data. I am on a Pi500+ hardware.