Vienna Symphonic Library Forum
Forum Statistics

194,393 users have contributed to 42,917 threads and 257,958 posts.

In the past 24 hours, we have 3 new thread(s), 5 new post(s) and 87 new user(s).

  • FR - Bank Select as discrete dimension selector

    Feature request - support Bank Select (CC0/CC32) as discrete dimension selectors

    Synchron player is fun, but it seems like the control system is entirely too much optimized for humans fiddling with faders and keyswitches, i.e. live performance and recordings thereof.

    Sequencing with SP, and especially doing notation expression maps, is a bear. A key problem is that several common dimensions (esp Articulation and Type) are logically discrete, not continuous. But the CC mapping system is only continuous, and is terrible at e.g. mapping a CC to a dimension with 7 values. How does that split up? We can't see, need to do math etc. Several people have asked for the discrete, settable CC splits we had in VIPro, but that can't work because the same CC is used for different counts (e.g. one articulation has 5 types, another has 7 types, another has 3 types, and they all must share a controller). Furthermore, if you do figure out how 128 divides by five, and later add another slot, all the numbers realign and your maps break.

    Keyswitches are discrete, but they don't chase, pollute scores and pianos rolls etc. I want nothing to do with them. (If you like them fine, please don't fill this discussion with your thoughts on their superiority, this feature is for people that don't want to use keyswitches).

    That leaves only program change as a discrete, chase-able dimension selector, and support for PC from hosts is mixed (looking at you Cubase/Dorico).

    However, the MIDI spec clearly indicates that Bank Select CC0 (and its LSB partner, CC32) are intended for discrete control - selecting particular patches via particular values. I recommend you support CC0/32 as discrete selectors for dimensions.

    What does that mean? It means if a dimension is assigned CC0, then CC0 value 0 selects the first slot (no matter how many there are), and CC0 value 1 selects the second slot etc. Ditto CC32. In this way everything is predictable, adding a slot doesn't break anything, accommodating different numbers of children for the artics is not a problem etc. There's no awkward math. And they'll chase. And they are well supported.

    Yes, these won't work great with faders - but there are plenty of other CCs available. CC0/32 were never intended for faders/wheels etc. They were in fact intended for exactly the same problem as selecting Articulation+Type.

    Adopting Bank Select (CC0/32) as discrete in addition to PC will give us 3 chase-able discrete controllers and greatly facilitate the creation of robust expression maps for sequencing and notation.

    Please consider.

    Thanks,

    Rich


  • last edited
    last edited

    Rich,

    Do you work with REAPER as your DAW? If so, the Reaticulate script does exactly what you're talking about and more. It hijacks program changes and essentially uses them as "macros" that can deliver up to 16 forms of MIDI input, be they keyswitches, CC values, etc. It turns any convoluted mess of keyswitches and CC values into a single button press that sits neatly in a CC lane, polluting nothing and keeping everything nice and organized. It's under constant development and is, quite frankly, the greatest thing that has ever happened to my VST-dominated workflow.

    Here's the link to the site with more info.

    Highly, highly suggest it if you're a REAPER user. It renders Synchron (and any sampler's) articulation selection complexity completely moot.

    - Sam


  • last edited
    last edited

    @Seventh Sam said:

    Do you work with REAPER as your DAW?  If so, the Reaticulate script does exactly what you're talking about and more. 

    I don't use Reaper as my DAW, but I do use several other MIDI scripting tools like Logic's Scripter, BlueCat Plug'nScript, Bidule etc. In fact, I always have to use them with VI Pro in order to get it to do what I need.

    But Synchron Player is new and they are still working on this next generation dimensional control scheme. I'd love for it to be more flexible and powerful, and thus require less or no scripting. Discrete treatment of certain/selected CCs is a generally useful capability. UACC's CC32 usage hinted at this but was obviously too specific to Spitfire (and broken by Kontakt's broken handling of CCs).

    Tools like Reaticulate and Scripter are cool, but non-portable. And DAWs and notation programs have vastly different levels of support for VST/AU MIDI insert plugins.

    VST/AU MIDI insert plugins (or integrated Lua MIDI scripting) would have been a great feature for VEP7, but alas they didn't take my suggestion 😊


  • You're right, of course; Reaticulate is a DAW-specific fix.  I heartily agree and +1 your suggestion for VSL to add CC0/32 as a dimension controller in Synchron Player.

    As a whole, I think the dimension concept in Synchron Player is fantastic, but it hasn't reached its full potential yet.  The way to do so, in my opinion, is to add more dimension controller options (like you suggested) as well as patch level editing capabilities (round robin control, time stretching, etc.).  If VSL did that, SP could easily out-do every other sample player out there.

    - Sam


  • last edited
    last edited

    @richhickey said:

    Feature request - support Bank Select (CC0/CC32) as discrete dimension selectors



    +1


  • Another possible solution (also more flexible) could be a sort of MIDI script integrated in VEPro. What do you think? Eduardo

  • last edited
    last edited

    @Another User said:

    Feature request - support Bank Select (CC0/CC32) as discrete dimension selectors
    +1

  • CC0 as different than any other CC is a misconstruction as pertains to current day and control of soft instruments. In the early days of MIDI these terms were defined according to hardware and particular specifications in builds. Most/Least Significant Bite does not have any intrinsic meaning for most software instruments or the control of.

    IE: Synchron Player is not built for bank control*, I don't think. 

    EG: CC64 is often called a 'switch controller'. But if nothing is translating values from the hardware device (one will read "0 is off, 1-127 is down", which is true except when it totally isn't), it's simply a continuous controller which may be used in place of any other CC.
    I once totally believed that CC64 was a switch, because of the old connotation and because Cubase used to force everything entered into a CC64 lane to two possible values, 0 or 127 to visually indicate Off/On. I just found an old thread where I asserted that; it's incorrect. And discussions ensue as to a fancier sus pedal which may exploit the continuous control. Also confer CC4 in e. drum kits as a variable controller say for the hihat cymbals; writing this data in the DAW will entail dividing 0-127 into four zones corresponding to what's in the drum software (the hard-wired aspect in the physical controller notwithstanding).

    *: VSL would have a non-trivial job [making SP into that kind of receiver] on their hands methinks.


  • Rich, speaking as one who has never preferred keyswitches, I've had to arrive (painfully) at an accommodation with the universe as it is right now. That is to say, I'm now using keyswitches to navigate around Synchron Player's Dimension trees.

    Like you I use LPX. I have all keyswitch pitches suppressed in the Staff Styles editor - while of course they still show in the Piano Roll editor. And they chase perfectly well - once I've forced them all to join up as strict legato, using the Edit/Trim/Note End to Following Notes (Force Legato) command. However, I certainly do concede that these are extra and unwelcome chores compared to other ways of articulation switching. But that's how it is - for now.

    I must say I'm more than a bit fed up with VSL's seemingly deeply entrenched positions on certain design issues. Having noted the deafening silence from Vienna on a few of these issues - this one included - I'm now learning not to waste time and energy fighting impossible fights with the Design Authority in Vienna. It's their reputation and the future of their business on the line, not mine.


  • last edited
    last edited

    @richhickey said:

    Feature request - support Bank Select (CC0/CC32) as discrete dimension selectors...

    ...Keyswitches are discrete, but they don't chase, pollute scores and pianos rolls etc. I want nothing to do with them...

    +1

    I have never liked key switches, and needing 3, 4, or even 5 key switches for a single articulation is not a comfortable way to work. I'm surprised that VSL has made something so uncomfortable, given their history of producing excellent, amazing products.

    With VI Pro, I use ONE continuous controller (CC3) to change ALL articulations. I made a one-row matrix with 12 cells of the most-used articulations. I have adjusted the sliders in the matrix so that each cell is selected with a convenient CC3 value. I have made it so that, if I want the first cell, I make CC3=10. If I want the second cell, I make CC3=20. For the third cell, CC3=30, etc. This continues up to the twelfth cell with CC3=120. Selecting an articulation is as easy as setting CC3 to the correct value (10, 20, 30, etc.). The matrices are the same for every instrument throughout the orchestra (with some minor exceptions). This makes things very consistent.

    I am disappointed that I am not able to replicate this in the Synchron Player. I can use CC3 to change articulations, but I cannot set convenient values for each articulation (10, 20, 30, etc.). I hope they will make this a possibility in the near future.