OK, I've been racking my brains over the past few days about how to do this. I'm sure Korg engineers/Stephen/Daz/others have better ideas, but I thought I'd share with everyone the solution I came up with of how to add to the existing Karma drum facilities to make the next generation drum sequencer.Daz wrote: That would so awesome. IMHO this should be what the next generation Electribe is. All the best of KARMA and arp/grid drum programming.
edit: ideally I need to write/draw up a proper explanation of this idea, rather than just vague blurbage ... I'll try doing that later}
At the back of my mind were the following constaints:
1) To use the existing Karma architecture - rather than suggests changes which in all likelihood would be very hard to implement (at least in the Oasys for now).
2) To use some additional pages on the operating system - in order to do something different and helpful to the user) - but keep new pages to an absolute minimum so that the design/implementation path for Korg was as easy as possible.
3) To add the features which (I believe) are missing to really utilise the drums on the oasys. I'm talking here about the sequencing of sounds, rather than the quality of the drum sounds (which is a separate subject discussed briefly at the end). The advanced features of Karma drums are fantastic (swing adjustment, improvisation, bends) but its the easy stuff which is currently hard to do. Here is my list of additional features I was trying to build into the system.
a) Complete (and importantly easy) control for the user over which drums (and at what volume) play in every scene.
b) A grid system, adjustable by touchsceen (which the whole community has been clamouring for) which allows user patterns to be created. To be really useful this had to tie into the existing template banks for Karma drums. But it needed to allow the user to do the basic things available on any hardware drum machine (or the reason drum machine with which I'm very familiar), i.e. v.easy to program something like:
Scene 1: Kick 4 to the floor.
Scene 2: Adds closed hi hat.
Scene 3: Adds cymbal
Scene 4: Adds rev cymbal
Scene 5: Takes off cymbal - adds percussion.
Scene 6: Loses the kick, but allows everything else.
And it needed to do this in an easy way, without the user having to delve deep into the land of Karma parameters to try and figure out for Scene 6 whether there was an internal parameter in the depths of Karma parameters that could be adjusted to do this.
c) A system which allowed the user access to all the great Karma drum banks, but in such a way that if you found a template where you liked the kick drum beat for instance, but wanted to change the hi-hat pattern or the percussion, it would allow you to do this in a fast and intuitive manner.
OK so here's what I came up with: 3 extra pages on the Karma tab, accessible from one new sub-tab called 'Drum control' (there's space for this extra sub-tab if you look closely). The first of these pages controls which drums are sounding in any scene, and the second and third are almost identical, controlling which of the templates is playing for any scene and allowing users to see and create their own templates.
Page 1: So this page allows the user to select which drums sound (by toggling the on/off switches) and the volume of each drum (by setting the numbers in the right hand side). But it allows the user to do it for each scene - so horizontally you see columns representing each scene. And the way it does this should be relatively easy to implement, as it uses the existing Karma architeture - specifically the parameter "Row 1....7 Vel. Offset" (described on page 863 of the original paper Parameter Guide for the Oasys). If a row is turned off, then a scene change transmits -127 to this parameter, otherwise it transmits the value next to the on/off switch. This parameter is freely changeable today (if we had an RTC which showed them) so there should be no change in how the current Karma system works to do this. It would just require implementation that the press of a scene button transmitted the appropriate new values to these parameters of the GE. This would be a first step up in user flexibility.

The last column allows the user to select which note (ie drum sound) is played by the each line of the 21 different drum rhythms (again a parameter already in the karma design [and if you wanted to be really flash you could have this be different for each of the scenes although this is not reflected on my diagram])
Page 2,3: So these are the pages which allow programming of the grids/drum rhythms. These pages are a little more complex but I'll try and explain.
Page 2 maps out the grid over the first 32 sub beats. Page 3 maps out the grid over the second 32 sub beats. Other than that they are identical, so I've only drawn one illustration of the first 32 sub beats. [If upon design on the touch screen, this resulted in boxes too narrow to use with the touchscreen, then I would suggest moving to 4 pages instead showing 16 sub-beats each rather than 32]. As many of you are aware, drum GEs have 3 templates of 8 lines each, so in this depiction these are on top of each other with the bottom one representing the kick, snare and tom pattern, the middle representing the hi-hat, ride and cymbal and the top one representing percussion.
The left hand side shows the selected scene, and the templates played in each of these scenes. i.e. so this is designed to allow the user to select a different template for each of the 3 drum modules for each scene. Again the karma architecture already allows this to happen (as explained on page 868 of the original Paper version parameter guide). The only thing I've added is that each of the templates is given a name, so the user can select which template to load up for each scene with a name which has meaning. This allows the user to easily mix and match different kicks with different hi-hat patterns very quickly and intuitively.
Ideally, the user would also be able to set at the top left the default length of the pattern for each scene [eg a 64 sub-beat pattern, or just a 16 sub-beat pattern] AND (and I've not included this on the drawing) the rhythm multiplier for each pattern for each scene (eg. 100% or 50% or 75% etc.).
Again all of these parameters already exist within Karma, it would just involve a little bit of programming to change these values in the GE at each scene change, but all the existing Karma architeture remains in place unchanged.

So having loaded up the template for each scene, the grid system now allows the user to quickly alter them as well, adding or subtracting hits as they see fit, to mimic exactly what they want to do, and the buttons on the bottom left allow these to be saved (they would need to be saved to be used by the scene changes). The altered grids can be individually saved (eg template 1,2 or 3) to user banks (ie tap that button "save to template no 1" and a dialog comes up allowing you to save the first template grid to any one of a number of user locations with a name of your choice), but the templates can also be loaded and saved to existing patterns, allowing better integration between the existing Karma 2 features and the RPPR features.
So that's it. At the end of this you end up with 8 scenes which are totally customisable in terms of which drums/patterns play in each one, but you haven't lost any of the ability to then still improvise on each of these scenes, perform bends or any of the other great real-time features which we all love. None of the exsiting GEs already programmed are lost or need to be changed in any way (causing work for Stephen / korg or mucking up any of the 1000s of existing combis/programs) - the switches, buttons could all remain the same. [In fact the combination of 8 scene changes (with different templates) together with the 3 drums on/off switches would give designers access to more that 24 customisable different drum beats per GE at the touch of a couple of buttons]
But how easy would this system be to implement? Only Stephen/Korg can tell us that but I have a couple of thoughts.
1) The first change would be that a scene change would need to change a few more of the GE parameters than currently stored with the sliders/switches. Specifically, the each of the three templates, each drum's velocity level, the length of the three patterns and the three rhythm multipliers. However given that the architecture is already set up to change a large number of GE parameters upon a scene change, I don't think it should be too hard to add a few more.
2) The second change would be that the size of the existing GE files would be increased to hold the new parameters (the template settings, volume settings etc for scene changes). I've no idea how hard this would be, but I'd have hoped this was one of the easier things to change. I would have thought that you could load all the existing GE files easily into this new architeture, as you could program it so that if they didn't have the new parameters for scene changes, then it just loaded the original default values into all the columns on page 1 and used the same templates, lengths etc for page 2.
3) Obviously the pages would have to be designed and programmed into the new OS (which would require some work from Korg and prob Stephen) - but by limiting it to three pages this is hopefully not a huge burden - and (to me at least) seeing as it uses the existing Karma architeture for actually changing parameters in the GE, and there are no new GE parameters suggested, this shouldn't be too difficult a job - it's just about building an interface to change those parameters (and the MS-20EXs interface is much more flash).
So this really helps the live performance side, but what about the sequencing side. Well this really depends. If the system is altered so that Karma can be played by midi, then this is easy. If not then I don't know.
Supposing yes, then the midi track will record which notes are held down/which scenes are seleced in Karma, so it would be easy to record which of the 8 possible scenes are playing as the base of a track. The actual content of those 8 scenes can then be altered independently by playing with the Drum controls tab. In this way it would be easy to build up a sequence with 10 bars playing scene 1 (just kick and ride) with new drums being added on top by changing the scene at subsequent bars. Then (without having to change the sequence) you could change the ride pattern as you felt like it, by going to the Drum Control of the GE generating your drum beat and changing the template for the ride pattern.
Lastly, what about the drum sounds themselves mentioned right at the start. Well to start with, you could just used the existing system (again making it easier to implement) but if you want to go one step further you could create a Drum EXi which allows the creation of 21 drum sounds from synthetic parameters or from the existing samples which the GE can then play. The tone adjust settings of this EXi would allow for the volume of each drum to be controlled and for things such as pitch, reverse etc, some basic effects (eg all the parameters of a normal drum sampler) to be manipulated and in this way you could created rolls etc with steadily increasing volume - not by having to sequence directly sequence this, but by recording sysex messages for tone adjust showing the volume increasing for a particular drum.
This should give all the flexibility we need to do most things I've wanted to do from a drum sequencing point of view as easily as possible - and hopefully with a minimum impact on programming, altering the existing system.
Cheers, Domc