Yamaha RX7 UI

Home Forums General Programming Yamaha RX7 UI

This topic contains 38 replies, has 2 voices, and was last updated by  human fly 1 day, 21 hours ago.

Viewing 19 posts - 21 through 39 (of 39 total)
  • Author
    Posts
  • #83498

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    cut-down version:
    having a little detour to sort out how to display
    drum pad voice assignments on the midi keyboard.
    not quite right yet…getting there, but some issues
    (it is highlighting wrong key with single pad, but seems
    ok with full ‘kits’)
    suggestions appreciated!

    i’m mixing up which list it should be calling from…
    also some issues with how to display:
    1/more keys in given space
    2/more number characters for each key – can only do 2…

    • This reply was modified 1 month, 1 week ago by  human fly.
    Attachments:
    You must be logged in to view attached files.
    #83505

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    >>>

    #83780

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    have a new version here.
    pad select method just redone, unpacking subfunctions,
    then condensing(could go further; it stops working if
    i change too much in one go. just realised i now have
    to do this with the other main methods too)

    once again, the idea is to use a few modulators to
    show data from many parameter groups, so it’s more
    of an experiment than a panel project (if it ever gets
    that far).

    next hurdle is how to make the current voice the ‘multi’
    voice: with the rx5 and 7, when editing, you’re offered
    the choice to make that voice the multi voice, spread
    across the top 12 pads. (not figured out yet…)

    little check that system is working:
    if you randomise the voice on any pad, and then go to another
    pad, and call up the same voice there, the parameters will
    jump to the same settings when you click on the new pad.
    (have to make that automatic)
    of course: it’s the same voice table it’s being updated with.

    Attachments:
    You must be logged in to view attached files.
    #83794

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    Checking the screenshots of the Soundquest editor may be interesting. The interface is as ugly as it gets but you can see the editable parameters.
    You can see that there are two midi modes. One spreads all voices on the keyboard and You can edit for each of the 100 voices at which note it should play. This way you can trigger more than one voice per note. The other mode assigns a voice on each midi channel. It will then play one voice spread across the whole keyboard.
    It’s probably possible to switch mode by sysex messages.

    https://www.squest.com/Products/MidiQuest11/Instruments/YamahaRX7/index.html

    interesting interpretation. i admit i wasn’t seeing it quite like that.
    but i have not at all used the Multi job, or had the RX7 connected to
    a MIDI keyboard yet.

    i just assume that ‘multi voice/yes’ assigns the current pad’s voice to
    the top row of 12 pads. until now i have been focusing on regular drum
    machine mode, where, as i see it, the 1OO Voices can be assigned to
    any Pad/Key, as many times as you want, with the ‘Key Assign’ parameters
    defining MIDI IN Note and Channel, and somehow, MIDI OUT Note and Channel.
    the manual and service manual are not very clear about this.

    i need to check it out with a midi keyboard plugged into it.

    #83795
    Possemo
    Possemo
    Participant
    • Topics: 12
    • Replies: 396
    • Total: 408
    • ★★

    I think connecting a keyboard and trying to send messages from the panel to the rx7 would be a good idea. I had a bit the impression that you are putting the cart before the horse when you were developing the panel without sending any sysex to the device. I see that it is hard to build messages for the rx7. Most sysex messages include a checksum. It would have been one of my first actions to make a routine who calulates the checksum. Then I would start with something relatively simple like editing the voice parameters.

    But that’s just me, you can develop your panel as you like.

    #83796

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    Hi Poss’
    the cool thing about the RX7 is that it will send its
    last-edited parameter when you press the ‘enter’ button,
    so i figured i could reverse-engineer from that, and i
    have done a list already of all the messages.

    you are no doubt right about working out that routine,
    and this is perhaps the point where i must look at that.
    i wanted to figure out the overall structure of how the
    panel would work first, thought that was an important
    decision, ie: to have my tables system, or make individual
    modulators for … (120 x (21+12))x2 parameters ! (which
    i want to avoid)

    figuring out the multi-voice is the last step i need to
    get through before i attempt the sysex. but maybe i should
    try to get a message to it first and see what happens, yes.

    i tend to not sit with the device next to me, connected to
    Ctrlr – mainly because i’ve been learning Lua primarily.
    this tables build/retrieve system is quite adventurous for me.
    time to pull out the RX7 🙂 and i would really appreciate
    your input as i attempt to make a rock-solid sysex
    send/receive system, as it could go horribly wrong crashing
    an old slow box like this. (it’s easy to do a factory reset
    though) – it will be a few day yet before i have something
    to show there, and in the meantime, i have a couple of users
    responding on yamahablackboxes group, to talk about this
    multi-voice mode. most confusing system, i must say…

    #83804
    Possemo
    Possemo
    Participant
    • Topics: 12
    • Replies: 396
    • Total: 408
    • ★★

    I see, yes this could probably be a way to make a comprehensive panel. I usually start with the simplest possible task e.g. making a panel where you can select a voice and edit its parameters. I hadn’t the sysex implementation in mind when I mentioned the checksum. Fortunately it is not needed for editing voice parameters. But creating a voice editor is not as trivial as it may seem. For many paremeters you will have to split values into two MIDI-bytes. Yamahas sysex documentation is typically “japanese awkward style” but nevertheless it explains everyting you can do when controlling the device via MIDI/sysex. Studying the data sent by the device is no doubt very helpful but for understanding the whole MIDI/sysex implementation there will be no alternative to studying the documentation thoroughly.

    #83808

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    indeed!

    i have read this kind of sysex doc’ before, so
    i’m fairly confident i can figure something out,
    and ‘cheat’ with the Enter button for quick
    visual confirmation in midiox.

    haha we’ll see though 🙂
    i did decide to set it to one side while i worked
    out if i could do my tables thing: very valid for
    things like drum machines where you get lots of
    repetition. remains to be seen what will happen
    when sysex-time comes. i’ll probably be calling out
    for help then, to get some sort of timed-release
    message thing set up.

    #83848

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    here’s the sysex results i’ve got from it so far, to have
    a look at the format:
    (this is what i discovered reading off messages with my lazy
    technique of hitting ‘enter’ and picking them up with midiox)

    voice bulk dump (voice #00, BD1):
    43 Bytes:(highlighted voice number with asterisks)

    F0 43 00 0B 00 23 4C 4D 20 20 38 35 31 35 56*00*02 78
    36 07 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 36 F7

    single parameter message:
    (‘??’ was where i found variations, i think; must be msb)
    F0 43 10 03 51 V# pp ?? vv F7

    eg:(value byte as per what i found with this voice)
    voice edit/job 02-05
    decay F0 43 10 03 51 41 01 19 F7
    brate F0 43 10 03 51 41 02 00 F7
    bRange F0 43 10 03 51 41 03 00 F7
    level F0 43 10 03 51 41 04 36 F7
    pan F0 43 10 03 51 41 05 08 F7
    (etc.)
    and here’s what happens with negative values,
    eg: pan:

    repeat pan: -14<>+14
    (4th repeat,pan = 14h (param byte)

    F0 43 10 03 51 41 14 72 F7 > 72h-7Fh = < -14 - -01<0>
    (last values)
    F0 43 10 03 51 41 14 0E F7 > 00h-0Eh = <0> – +14>
    (first values)


    just to have a look. can’t remember off top of my head
    what i concluded from the -/+ parameters, but it made
    sense seen as a midiox list.
    right, i’m off to make a little fader with a message
    on it to see if i can get the RX7 to respond.

    #83849

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    in fact, i’m still trying to refine behaviour of
    the Pad select method – it works but can be condensed
    a bit.

    it gets a bit complicated trying to introduce ‘multi’,
    so that the last selected voice gets mapped to the top
    12 pads, because those then get a different set of values
    and voice assignments.

    it means introducing an ‘if’ statement somewhere, dependent
    on the state of the single/multi button. if i put it in the
    wrong place, method gets broken.

    #83963

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    yeah well, it’s getting horribly complicated with the
    ‘multi’ thing.

    what happens on the drum machine itself is that you
    get the top row all the same voice, with pitch offset,
    and then the rest retain their normal function.

    trying to represent this in Lua is total :p
    nowhere near sending a sysex message yet !

    i will have to do a simple panel with a few faders to
    test that.

    or maybe just skip Multi for the time being. made a start
    on it anyway; found out how to have the same voice for all
    12 pads, or revert back to normal selection if not the top row.
    (actually almost about the sell the machine anyway)

    • This reply was modified 1 week, 3 days ago by  human fly.
    #84002

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    little bit of progress.
    see what you think of this version > panel below
    (these panels have no external resources so they
    should run straight off as intended)

    it’s happening in ‘panelSelect’ method – very drawn out
    in there at the moment, with parts repeated – why i wanted
    to use subfunctions – but it’s beginning to behave like the
    multi-voice mode. have not yet built the pitch etc. offsets
    per ‘multi-key’ (toprow 1-12) – and: not confident yet how
    many voices can be multikey: i assume one multikey per
    ‘keydata’ set? ie: 0-4

    maybe that’s wrong: you were talking about being able to
    have one multi on each midi channel. what happens on the
    machine is you get to job# 03? and it says multi or voice?
    and you go ‘yes’ to go multi with that Voice. eg: all the
    top row ‘Keys’ of that RAM keydata group now adopt that
    Voice, and the Multi pitch offset etc. parameters.

    the remaining bottom row behave as before, with their
    individual ‘Key Assign’ parameters dictating their pitch,
    and other Key Assign parameters.

    yup, so that answers it for me: 5 multi tables needed,
    working in same way as tables for the Voice and Key Assign
    tabs. (when Multi is selected, the uiTabs calls a 3rd page.
    these parameters will use the same system for retrieving
    and writing to individual tables, is the plan.)

    feel free to point out if that’s wrong, it’s how i
    interpret it atm.

    also, one thing that is confusing in the sysex spec is
    where the midi note and channel settings belong:
    note and channel in, but also
    note and channel out, which appear to be in separate
    parameter categories. eg: per voice, or key, or system.

    Attachments:
    You must be logged in to view attached files.
    #84004

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    note that it captures last selected Key as the source
    of the Voice that will be place across the top row.

    (all very rough-sketched, proof of concept etc.)

    edit: there’s a bug if you click ‘Keyboard'(/’Pads’)
    when ‘Multi’ is enabled: the pad uiTabs disappears.

    have to select ‘Single’ and operate the Keyboard/Pads
    button to restore view.

    #84006

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    slightly improved version. that’s it for today.

    Attachments:
    You must be logged in to view attached files.
    #84023

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    now memorising and recalling offset parameters for
    12 multisteps x 5 user keydata.

    ie: each ‘keydata’ memory can only have one multi,
    the multi just replaces the regular ‘key assign’ status
    of those pads. that would mean you can set up 5 multis
    using all 5 user keydata.

    using same sort of thing as with writing voices and
    keyassign parameters.
    value change triggers buildMultistep method.
    fetchMultistep is in LibraryA
    added a couple of new tables for it.
    (a bit of a mess in there still but it sort of hangs
    together)

    Attachments:
    You must be logged in to view attached files.
    #84025

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    sorry, that one crashes a method, try this one,fixed.

    Attachments:
    You must be logged in to view attached files.
    #84027

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    last version for today. now only shows
    the current kit button in multimode.
    have to exit to change kits now.
    >panel

    Attachments:
    You must be logged in to view attached files.
    #84030

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    re-arranged, simplified the UI:
    (ahem.. quite chuffed with this: memorizes and retrieves
    tables for Voice, KeyAssign, and the Multi steps – check
    by randomizing pad values, changing keydata, etc.)
    ‘dev reload’ resets everything. single/multi assigns
    current selected pad to 12 top pads in that KeyData memory.
    (none of the other left side buttons do anything yet, apart
    from save which collects some info on keydata to console,
    and keybd/pad which toggles the keyboard display view, in
    progress)

    so this is more or less the structure for the operation
    of the panel. now needs work on LCD layout, more info in
    the Multi display – and MIDI channel and note in/out.

    • This reply was modified 5 days, 4 hours ago by  human fly.
    Attachments:
    You must be logged in to view attached files.
    #84097

    human fly
    Participant
    • Topics: 121
    • Replies: 1023
    • Total: 1144
    • ★★★★

    would like to randomise and overwrite a key/index
    in a table, for 12 consecutively numbered tables.
    ie: get the first key, ‘pitch offset’, for each
    of the 12 multi-step pads, and perform operations,
    usch as randomise, reset, pitch ascending, descending,
    etc.

    wondering how i can do this if i only have one set of
    modulators… each pad recalls a table of values to send
    to the modulators. it has to rewrite the tables, randomising
    the value of myTable..n[ 1 ], for 12 individual pad tables.
    and then retrieve the appropriate table depending on which
    pad is currently selected. (…)

Viewing 19 posts - 21 through 39 (of 39 total)

You must be logged in to reply to this topic.

There is currently 0 users and 19 guests online
No users are currently active
Forum Statistics
Threads: 2,120, Posts: 14,901, Members: 8,720
Most users ever online was 5 on March 28, 2018 6:11 pm
Do NOT follow this link or you will be banned from the site!