jpcima / ADLplug

FM Chip Synthesizer — OPL & OPN — VST/LV2/Standalone
Boost Software License 1.0
425 stars 22 forks source link

Displaying parameter values #45

Closed farvardin closed 5 years ago

farvardin commented 5 years ago

I could be pleasant to have in the UI the current value of the parameter we are editing:

It's especially useful for comparing the precise values from an other piece of software (for example adlib tracker II), or for better understanding of the instrument we're editing (like for the frequency multiplication)

jpcima commented 5 years ago

Added: value display for knob and slider parameters. Before calling this complete, I want to add:

  1. have step resolution of all controls <= unity (not the case of level, OPN ADSR)
  2. display while a control is hovered, like in Dexed
jpcima commented 5 years ago

Mouse hovering is done. For step resolution I'll look a bit later as it has a bit of complication involved.

jpcima commented 5 years ago

@farvardin PS if you are interested to have an importer of Adlib Tracker instrument or other formats, post a request over at OPL3BankEditor, if it doesn't have that support already. I'll look into it depending how complicated the task shows to be. Myself I've no experience with operating this tracker software.

farvardin commented 5 years ago

thanks, it's a good improvement! I've just compiled it and tested it. Maybe it's what you mean with step resolution, at the moment if you increase some values with the mouse wheel (such as frequency multiplier), the slider will move, but the value in the control will stay the same (for example value is 0, if you move with the mouse wheel the slider will move one step to the right, but the value in control panel will remain 0.)

jpcima commented 5 years ago

Not exactly. The problem is that based on mouse wheel events, the control is sometimes going to increase or decrease by more than 1. It's difficult to land on a precise value in this condition; It would like the increment to max at 1.

The problem is in the underlying library, it does not permit to set a fixed increment for the mouse. Instead it's computed as I formula between the component's screen size and the value the mouse is sending. There doesn't seem to exist another fix than to go modify some code inside juce framework.

farvardin commented 5 years ago

ok I understand. Anyway now we have more precise informations about the status of the knobs and sliders and it's much better!

I've seen it's possible to import/export instrument with OPL3BankEditor and also with Adlib Tracker, using the common format .sbi (not with 4-op, but 2-op is fine).

jpcima commented 5 years ago

I've seen it's possible to import/export instrument with OPL3BankEditor and also with Adlib Tracker,

ADLplug has also had for a moment the ability to load sbi files directly; it was a feature made on a musician's request.

using the common format .sbi (not with 4-op, but 2-op is fine).

Both OPL3Bankeditor and ADLplug must support 4-op instrument import. If you can provide a sample which doesn't work as should, please post for analysis.

farvardin commented 5 years ago

It wasn't clear how I wrote it, but I meant I could export in .sbi with OPL3bankEditor, but it failed for loading those 4-op instruments (made with open3bankeditor) in Adlib Tracker, but I'm not sure Adlib Tracker can support 4-op instruments in sbi format.

So far it looks like for having 4-op in Adlib Tracker II, you do this by loading 2 different 2-op instruments and connecting them together, so I suppose it's an expected behavior.

jpcima commented 5 years ago

From At2's SBI loader, I think only 2-op is supported. I'm not highly surprised, as the 4-op format (known as UNIX 4-op) is not widely found nor documented.

SBI is honestly a mess, as numerous software enjoy to implement their own flavor of SBI files. You could request At2 to implement this specification of SBI 4-op. We seem to have samples at Bank_Examples/FingerBass.sbi and Bank_Examples/Piano.4op, and our implementation at src/FileFormats/format_sb_ibk.cpp.

It would be a nice idea to support AdlibTracker2 instruments in OPL-BE, as they permits direct storage in 4-op. http://fileformats.archiveteam.org/wiki/Adlib_Tracker_II_instrument_bank

jpcima commented 5 years ago

The sliders and knobs are updated in the latest, now they support unity resolution with the mouse wheel.

farvardin commented 5 years ago

It's just perfect now, thank you veeeeeeery much!!

jpcima commented 5 years ago

Great :+1: