Jump to content
Video Files on Forum ×

RBK Mixer BETA TESTERS WANTED (CT-X700 CT-X800 CDP-S350 Layer Balance Fix)


Recommended Posts

I've put a library up on  Github  which I hope will do the trick. Everybody welcome to use it and give feedback.

 

@Chandler Holloway, please pass on to your friend and maybe we can get things going on this. Here are a couple of pointers that you can pass on:

 

1. The "Quick Start" section of the ReadMe should have all the information that's needed for this project. Everything else in the documentation can probably be ignored.

2. If possible try to use the package locally without installing. (In practise, that means placing it in some xyz directory, and importing with "from xyz.casio_rbk.casio_rbk import ....". If needed can install it with "python setup.py install", but that's hopefully unnecessary).

  • Like 2
Link to comment
Share on other sites

Excellent! I'll be sure to pass that along, and I'll keep you updated on the GUI as we continue to work on it. Thanks again for everything, your work here is invaluable as always. You've (pretty much) singlehandedly solved one of the biggest problems with these particular models, and I'm sure this utility will be a boon to Casio users for years to come!

Link to comment
Share on other sites

Ok, so, my developer friend looked over the script and he and I are going to start building the GUI this weekend. I've updated the GUI prototype to include some very friendly sliders, added new rows to each editor table for the Pan Position and Tone Name features and included a new "Helpful Tips" section that will briefly cover some topics to help end users understand the editor and utilize it more efficiently. My dev friend may clean it up a bit more with some CSS to supplement the extremely basic HTML, but this is more or less what it will look like.

 

I've included the HTML prototype as well as a mock-up with annotations, just thought I'd share.

 

The script looks very good, and the ReadMe is easy to understand. I just have two things:

 

1) The "getpatchbank" command is well implemented, and will allow users to see what specific tones they're changing for each Reg Slot (just like we discussed). Would it also be possible to have this command (or an extra command) get the volume and panning levels for U1/U2/L as well? That way, if an end user decides to further modify the volume/panning on an RBK they've previously edited, the editor program can show the values previously stored in an RBK file when they re-import the RBK back into the editor later (just like it does with tone name). Obviously this function will be moot for an unmodified RBK file straight from the keyboard, as it will always show the default volume level of 127 and centered pan position of 64 when you first load in that "vanilla" RBK, but it'd be a nice quality of life thing. Not important or vital in any way, though. My "Helpful Tips" section advises users to keep the editor window open until they are totally certain they like the changes and don't need to do any more editing (as long as the editor window is open, the slider positions/number entry values will be preserved and users can just nudge the settings a bit until they get it right.

 

2) When you used Mclandy's patch bank for the getpatchbank implementation, did his patch list encompass all of the CT-X3000/X5000 tones, or just the X700/X800 tones? The CDP-S350 has some tones that the CT-X700 does not (specifically, it has about 20 extra piano/EP/organ tones taken from the CT-X3000/X5000). Fortunately, these extra tones exclusive to the CDP-S350 use the same exact names, program change and bank select values as the CT-X3000/X5000, so as long as the patch bank you used for this feature was sourced from the CT-X3000/X5000, there's nothing to worry about.

 

I've also added an acknowledgements field to credit everyone for their contributions, it's at the bottom.

 

@mrmr9494 @Mclandy How would you like to be credited, and under what name? Right now I have Mike credited for "Scripting, Testing, Documentation" and Andy credited for "Patch Script Implementation." If there's any githubs or landing pages you'd like me to link to, or any dependencies/related projects you feel should be acknowledged as well, please let me know and I'll happily include whatever you see fit.

 

 

 

 

RBK Editor Mockup Notes V2.png

RBK Editor Mockup Sizing References.png

RBK Editor Prototype v12.html

  • Like 2
Link to comment
Share on other sites

Good news. The GUI is clearly progressing nicely.

 

1) There were originally some "get...." functions to complement the "set...." ones but I removed them because thought they wouldn't be useful. That was a weird decision - I can't now remember the reasoning behind it. Will add them back in. (UPDATE: now done: link).

 

2) Mclandy's file is from the CT-X5000 so it should cover pretty much all the variants. Some of regional instruments from the "Indian" keyboards are missing, so I could have a go at adding those in. But yes, it's fine for CT-X7/800 and even CDP-350 (maybe even PX-S3000?).

 

UPDATE:

Regarding credit: No credit in the GUI please. Where the library is used in the code, I'd appreciate a link to the github. Also if your code includes a copy of mine then please make sure the license files and "setup.py" are there too. Beyond that, nothing needed.

 

Link to comment
Share on other sites

3 hours ago, Chandler Holloway said:

@mrmr9494 @Mclandy How would you like to be credited, and under what name? Right now I have Mike credited for "Scripting, Testing, Documentation" and Andy credited for "Patch Script Implementation." If there's any githubs or landing pages you'd like me to link to, or any dependencies/related projects you feel should be acknowledged as well, please let me know and I'll happily include whatever you see fit.

@Chandler Holloway, that patch file is basically a straight derivation from the content provided in the manual Appendix, in a simple CSV format.  No attribution is necessary.

Link to comment
Share on other sites

Ok, if you'd prefer not to be credited, that's fine with me too.

 

Looks like the new CT-S400 will have Registrations too! I believe they told us on the webinar that these models have adjustable layer/split/volumes, but once they send me one, I'll be sure to share the RBK files here just for posterity's sake. Everything seems to be indicating that these will be fairly similar to the CT-X700 in terms of the raw capabilities, albeit with a revamped interface and the new sleeker form factor.

  • Like 1
Link to comment
Share on other sites

  • 5 weeks later...

I have a question, off-topic, but it relates to the registration file (RBK)
Is it possible to assign any desired synthesizer instrument to track 5 of the mixer (auto harmony) using or editing a registration file?
Because in the synthesizer, track 5 in the mixer is the only track where you cannot select the desired instrument through the mixer or the synthesizer menu, but I would like to install the desired instrument on this track, as in the CTK series synthesizers.

Link to comment
Share on other sites

@Chandler Holloway, that's really great news. Really looking forward to seeing how its' turned out.

 

@casio_style yes the part 5 instrument is included in registration. It seems it's always just the same as UPPER KEYBOARD. What was the effect of changing it on the CTK keyboards? I don't use auto harmony a lot so not so sure of the implications of having it different from the main tone.

Link to comment
Share on other sites

2 hours ago, mrmr9494 said:

 

 

@casio_style yes the part 5 instrument is included in registration. It seems it's always just the same as UPPER KEYBOARD. What was the effect of changing it on the CTK keyboards? I don't use auto harmony a lot so not so sure of the implications of having it different from the main tone.

Yes, on track 5 of the CTX series mixer, there is always the instrument you selected on the first track.
And on the CTK series casio, in the mixer you can put any instrument on auto-harmonization, which is of course more interesting for sound. Also, in the CTK mixer, you can raise or lower the tone of the instrument by an octave, which is also sometimes useful for good sound. For example, if you use overdubbing plus an auto-harmony tone in octave mode, you can create a 3-layer tone using the synthesizer. For me, this is the main benefit when it is possible to assign the desired timbre to track 5 of the mixer.

Link to comment
Share on other sites

@casio_style, those are interesting ideas for how to use registrations. I've turned your suggestions into an "issue" (link here) in the Python library and incorporate them at some later stage. They won't be part of Chandler's program though. How are you with using Python?🙂

 

BTW, registrations can change the instrument selection on part 5 but not octave shift for that part (octave shift is only on parts 1..4). Probably on the CT-X part 5 follows the octave of whatever part it's harmonising.

  • Like 2
Link to comment
Share on other sites

@mrmr9494 It is good news if it is possible to change the tone using the RBK file. And the fact that there is no way to shift the octave is not so important, I think then you can use custom tones on the 5th track of the mixer, but they can be edited, and there is an octave shift in the tone editor.
I have not used Python yet, as I understand it, this is a programming language, it will probably take a lot of time to learn it.
If it is possible to edit the RBK file in some HEX editor, it will be easier for me.

  • Like 1
Link to comment
Share on other sites

I wouldn't rule it out as a possible inclusion for a later update, my GUI dev intends to leave the project pretty flexible for new additions. I've been thinking about how to make RBK Mixer more useful and relevant to the next gen CT-S400, because that model already includes layer volume control.

 

At present, it would only benefit from defining specific pan values, which is nice but not particularly substantial. If we added the ability to define an Auto-Harmonizer tone (and volume and panning for that tone), that would sweeten the deal a bit for CT-S400 owners. But since we don't have access to CT-S RBK files yet, we're just gonna stick with the features as they are for the first release of the program.

  • Like 1
Link to comment
Share on other sites

@casio_style A hex editor on its own could be not enough because there's a CRC32 checksum that needs to be calculated. A hex editor followed by an additional software tool to "patch in" the correct CRC32 value would work. Such a tool doesn't currently exist, although some hex editor have a built-in CRC32 calculator and it could then be done manually.

Link to comment
Share on other sites

  • 5 weeks later...

Not yet, but it's nearly done. Should be very easy to use in its finished state, you can preview what the interface will look like in some of my earlier posts in this thread. Should be pretty straightforward if you just want to adjust volume levels, but I'll be releasing some demo videos that walk through different applications if you need more guidance.

  • Like 2
Link to comment
Share on other sites

 

One interesting wrinkle I discovered during testing; some tones cannot be fully panned, and will always have some stereo characteristics. Hard panning left or right will move them in that direction, but they will never be "full mono", meaning they can't be used for isolated inputs with a splitter cable.

 

I did make sure to test this with Reverb off, and on non-DSP tones (some DSPs include chorus effects or L/R ping pong delay that will naturally force some stereo signal). Several non-DSP tones have this "forced stereo" quality about them, such as Grand Piano or Grand Piano wide. I'm going to share a video demonstrating this in the old testing thread.

 

I think the best solution is to compile a list of these "forced stereo tones" and display a warning message whenever the getPatch command detects that a stereo tone has been found in one of your Reg Slots. The panning slider will still have some effect, so we won't disable it, but end users should know that the tone won't be compatible with the isolated outputs workaround.

 

Even crazier is that some drum kit tones have forced stereo sounds WITHIN the kit itself. This makes sense, as most drum kit romplers pan certain drum sounds left or right to align with the way a real drum kit is organized (snares left, kick center, hats off the right etc). Some sounds are mono-compatible, some are not. I'll release a separate document that indicates which drum sounds within a kit are forced stereo, but I don't think it's necessary for the app to get that specific about it (aside from the usual warning when said drum kit tones are selected). Using the drum chart, people who are designing custom Rhythms will know which sounds should be avoided if they want their Rhythm to be mono-compatible.

 

  • Like 1
Link to comment
Share on other sites

This whole topic is really interesting. The panning of the tones is really a great feature of the program. A long time ago I had a Yamaha PSR E433 and I was using panning all the time in my tracks in a way to position the acoustic instruments like in a real orchestra. Panning is also nice when you’re layering synth tones to create your own patches. Or, if you hard pan the same synth tones with different values but keep all the other parameters and store the different panning values in, let’s say, four regs, you could use that to move your sounds quickly in the stereo space during your performance (in a way to mimic the action of control knobs).

 

By the way, will the trick of changing the auto harmonise voice also work for the CT-X700/800/CDP-S350? I already use auto harmonise to create some synth patches and it would be even more savoury if we were able to choose the auto harmony tone (this would be a workaround to layer three tones).

 

A nice feature of the PSR E4xx line of keyboards is that you can work on the envelop of the tones, modifying parameters such as attack, decay, sustain and release. Would there any way of implementing this in the editor?

 

Also, one of the arpeggiator patterns triggers a nice filter. I am dreaming out aloud here, but would there be any mean of triggering this filter without triggering the arp pattern? This is the same arp pattern as the first one, so maybe there is a way to separate the filter from the pattern, so to say.

 

Vinciane

Link to comment
Share on other sites

9 hours ago, vbdx66 said:

By the way, will the trick of changing the auto harmonise voice also work for the CT-X700/800/CDP-S350? I already use auto harmonise to create some synth patches and it would be even more savoury if we were able to choose the auto harmony tone (this would be a workaround to layer three tones).

 

A nice feature of the PSR E4xx line of keyboards is that you can work on the envelop of the tones, modifying parameters such as attack, decay, sustain and release. Would there any way of implementing this in the editor?

 

Also, one of the arpeggiator patterns triggers a nice filter. I am dreaming out aloud here, but would there be any mean of triggering this filter without triggering the arp pattern? This is the same arp pattern as the first one, so maybe there is a way to separate the filter from the pattern, so to say.

 

Auto-Harmonizer could be a possible feature update for a later release of the program, as that's something that appears to be configurable via loading in an RBK file. This is not a priority right now, however, as we are only concerning ourselves with getting a stable and working version out to the public.

 

Filter and envelope are likely not possible through this program, as those parameters are not directly addressable by recalling a Registration. Filter and envelope commands are only addressable via MIDI CC, and they only get sent to the MIDI Input sound generator (meaning you can't use these commands to directly affect the tones that are assigned to U1/U2/L).

 

There is some hope that the Reverb send, Chorus send, and Delay sends might be directly editable via sysex commands, but that would be outside the scope of this program (as it's only designed to edit RBK files, and does not directly interface with the instrument itself).

  • Thanks 1
Link to comment
Share on other sites

Another interesting revelation: All types of built-in Chorus and Flanger on the CT-X700 are (surprisingly) mono-compatible. Mono chorus isn't unheard of in the effects world, so I guess it's not that strange, but all in all this is good news. If you're using RBK Mixer to implement the individual outputs hack with a splitter cable, it means you can still use the built in chorus or flanger effects (as long as the tones you're using it with are not forced stereo). This does mean that both of your tones will have chorus applied to them, though, so you may still wish to leave chorus off (aka set to "Tone") if you'd prefer to keep one of the signals entirely dry. Reverb and Delay are still out the window, as those AiX effects will always have some stereo characteristics.

 

I'm definitely going to post a demo video of me utilizing the individual outputs with some of my roommate's guitar pedals to handle effects processing; from what I've seen on the Facebook groups, the CT-X700/X800 are very popular with guitarists who just want a simple, affordable keyboard to play around with, so I'm sure a lot of folks out there will have some pedals to try it out with. If not, you could always grab a couple of all-in-one multi effects pedals on the cheap (the Zoom MultiStomp and G1On lines seem to be very popular). Should be neat.

 

@mrmr9494

I've attached a preliminary list of forced stereo tones CT-X700 in spreadsheet format, although I still need to check to see if this list is accurate on the CDP-S350 so I'd hold off on implementing any of this in the library for now. I mostly just wanted to see if this is a good format for you to work with; I can keep it as an excel sheet, but if you'd prefer it as CSV I can do that too. I'll circle back tomorrow and run through the CDP-S350 stuff before I give you a final list.

 

Interesting things to note:

  • 136 out of the 600 tones on the CT-X700 are forced stereo, and won't be compatible with the workaround. Not bad, all things considered. Honestly, when you consider the normal way these keyboards are used, it's a good thing that there are some tones with more stereo width to them.
  • I didn't count the drum sets in this total as they are not entirely forced stereo, and (luckily) almost all of them contain enough mono sounds to make a full kit of the essentials (kick, snare, rim, toms, open hat, closed hat, ride, crash). Only three kits are fully mono-compatible, but two of them are sound effects kits and the third is Snare Set 2. Snare Set 1 and Kick Set are almost entirely mono, but made the list because they have at least a handful of forced stereo sounds.
  • A good chunk of the synth lead and synth pad sounds are forced stereo. However, many of the leads and a few of the pads have equivalent sounds in the GM category that are mono-compatible, which is a good consolation prize.
  • Most of the forced stereo sounds are ones you would expect, like "wide" variants of the keyboard instruments, digital/FM E. Pianos, string/brass/voice/orchestra ensembles and pad sounds.
  • There are some sounds that I did not expect to mono-compatible. For example, Stereo Strings and Stereo Brass are still mono-compatible, which at first made me think that Casio's engineers might have tried to pull a fast one by labeling mono samples as stereo. However, I went back and observed the audio waveforms without panning applied (reverb and chorus still off), and I can confirm that these are indeed stereo samples, and they exhibit distinct differences in the left and right channels (stereo strings even changes depending on what range of the keyboard you're playing in, although the effect is a bit subtle without good headphones). Thus, I can only conclude that being forced stereo (or mono-compatible) doesn't have anything to do with the tone actually being a mono or stereo sample. Perhaps there's some hardcoded stereo widener variable attached to each tone that increases the stereo separation independently of the pan setting? Very interesting stuff.

 

 

  • Like 1
Link to comment
Share on other sites

Interesting stuff indeed. Some time after I got my CT-X800, my late husband, while observing myself fooling around with the keyboard, made a reflexion upon the fact that since these cheap keyboards were aimed at beginners, people would probably never even use one tenth of the functionalities, sounds, patterns etc., available to them. At least in this forum, people are trying to push these machines beyond their possibilities! This is rather cool.

Link to comment
Share on other sites

@mrmr9494 here's an updated list that includes the CDP-S350 data. There are a lot more CDP-S350 exclusive tones than I thought! I mostly figured they were just going to be piano/e-piano/organ tones given the stage piano form factor, but the S350 has two completely separate synth sections, and gives Synth pad its own section distinct from Choir tones (just like on the X5000/X3000).

 

I've found ten tones that are forced stereo on the CT-X700/X800, but are mono-compatible on CDP-S350. I think the common denominator here is that these tones seem to be using delay on the CT-X versions, but no delay is applied to the CDP-S counterparts. The Delay effects are all ping-pong delays as far as I can tell, which is why these preset delay tones have some stereo characteristics. The CDP-S350 doesn't have any Delay presets in its Reverb menu (like the CT-X models do). So I'd bet that explains why.

 

I guess you'll have to implement some kind of check to see if the source RBK is CT-X or S350 (I believe the library already does this), and then depending on which model the RBK is from, the "forced stereo" warning flag will reference either the X700 list or the S350 list before it displays warning flags.

 

I've added a separate notes column to the spreadsheet to note which tones have this stereo/mono discrepancy across the two models. Let me know if this works for you, and thanks again.

 

AiX Forced Stereo Tones v2.xlsx

Link to comment
Share on other sites

@ChandlerHolloway  , here's v1.3 of the Python including a function isMonoCompatible() which returns a value True if all 3 patches are compatible with mono panning (i.e. all of them don't appear on your list). I know you suggested a warning be raised, but I'm not sure if a Python warning could interact badly with the Flask framework -- it could easily result in a crash. So I think for now it's best if the warning is raised within Flask rather than within the Python, based on the return value of that function. I've also made a couple of small changes as suggested earlier by casio_style.

 

As for what is causing the problems with mono panning, it's still quite a mystery. Here are a few observations I've made on the CT-X3000:

 

- It's often different between left & right. GM ORGAN 3 can pan full left (or nearly full left), but full right isn't possible.

- Many are related to chorus. For example, ACCORDION FRENCH 2 when I set Chorus Send to 0 the problem goes away (same with the SYNTH BASS patches). You say that chorus effects are mono-compatible on the CT-X700 but that certainly isn't the case on CT-X3000.

- An interesting one is SAX SECTION 1. There the panning changes abruptly between neighbouring notes on the keyboard. Casio has definitely made a mistake here in the sound design, which raises a question: are all the examples you've found mistakes?

  • Thanks 1
Link to comment
Share on other sites

16 hours ago, mrmr9494 said:

 

 

As for what is causing the problems with mono panning, it's still quite a mystery. Here are a few observations I've made on the CT-X3000:

 

- It's often different between left & right. GM ORGAN 3 can pan full left (or nearly full left), but full right isn't possible.

- Many are related to chorus. For example, ACCORDION FRENCH 2 when I set Chorus Send to 0 the problem goes away (same with the SYNTH BASS patches). You say that chorus effects are mono-compatible on the CT-X700 but that certainly isn't the case on CT-X3000.

- An interesting one is SAX SECTION 1. There the panning changes abruptly between neighbouring notes on the keyboard. Casio has definitely made a mistake here in the sound design, which raises a question: are all the examples you've found mistakes?

 

Thanks for getting the change in the script so quickly, much appreciated. I've passed along your comments re: Python and flask to my GUI guy, appreciate the heads up.

 

As for mono panning:

 

1) Very interesting. I did all the initial tests with every tone panned hard left. I'll repeat the tests with everything panned hard right, and note any differences with a third revision of the list.

 

2) I only tested chorus effects on a few tones, I'll do a more exhaustive test and report back. There's no way that I know of to set a Chorus send via registration (as we've already confirmed in our tests thus far), so setting Chorus to zero would be a moot point for CT-X700/X800 owners anyway.

 

Out of curiosity, did you try French Accordion 2 with a specific chorus chosen in the Mixer menu, or did you leave it on the default "Tone" setting? Try it with a manually specified Chorus and see if there's any difference.

 

After that, switch the Chorus setting back to "Tone" and see if the panning behavior changes when you assign French Accordion 2 to U2 and put a DSP tone on U1 (set the U1 volume to zero so you can hear better).

 

3) I'm not certain that they're all mistakes; some of the tones that have forced stereo characteristics make a lot of sense, like Grand Piano wide, Chamber Strings, and the forced drum set panning.

 

Sax Section's behavior is weird, but given that it's trying to emulate an ensemble of musicians with directional wind instruments, having forced stereo width to reflect that doesn't seem entirely reasonable. Massive differences in panning between neighboring keys is definitely a headscratcher, no doubt about that.

 

Ultimately, this individual outputs workaround is just a nice bonus for certain "power users" who like to maximize the flexibility of their keyboard and experiment with outboard effects. I think the vast majority of CT-X users (especially the ones who opted for the more expensive X3000/X5000) bought the board with the intention of using it entirely "within the box", so to speak, so they're likely going to be more than happy with all the wonderful DSP tones built in. This series has been out for nearly three years now, and in that time, not one complaint has been made about the strange panning behavior (at least not one that I've ever seen). 

 

Having to disable the built in Reverb and Delay just to get individual outputs to work is probably going to be too much to ask of most folks from the jump. However, it's still really cool, and I for one love to push every instrument as far as it can possibly go. I'm excited to demonstrate all the new functionality we've made possible here, I think it will inspire a lot more experimentation on these entry-level CT-X models. The CDP-S350 already punches way above its weight in terms of price point and feature set, adding layer balance in is going to make it a real killer piece that approaches the threshold of a real stage piano.

Edited by Chandler Holloway
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.