KARMA 2: Tutorial - Mastering Level 3 ("KARMA Designer") KARMA Usage

Note: this independently contributed article has not yet been reviewed for accuracy by Karma-Lab.


This article is under construction. Pardon the dust! Also be aware that the contents will change a LOT while it is being drafted, so take whatever you read during construction with a grain of salt.


You have become proficient as a Level 2 ("KARMA Tweaker") KARMA user, and now you want to master Level 3 ("KARMA Designer") usage. This tutorial is only one of several articles that explain what you need to know to become a Level 3 ("KARMA Designer") user. For more information on the levels of KARMA usage, see KARMA 2: A beginner's guide

Important: This tutorial requires that you have the KARMA Software for your keyboard model installed and working properly, and that you've worked through all of the basic tutorials that came with the software at least one time. In other words, while you might not fully understand the KARMA Software yet, you at least have it communicating successfully with your keyboard, and you understand the basics about: importing PCG data into the software, editing and merging a combi/program, and mirroring the Software and your keyboard.

This tutorial might require several hours to work through fully depending on how much you stop to experiment with the KARMA Software. This tutorial explains all of the important basics of creating KARMA Performances.

Although this tutorial is written primarily for the KARMA Software, in some cases where it talks about specifics pertaining to your keyboard model the Korg M3 is used. Regardless, this tutorial can be easily followed by Korg OASYS users too because KARMA 2 is virtually identical on both keyboards and the page, tab, and field names are very similar on both keyboards.

IMPORTANT: This tutorial assumes you are proficient with Level 2 usage and are familiar with the concepts and terminology covered in the Level 2 section of the KARMA beginner's guide.

Part 1 - How a Performance "wraps" one or more GEs

KARMA is divided at the highest level into Performances and Generated Effects (GEs). Every program and combi contains several groups of parameters that tell the KARMA engine how to "perform". This KARMA Performance is essentially a wrapper for one or more GEs. From the viewpoint of KARMA:

  • A program is a single-module Performance because programs has only one KARMA module that controls one GE.
  • A combi (or song) is a multi-module Performance because combis/songs have four KARMA modules that each control one GE

For any given program/combi/song, its Performance parameters remain the same even if you plug different GEs into each module. The Performance is therefore a "wrapper" for GEs, and the specific parameters of the performance affect how each GE behaves. In other words, the same GE can behave quite differently in every Performance that uses it.

KARMA events always flow from the Performance into the modules (and therefore into the GE in each module), and then back out through the Performance again before being sent on to your keyboard's tone generator. The Performance decides various things as summarized in the following list, all of which are fairly straightforward. See the KARMA Software Help for details about any of these Performance parameter groups:

  • GE Setup group: which GE to use in each module, whether to transpose all input notes by a certain number of semitones before passing them to a module, and whether or not the module is considered as part of the Drum Track or not (the module will run only when the Drum Track is on)
  • Control group:
    • How your input notes might be transformed (or not) before they are fed to each GE
    • What type of "clock" will advance the Rhythm Steps in each GE
    • How the notes played by each GE might be remapped to other notes before being sent on to your keyboard's tone generator
  • Trigger group: when and how to trigger the notes and envelopes in each GE, and whether the triggering is quantized to to a beat or metric division based on the keyboard's tempo.
  • MIDI Filter group: what type of MIDI data is "seen" by each GE and what type of MIDI data each GE will be allowed to generate
  • Key Zones group: which keyboard zones will trigger each module
  • RT Parms group: which control surface sliders/switches will be assigned to the GE RTP and Perf RTP parameters exposed for use on your keyboard.
  • Dyn MIDI group: which other MIDI controllers besides your keyboard's control surface sliders/switches (such as the joystick, X-Y, Pedals, Pads, etc.) are assigned to dynamically control certain parameters of the Performance itself.
  • Seeds group: which seed values to use for the random numbers generated for each GE parameter group that can be randomized (which can be used to "synchronize" — or not — identical patterns that might be used by several modules in the Performance; for example, to make two different modules that have exactly the same GE in them play the same randomized line in unison or in harmony)
  • CC Offsets group: enables you to make the program controlled by each module respond to up to four different CCs one way when the KARMA engine is ON and a different way when the KARMA engine is off
  • Korg group: specifies which program or combi (and its associated category type) is associated with this Performance, who the programmer of the Performance is (specify yourself if you're building a new program/combi from scratch), and whether the KARMA engine on your keyboard is disabled when this Performance is loaded in the KARMA Software. (Which is generally what you want — this effectively makes the KARMA Software be the KARMA engine for your keyboard.)

Part 2 - The flow of events within each of the four GE Types

Describe flow of all 4 GE types based on Stephen's simple walkthru of a Generated-Riff. in KARMA2: How does KARMA work?

Part 3 - How KARMA decides when to play notes

"When Notes are Played" discussion: How Pattern + Rhythm is driver for most things, Velocity, Duration

Part 4 - How KARMA decides which notes/chords to play

"Which Notes are Played" discussion: Go into detail about how notes are chosen: Performance(Control) > input notes > note series > index > cluster

Part 5 - How KARMA decides what MIDI and wavesequencing effects to apply

"What extra effects can be added to the Notes Played" discussion: CC, wavesequence, repeat, envelopes, etc.

Part 6 - How to design the RTC layers of a Performance

Designing the RTC Layers: choosing which 32 GE RTP parms and which 8 Perf RTP parms to expose to workstation, and which of those should be assigned to control surface sliders/switches. Designing the Master RTC layer to enable controlling various aspects of all four GEs (and the Performance) at once.

Be sure to add an "important basics" article in the GE overview section that explains the reason for virtual GE real-time parameters. Scott/Stephen came up with an excellent summary in Scott's chapter 25 video, and this is useful to highlight here.

Part 7 - Tips for approaching the design of a Performance

Describe tips for approaching the programming of a Performance: start with existing performance and tweak it to be slightly different, or start with an initialized Performance (RTC model), plug in GEs, then tweak the initialized params to your liking. Also choice between figuring out how to do it with a Note Series versus using a Drum Pattern (pros and cons)

Part 8 - Overview of all GE parameter groups in the GE Editor

The following articles are not complete references to each GE parameter group. Instead, they are meant to introduce and explain what the group does and how it interacts with other groups.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License