Drum Maps go back a long way. I’m certain that the feature was added to Cakewalk very early on back in the MIDI-only sequencer days before it became “Cakewalk Pro Audio”, back in 1995. This long-established feature hasn’t seen much attention from the developers in recent decades because it is stable and does the job. But what job is that, exactly? And why are new users often confused about them?
Where people get confused
At first glance, Drum Maps appear to be the way to set up Cakewalk’s Piano Roll View (PRV) so that, when you edit a MIDI track, you can see the names of each instrument or kit piece (“Tom1”, “Tom2”, “Snare”, “Wood Block”, etc.) in your drum instrument, whether it be a dedicated drum brain, SFZ sample library, or a “drum kit” patch in your rack synthesizer.
And to be fair, yes, that is true: Drum Maps are used to display kit piece names in the PRV (more on that later). Also, Cakewalk provides many pre-baked drum map presets for common percussion modules, which definitely reinforces this impression.
But drum mapping is much more powerful than just “show names for drum kit pieces in the PRV”, and Cakewalk doesn’t try to hide it. That’s probably where a lot of the confusion comes from. This tutorial/article aims at explaining Drum Maps, hopefully to reduce that confusion.
Thank you for subscribing to Map Facts!
A drum map is a virtual MIDI instrument that we define inside our Cakewalk project. It might help to think of them more generically as a “MIDI Map”. A map provides a way to translate incoming MIDI notes to alternative destinations. For any specific input note number, we can:
- change the output MIDI note number;
- change the output MIDI channel;
- change the output port to any existing port in the project: Hardware or VSTi;
- assign a name text;
- apply a velocity offset (make it louder or softer by an amount);
- apply velocity scaling (make it louder or softer by a percentage)
We don’t have to create a mapping for every one of the 128 possible notes – just the ones we are interested in. (Keep reading to learn about what happens to un-mapped notes.)
Once we have created our mapping, it becomes available as a possible MIDI output port for any MIDI track in our project.
Example use cases:
- a 1:1 map that does nothing except reduce the velocity values by 50%;
- a map that forces each note to the nearest note in the Pentatonic scale;
- a map that assigns notes generated by your favorite drum controller (e.g. Roland SPD30, or Alesis kit, etc.) to trigger your favorite percussion VST instrument;
- a map that splits the controller keyboard across two or more different instruments, e.g. Bass in the lower notes, Strings in the higher notes, samples on the top octave.
- a map that combines several output ports into a single virtual instrument (e.g. Toms from AD2, snare from SI-Drums, etc.)
- many others, I’m sure!
Key take-away: Because mapping takes note events from any single MIDI In portt and translates them to one or more MIDI Out Ports as defined in a project, the drum maps belong to the project and do not exist as separate files.
The Drum Map Manager
It’s an older code, sir, but it checks out.Admiral Piett
The Drum Map Manager is located under Edit > Preferences > MIDI > Drum Map Manager, for historical reasons. It is only available with a current open project. This is definitely a source of confusion because you’d think the Preferences dialog is normally for general settings that apply across all projects. And yet, you can look under Edit > Preferences > MIDI with no project open, and you won’t find it.
The user interface is a little primitive – remember, this venerable code base dates back to the early ’90’s – but it is functional, given everything it has to do.
(You can read the official documentation here.)
It shows all maps currently defined in the project (there can be more than one!), and allows you to edit the assignment settings for each note contained in each map. By default, a brand new empty project will have no drum maps, and the manager will be empty.
Please bear with me, as we work through creating a map from first principles.
Creating a new empty drum map, and editing it
As way of preparing for this tutorial, I’ve just created a new project, and added a couple of percussion VST instruments: Cakewalk’s SessionDrummer, and OrganicDrumLoop‘s OCK.
Now we bring up the Drum Map Manager. Clicking on the “New” button will create a map called “DM1-“, with no entries in it.
ASIDE: It would be nice to be able to give the map a more helpful name, wouldn’t it? Unfortunately, we can’t just simply assign one at this point. We’re stuck with “DM1-“. More on this later.
We start creating mappings for each MIDI note number by adding a new row to the map with the “New” button:
In this example, I want to build a virtual percussion instrument using sounds from both SessionDrummer and OCK. I’ve created three mappings, so that C2, D2, and E2 will trigger a kick and two snares respectively, with the “Soft Snare” coming from the OCK instead of SessionDrummer.
At this point the map exists as a definition in the project, and we can start using it.
I’ve created a MIDI track (Track 3) containing a clip with note events for C2,D,E, and F2 and we can see them in the PRV:
That’s with the Track 3 pointing at the default output port, which on my system is “1-Out A” – my USB MIDI interface (Midisport 2×2). Now let’s change this to be the new Drum Map, “DM1-“, which shows up in the list of available Out ports for the track, along with the two VSTi’s:
Now, having made that assignment, when we open or refresh the PRV, and select Track 3, we see the Drum Grid pane has become visible above the Note pane:
(Actually it was always there, just empty and minimized out of sight above the Note pane.)
All the notes in Track 3 are now shown in the Drum Grid, and not the Note Pane. I deliberately included an un-mapped note (F2) so that we could see what would happen. Cakewalk includes the un-mapped notes at the bottom of the Grid Pane, clearly marked as “unmapped”. They won’t trigger any sounds because they haven’t been assigned to any Output. We are free to delete the notes; left them as inaudible visual cues; or add them to the map, as appropriate.
Double-clicking on the unmapped note row will bring up a property dialog that allows us to enter the necessary mapping information for that note:
Observations on PRV Editing with Drum Maps:
- Notes in Tracks assigned to Drum Maps only display in the Drum Grid Pane.
- Although multiple MIDI tracks can be edited at the same time in the PRV, Notes in Tracks using a Drum Map are only shown when the Track is the selected Track. (I’ve posted about this on the Cakewalk forum.)
Only one Track can be displayed in the Drum Grid Pane at any one time.
- Correction: Only one Drum Map can be displayed in the Drum Grid Pane at any one time, but it will include note events from all Tracks assigned to that map.
Because of these side-effects, it can be frustrating working with multiple MIDI tracks where some are Mapped and other are not; or tracks directed to two or more drum maps.
Did someone mention presets?
Although setting up a drum map from scratch can be tedious, there are short-cuts.
You can save an existing drum map in a project as a “preset” so that you can quickly restore it. Let’s do that now: open the Map Manager and type in a name for the preset, and then press the Save button:
Two things happen:
- the Drum Map in the project is renamed;
- A .map preset file is created on disk.
The first thing is a bit of misdirection on Cakewalk’s part. There is no link between the drum map in the project and the preset file created on disk, yet now the drum map in the project has a name that is the same as the preset (in my case it is now “DM1-My_Custom_DM_Preset”).
If you later create a preset from a different drum map, with the same name, you will overwrite the existing preset file. However, the original drum map is not altered or changed in any way (nor would you want it to be!).
And it would seem that the only way to give the drum map in the project a meaningful name is to create a saved preset, with the desired name!
By default, these preset files (.map extension) are stored in the following directory, as per Edit > Preferences > File Locations:
%APPDATA%/Cakewalk/Cakewalk Core/Drum Maps
TIP: Out-of-the-box, Cakewalk provides a metric tonne of drum map presets available to use as a template when creating a new drum map. In order to retain your sanity, I recommend that you copy the specific files you actually use to a different directory, and change the folder location to match. Then you’ll see a much reduced list to choose from.
Okay, let’s create a new project and make use of this preset that we just created!
There’s two ways to do this. First, you can go into the Drum Map Manager, create a new empty drum map (“DM1-“), and then drop down the list of presets and select the entry:
Alternatively, use the Output selector on the Track (See Fig.4) and select “New Drum Map” and pick one from the list (which, according to my advice above, you have reduced to a manageable size, right?)
Having done this, you should notice something immediately:
The mappings have been initialized from the preset, but the Out ports are not set. They’ve reverted to the default. Why? It’s a new empty project! We don’t have any VSTs loaded yet; and in fact, we might even have a different default MIDI i/o hardware configuration (i.e. I could have removed the USB MIDI interface and switched to the MIDI I/O on my Focusrite 6i6). So it makes sense that the Out Ports are not included in the preset. Right? Wrong:
Or maybe there’s something else going on
Let’s try something different: Once again, create a new empty project, and this time, add an instance of Cakewalk’s Studio Instruments “SI Drum Kit” and then an instance of Addictive Drums.
Now repeat the process: add a MIDI track; and assign the output to a New Drum Map, using the same preset we used above:
Interesting! The Out Ports are being retained and retrieved from the preset, kinda, except they are assigned using an enumerated value matching the order the VSTs were loaded into the project. (That’s the 3, 4.)
So now we have the Kick and Snare going to the SI Drum Kit, and the “soft snare” going to Addictive Drums. So clearly there’s some clean-up we’re going to need to do, in addition to loading the correct presets in each of the associated VSTs (or, indeed, external percussion synth modules if that is what you’re using).
Exercise for the Student: Did you look further down the Drum Map Manager? Perhaps patches are also saved with the drum map preset, if we wanted them to? Might be worth exploring, if that is something you’re interested in:
How to quickly change the out port on all rows in a Drum Map:
Hold down Ctrl+Shift keys while changing one of the rows – you’ll see all rows assigned to the same Out Port change to the new value. Nice!
How to quickly create a Drum Map from an existing MIDI track
There is a handy way to create a new drum map for an existing track, such that it only contains mappings for the note events in the track:
- Select the source track with MIDI note data in it
- Assign the Output to New Drum Map > Blank Map
- In the PRV/Grid pane, you’ll see:
You can now enter the mapping properties for each unmapped row.
A final tip
You may notice in Fig 5. above that each mapped row can be MUTE or SOLO independently. One interesting use case presents itself: Imagine a drum kit map, and now select a kit piece to use for a click track (say, “Sticks” or similar). Now map an additional MIDI note to trigger that sound. You can use this additional note as a click or reference beat, and then MUTE it when you don’t need it, leaving all the normal “performance” notes untouched.
Finally, for real
I hope that helps clear up some of the intricacies and subtleties about MIDI Maps – I mean, Drum Maps – in Cakewalk.
After completing the WestPac Bolero, I decided to produce a cover version of Simple Minds’ “New Gold Dream”, originally released in 1983. I’ve always wanted to do this, and the recent state of the world inspired me to update it for the ’20s. I temporarily uploaded my version to SoundCloud earlier this month – since removed – but now I’ve released it on BandCamp:
I could write a whole blog post about the trick needed to get the OBXa strings slap-back to sound right. (Shorter version: the 4th triplet delay on the synth is not synchronized to the BPM of the song – it’s slightly slower, 114 bpm instead of 123.)
I wasn’t originally planning to include it in Album #3, but it might end up as a bonus track or something, because I am quite proud of it. One thing I did was to make sure that I pitched the backing tracks to my voice before attempting to sing it, and somewhat to my amazement, I was able to lay down all the vocal tracks in two short sessions. Clearly there’s a “pro tip” in here somewhere.
But that’s enough about old music…
I’ve mentioned before about how this next album is going to be a blank slate, with nothing pulled out of the archives and re-worked, and as of now, this is still more-or-less true.
For the songs on Steel Tree and the Inevitable sequel, the music has typically always come first. A lot of work then went into refactoring the existing music to accommodate the lyrics, applied retroactively. Hopefully that effort paid off, and the results weren’t too awkward.
In the case of Album #3, however, almost the opposite is true: I have lyrics for five songs, and although I hear proto-melodies and harmonic changes in my head, I didn’t have any music committed to a project that directly corresponded to these five compositions. So where does the music come from?
Shortly after I acquired the Novation PEAK synthesizer, I started creating custom patch after patch. Pretty soon I realized I needed somewhere to store musical ideas that developed as I played around with each sound. So I created a Cakewalk project called PEAK_Patch_Demos, with a separate MIDI track for each patch slot, with musical phrases and text notes. Some of these ideas show promise.
In the past, when I’ve experimented with a new piece of software (VST instrument or effect) I’ve create a project to host the plug-in, and save any musical ideas that developed as I experimented. Some of these are pretty interesting.
For some time, I’ve also had a single project containing piano improvisations, where each track is its own little melodic idea, collated and built up over time. I expanded on this and started trawling through the other projects to bring all the ideas into one big “idea bucket” project.
Each idea has its own track, and a choice of instruments to play back on – either strings or a type of piano. Only one track is un-muted at any one time – the tracks are not related to each other.
The Idea_Bucket project made a great starting point for identifying similar ideas that might work together in a single composition.
The next step is to create a second type of “idea bucket”, this one for linear composition: I have instrument tracks set up, with drums, bass, piano, rhodes, and strings. My drum instrument is comprised of just a Cajon and Hi-Hat, in order to limit distractions: I can create a simple beat, but not get carried away with elaborate percussion fills before basic arrangement things like key and time signatures are decided on. This stage is all about finding the right vocal melody, pitch, and correct meter and tempo, using only just enough instrumentation to establish the feel.
At this point it’s a bit of a dance: The lyrics have to come together with rhythm and melody – there’s some give-and-take there. I have to practice singing the melody against the music – and now the tempo and pitch might have to be adjusted to suit my voice. Choices such as, do I sing that an octave higher? In which case I have to transpose that section down a fifth for comfort. Now I have a problem getting section B to follow section A… etc.
And at the back of my mind, I have this fear that I’m actually ripping off some other artist subconsciously, and if so, will it be too blatant? I’m pretty sure this is all normal creative angst. When it gets too intense, it’s time to go out on the bike with the mp3 player on shuffle and listen to some different artists.
I can not remember when I acquired the Roland A-880 MIDI Patch Bay. It certainly wasn’t the first piece of kit I ever bought – that honor goes to a second-hand Roland Jupiter 6 back in 1988. It had some DIN ports – In and Out – on the back for something called MIDI. It was soon followed by an Akai sampling keyboard and synthesizer rack module, which worked very well together when connected with MIDI cables. Also, you could send notes from the Jupiter to the Akai devices over MIDI, so long as you set the rack to listen on MIDI Channel 1 or 2. Shortly after that, we found a Roland MIDI Interface (MPU-401?) for our PC, and started recording MIDI sequences into a copy of Passport Software’s Master Tracks Pro.
Recap: MIDI in a nutshell
So far, so good. We had PC software that allowed us to perform patch librarian tasks using MIDI (called System Exclusive or SYSEX) on many of the devices but it requires bi-directional data transfer between the sound module and the computer, and signals in a single MIDI cable only go one way: You need two cables connecting the In and Out ports. From the computer OUT to the module IN; and also from the module OUT to the computer IN. The computer requests data; the module sends it; the computer sends more data.
MIDI messages are assigned a “channel” between 1 and 16. So if you connect a MIDI cable between two devices, a device listening on channel 1 won’t respond to any messages assigned to channels 2-16. More information here.
This allows more than one device in a MIDI chain. In fact, later keyboards and modules included a third port, a MIDI THRU that would re-transmit incoming MIDI signals to the next device in a chain, allowing layering and multi-timbral setups. Some manufacturers combined the THRU and OUT connectors.
I realize as I write this that it all sounds archaic these days, when we have digital bi-directional comms over a single USB connector, let alone Ethernet and WiFi. But back in the 1990’s, it was like magic, and no-one complained that they needed two cables for this type of two-way communication.
The problem is that the more devices you have, the more un-plugging and re-plugging of MIDI cables is required to manage all the equipment. Some sort of automated patch bay becomes almost required. Enter the Roland A-880 MIDI Patch Bay.
The A-880 is basically a box with 8 inputs; 8 outputs; and it will connect these together any way you like. You can use it ad-hoc by selecting an input (from the top row of eight buttons) and then selecting which of the eight outputs (from the bottom row of buttons) the MIDI messages are echoed on. If you find yourself using the same set of connections over and over, you can save it in one of the 64 possible memory locations for easy recall.
The Studio Equipment
For the purposes of this article I’m using the following devices:
- Windows 10 computer running the Cakewalk by Bandlab DAW
- MIDISport 2×2 USB MIDI interface (ports A and B)
- Roland A-80 Keyboard controller
- Roland SPD-20 Drum Pad controller
- Novation PEAK synthesizer desktop module
- Korg M1 Synthesizer keyboard
- Korg TR-Rack synthesizer rack module
- Roland D-550 synthesizer rack module
All these devices have MIDI In and Out ports for sending and receiving MIDI messages such as notes, clock, and system-exclusive (data dumps and patch edits). I’ve already decided which MIDI channels each device is going to use.
Aside: Cakewalk and MIDI Echo
Cakewalk – and presumably other DAWs – has the ability to mimic the behavior of a THRU port, and echoing the incoming MIDI data from input to output. It records the performance into the active track, but also optionally echoes the notes through the computer’s MIDI output port. This lets me play the Roland A-80 whilst hearing the sound from, say, the Roland D-550.
More on this in the Cakewalk Manual: Controlling MIDI playback – MIDI Echo
Use Case 1 – Playback of a previously recorded MIDI project from the DAW
It’s an old project from back before we had the ability to record Audio tracks in our computer. It has three tracks and I need to send the MIDI out to the Korg M1; the Roland D-550; and the third track was drums and there’s a nice standard kit on the TR-Rack that will do nicely. So I need to connect the MIDI OUT from the computer to the MIDI In on those three modules:
Unfortunately, that arrangement can’t be done as-is because the MIDI cables are point-to-point: one Out port has to go to one In port. Instead, we have to daisy-chain them using the MIDI THRU ports on each unit:
That works – providing you have the THRU ports available.
One down-side of this is latency, in that if your chain has too many hops, then the instrument at the end of the chain can take a noticeable time to respond after you press a note. Also, there’s a potential for signal degradation. If you limit yourself to 2-3 devices in a chain, it’s not a problem, and it works.
Use Case 2 – Recording a performance into a new MIDI track
Now I want to record a MIDI performance on the M1 keyboard into a new track in the project in the computer software. So I need to connect the M1 Out to the computer’s In:
Hang on, the M1 keyboard is great for some types of playing styles, but after some practice runs, I think I really want to use the weighted, 88-keys of my Roland A-80. Just a sec, I need to re-connect:
Okay, enough! I’m sure you get the idea. Let’s move all these connections into the Roland A-880. One advantage is that now, we can feed multiple In ports from a single Out port, reducing the latency and signal degradation (which in practice isn’t a problem, but hey, it’s all good):
Making virtual connections between the ports is easy once you know how: Press a button on the top row, followed by one or more buttons on the bottom row. Then press Scan/Mix or Signal to complete the configuration. So to set it up as shown above:
- Press In-8
- Press Out-4, Out-5, Out-6
- Press In-7
- Press Out-8
Now I can send my performance on the A-80 to the Cakewalk DAW running on my computer; and in turn, Cakewalk sends the MIDI notes from the existing tracks out to my sound modules.
If I decide I’d like to record the next track on the Korg M1, I can merely switch from the A-80 by:
- Press In-4
- Press Out-8 (this “disconnects” the previous connection from In-7)
Now the M1 is the “controller”.
Connecting the rest of the gear
Now we go into the closet and pull out ALL the MIDI cables, and connect all the devices:
Ports 1 and 2 are accessible from the front panel of the A-880, so I tend to reserve these for “temporary” connections (although, my SPD-20 drum pad controller has been out of the closet and connected up for about a year now). Port 1 is handy when I want to integrate my iPad into the studio, or back up patches on the Line6 POD.
Now, it is so easy to lay down a new drum track using the SPD-20 as the controller:
Use Case 3 – D-550 Editor/Librarian operation
I can use SoundQuest‘s MIDI Quest software to download, edit, and upload patches to the Roland D-550, and this requires that we connect both In and Out to the computer:
We have 64 memory locations available in 8 banks of 8 patches. I can’t imagine needing all of them. I divide mine into two categories: Bank 1 is “Controller select”, and Bank 8 is “SysEx Operation”. To make it easy to remember, I use the patch number to indicate the “subject” of the configuration:
- 1:2 SPD-20 is controller (on port 2)
- 1:4 Korg M1 is controller (on port 4)
- 1:7 Roland A-80 is controller (on port 7)
- 8:2 SysEx/Dump for SPD-20 (on port 2)
- 8:4 SysEx/Dump for Korg M1 (on port 4)
MIDI Clock is a “pulse” or timing reference transmitted along with other data that can be used to synchronize devices. The A-880 will respect the MIDI Clock on the port nominated as “Control In”. You can set which port (1-8) is the “control” by holding down the corresponding input button during power-on. I use Port 8 as the Control In because the PC/DAW is my timing master.
I personally don’t use the Merge function but according to the manual you can merge input messages from Control In along with one other port. You can select which port to mix with Control In by holding down Scan/Mix while also pushing an input button.
You can change programs on the A-880 by sending it patch change messages on the Control In port, using the Control MIDI Channel. You set this channel by pressing Memory + Write , then one of the 16 input/output buttons. For example, to set a control channel of 12:
- Press MEMORY + WRITE (don’t hold)
- Press OUTPUT 4
- Press SCAN/MIX or SIGNAL to complete.
The A-880 has remained the heart of my studio since arriving back in the early 1990’s. Keyboards come and go (a moment of silence for the Jupiter 6, alas) but the A-880 remains at the hub, probably the most reliable piece of gear I’ve ever owned.
Other useful links
Consider an audio track, in which we want to change the volume of the audio for a short period of time during playback. Instead of moving the Track Fader manually with our mouse, we can set up an automation envelope on our track to do this for us.
Creating an automation envelope
Click on the Edit Filter menu and select Automation > Volume from the drop-down list:
Now we can add nodes to the envelope and arrange them so that the volume is adjusted the way we want. In this example, we’re going to lower the second half of the clip by 6 db:
You’ll notice that the Track Volume control changes to show an envelope symbol, indicating that the value is controlled by an envelope, and will change its value over the timeline:
So far, so good. You may notice that if you try to change the Volume value during playback, it will snap back to the value dictated by the envelope. This is expected behavior.
The default volume of the track is -6 db (as shown by the meter) but as the envelope curve takes effect, it applies a change from 0 to -6 and the output is now -12 db.
By default, this is how Cakewalk displays Track parameters controlled by automation envelopes. This is “Envelope Mode”.
Introducing Offset Mode
Alternatively, we can switch to “Offset Mode” by using the switch in the Control Bar Mix Module:
In Envelope Mode, volume and pan faders follow the project’s automation and do not respond to changes you make in real-time.
In Offset Mode, you “offset” the current automation in a track using a parameter’s controls.Cakewalk Manual
Switching to Offset Mode changes the Volume control “envelope” symbol to a plus sign, but other than that, there is no change:
Now, say we want to adjust the overall level of the track, but retain the envelope shape. We can just make the change. For example, in Fig 6. we have looped playback over the clip, and I change the volume “offset” from 0 to -6, which lowers the envelope values by -6 over the whole timeline.
After we apply the manual adjustment, you can see from the audio meter that the output volume at the start of the clip is now at -12db. During playback, the envelope then applies the -6 reduction and the output has been lowered and is now -18 db during that segment of the timeline.
Tip: Switch back to Envelope Mode to avoid accidental changes
Because it is less easy to make accidental adjustments in Envelope Mode, it is a good idea to switch back to it, and only use Offset Mode when we need it. Back in Envelope Mode, the track now looks like this during playback:
Of course, using our ears and looking at the Track Meters, we can tell that the track audio is now playing back -6db quieter, which is what we intended.
Warning: Be aware of the invisible offset value
On the down-side, both the level of the envelope and the Volume control value are indicating that the level is being adjusted from 0 to -6db. But that isn’t strictly correct: there is an invisible additional offset of -6db, that we applied in Offset Mode, but now isn’t visually displayed (except in the audio meter).
So you should be aware of this possible source of confusion, and, when in doubt, you can temporarily switch from Envelope to Offset mode to check for any manually-applied offsets.
Bonus Tip: easy gradual envelope changes
A quick way to get a gradual change in the envelope instead of the instant change shown above, try this: Place two nodes by clicking on the envelope; then select a wider region and Ctrl-Click-Drag down from above:
Finally, you may wish to return the Track display to the view shown in Fig 1., in which case, just set the Edit Filter back to “Clips” (see Fig.1).
Although I’ve used Volume as an example in this post, everything I’ve said also applies to Pan and other values controlled by automation. Have fun with automating parameters with envelopes in Cakewalk By Bandlab.
This post is mostly for my own reference, and also to replace and supplement information that used to be hosted at http://soundofmusic.se/ but is no longer available.
My Roland A-80 keyboard has a pretty noisy action, and after the success I had replacing the key felt strips in the Korg M1, I figured I should give the A-80 the same love and care.
According to Gearslutz, the A-80 features a Matsushita SK-688 keybed – it’s an older keybed (but it checks out) – and Syntaur have some replacement parts available, including a felt strip suitable for the keybed “lowers”, where the keys rest when they are not being played. I ordered two units, on a hunch (turns out I was right).
When they arrived, it was time to begin the service operation.
Before you begin
I highly recommend getting a copy of the service manual. I’ve saved you the bother of finding it: here it is. That’s the PDF I use, hosted on our site. (It’s not perfect but it is the best resolution and clearest copy I could find online.) I kept the PDF open on my desktop, and flipped between pages as I worked.
Secondly, you will need a key removal tool. There are instructions in the manual on Page 5 on how to make one using a paper clip, and providing you are able to match the dimensions specified, it actually works.
However, it is awkward to use, and not too robust for intensive use. (I went the extra mile and sacrificed a teaspoon for the cause. More on that later. If you don’t have access to a basic workshop, be assured that the paper clip tool does work.)
Wherever you move the unit to, make sure it is at a comfortable working height. I initially placed it on a “standing desk” but this was really too high. I should have just used a regular-height table. The A-80 weighs a ton. (30 kg?). Most of that weight is concentrated at the front edge (each key is weighted at the tip and that is where most of the weight comes from).
Opening the Lid
The top is hinged at the back edge and flips up like a car bonnet, once you have removed some screws from the bottom of the unit. Page two in the Service Manual has the details but I’ve got a diagram from another post about the A-80 which I’ll re-use here:
You either need to flip the unit on its back, balance it upright on the back edge as you remove the screws. Either way, it’s awkward and risky. (It was at this point I realized the standing desk was probably a bad idea.) Restoring it to the normal position, the lid then swings up for easy access.
If I recall correctly, there’s an earthing wire that will possibly prevent the lid opening to a useful working angle. In my unit, I’ve lengthened the wire so that I don’t have to unscrew one of the lugs, but your unit may be different. Use caution.
Now we’re ready for the next step.
Removing the keybed
If you’re only interested in removing the black keys, you don’t need to remove the keybed from the chassis: Black keys slide out towards the back; White keys towards the front (where there is no room in the assembled unit.
Removing the keybed requires:
- Disconnecting the cables;
- Unscrewing the keybed from the base.
Disconnect the copper shield
It’s attached to the keybed by three screws:
Unplug the “key pressure” ribbon cable
It is easy to unplug the cable from the CN8 connector on the MAIN-A board:
Mark the ribbon with a sharpie so you can re-connect it correctly later (optional). The receptacle clamps down on the ribbon edge and easily releases the cable if you tug gently on the grey section of the connector to open it:
The ribbon cable is retained by a flexible clamp, and in my unit, a strip of tape holding it to the base plate.
Unplug the PCB connectors RA1, RA2, RA3
In my unit I had to snip a cable tie that was grouping all the wires together. Now that I write this, I realize that I forgot to replace it. Oh well, no big deal. RA1, RA2, and RA3 are marked on the PCB.
If necessary, you can use a small screwdriver to loosen the connectors. They are keyed, you can only insert them one way.
Unscrewing the keybed from the chassis
There are 12 screws to remove: 6 from the inside back edge, and 6 from the underside at the front of the chassis. These are indicated as “II” and “III” in Fig.1 above.
Now we can lift the keybed out of the chassis and place it on a clean padded work surface. Take care to protect the ribbon cable – it is still attached, and is fragile.
Now would be a good time to take a vacuum cleaner to the interior of the chassis. I don’t know about you, but my unit was pretty filthy inside under the keys.
Reviewing the keybed
Replacing the felt “lowers” means that I’m going to have to remove all the keys. I took some time to review the keys. Each key has an identifier embossed near the hinge. For White keys, its the Scale note (except for one B key which also says “2-2”, and the first and last keys which are A’ and C’ respectively). The Black keys seem to be a random 3-1, 3-2, 3-3, etc, up to 3-6. I can’t see a correspondence between scale position and number.
The parts list on page 4 of the service manual does not give any hints about these codes. I don’t think it is significant, apart from the obvious non-standard keys at the top and bottom ends of the keybed. However, as I put the removed keys aside, I made sure to line them up in order so that I could replace them exactly the same way. I recommend that you do the same.
Removing the keys
Each key consists of a key Holder that is attached to the base, and the Key itself which hinges on the holder, and depresses when you play a note. Removing a key from the base involves reaching through a hole in the Key and lifting a catch on the Holder to allow the holder to be slid out of the base. White keys slide towards the front, whilst Black keys slide out towards the back.
Page 6 of the Service Manual attempts to describe the process clearly, but in all copies I’ve found on the Internet, there appears to be some text missing.
Essentially, the process is:
- Depress the Key
- Insert the key removal lever and rock it towards you so that the tooth engages the Key Holder latch (it is exposed while the Key is depressed)
- Lift the key removal lever slightly to ensure the lock button at the base of the Key Holder is raised out of the hole in the base
- For White keys, push at the back to slide the Key Holder towards the front.
- For Black keys, push on the front of the key to slide the Key Holder towards the back of the base.
- The Key + Key Holder should then lift away from the base.
Having a look at base with keys removed make this more understandable:
The Key Holders fit into the notches in the base plate. Black keys lock in from the back; White keys lock in from the front. You can see the round hole that the lock button fits into… here’s a view from the back:
The key removal tool is for lifting that button out of the hole, via the tooth latch on the key holder.
There’s nothing like trying it out in practice.
One thing you may encounter is that there is a whole lot of double-sided sticky tape all over the base plate, and the key holders are very firmly held in place. It took some force to dislodge them. Sliding them out while holding the key removal lever in place was tricky.
When I started removing the keys, the holder and key would separate and the spring would fall out. Not a big deal to re-assemble, but it’s best to avoid it if possible. Knowing the mechanics ahead of time might help with this.
With the paper-clip version of the Key Removal Tool, I had difficulty lifting the Key Holder lock. Seeing as I was starting from one end and removing all keys, I could use a small screwdriver from the open side to assist in the release:
However, using a screwdriver has risks. After two decades or so, those rubber domes are fragile. USE CAUTION! DO NOT LET THIS HAPPEN:
That’s the D4 key. So long as I don’t poke it, I can’t see the break in the rubber, and I had to hope that the switch was still functional. If not, I’d find out later.
Things were much easier when I gave up on the paperclip and manufactured my own key removal tool.
The thickness of the “blade” at the business end isn’t specified, but the thinner and more polished it is, the easier it will be able to latch on to the plastic catch inside the key.
Imagine you needed a knife for something, couldn’t find one cause all you found was 10 000 spoons…. it could happen!!! And therefore you couldn’t do whatever it was you needed the knife for, and then the next day it turned out that a spoon would have done.Ed Byrne
With all the keys removed I debated trying to remove all the old excess double-sided tape, and decided that, maybe it was there for a reason, and left it.
Replacing the key felt
This part was easy. It’s also the part where I realized that it was a good thing I ordered two units of key felt, because it took one unit just for the White keys alone.
This new felt feels a little thicker than the old strip.
With the felt replaced, we can re-insert the keys. No special tool is required for this.
Be warned that the thicker layer of felt on the underside means that there is slightly less room available when maneuvering the key into place. I took my time and tried to protect the rubber domes as much as possible from accidental shear forces as the key holder slid into the slot and locked in place.
A side goal of this whole adventure was to take a close look at C#5 which has always been a little “sticky”. It never quite bounced back as quickly as it should, and very occasionally stuck in the depressed state. Sure enough, when I re-inserted it into the base, the same behavior – actually worse – was observed.
Process of diagnosis:
- I tried swapping the grey plastic guide with one from a known “good” black key position, and observed the same problem.
- I swapped the key itself with a “good” one and, again, observed the sticky bounce-back.
- I removed the guide completely, and the key bounced back freely – nice – but with a lot of unacceptable “slop” from side to side.
I decided that either the guide post itself must be bent (not visually apparent), or the key holder slot slightly out of alignment (I find that hard to believe).
The solution I settled on involved removing the grey plastic guide and shaving the sides down a fraction, then re-lubing with a slight amount of grease. Fortunately this was sufficient and the re-installed C#5 key now returned to the upright position snappily. Success!
Reconnecting and Testing
With the keys restored to position, I lifted the keybed back into the chassis and screwed it in place; Reconnected the plugs and ribbon cable, and copper shield.
Anticipate the worst
- You’re going to need to connect the mains power and a MIDI out cable;
- You’re going to need to test every key on the board, with a sound source that is responsive to velocity;
- You’re going to find out that something isn’t working;
- You’re going to have to go back in to the keybed and try to fix it.
Alternatively, just screw the lid back on and heft the A-80 back into your normal position in the studio, and hope for the best. I chose this second option. I recommend that you suppress your optimism, and assume the worst. Get the A-80 into a place where you can test the MIDI output and still investigate keybed issues.
First good news: I found that the D4 functioned normally. That damaged rubber dome switch isn’t affecting the key response. Phew!
Problem # 2
However, G#4 seemed WAY too sensitive, belting out a velocity close to 127 no matter how gently I pressed the key. Ugh.
There’s nothing for it, but to open the lid and remove that key and examine the rubber dome switch.
Pro Tip: If you are diagnosing a Black key, then you do not need to unscrew and move the keybed from the chassis.
I unscrewed those 12 screws, and moved the keybed back towards the rear of the chassis to get clearance at the front; then raised it up an inch or so on wooden blocks so as to give all keys a clear travel path when depressed.
Then I realized that I didn’t need to do any of that, because I was only interested in one Black key. And they pop out from the back of the keybed, not the front.
After removing the key, I pressed the rubber dome with my finger. It seems that it was possible to emit notes with a wide range of velocity values. The dome switch did not appear to be at fault, but it is hard to judge sensitivity with a finger.
I tried carefully re-installing the key, to see if it was just debris or dust, but it didn’t make a difference. I also tried swapping over to a different Black key to see if it helped. It made a slight difference but still not acceptable – it was just too hard to get softer notes and compromising playing technique for that one key is not really feasible.
I examined the black plastic key at the point where it pushes down on the rubber dome switch. You can see from the schematic further back in this post (Fig.3) how the key, when depressed, impacts the dome switch at an angle. This causes the switch to close two sets of contacts in quick succession, and the time difference between the two circuits closing is translated to “key velocity”. It’s pretty accurate, when working correctly.
For whatever reason, this specific rubber dome was closing the two switches almost instantly, regardless of actual key depression rate.
In desperation, I took a file to the key and very carefully induced an angle in the flat underside of the key, such as to accentuate the timing difference in how the key impacted the two parts of the rubber dome. I don’t have a photo of this unfortunately (I wish I did, but I’m not opening up the A-80 again to get one).
Installing the key and re-testing demonstrated that my hack had made a difference. The velocity response on G#4 was now closer to that of the other keys. It’s not perfect but it’s very usable. It is still a “sensitive” key. I can live with it.
On the whole, the operation was a success. I think I dodged a bullet with the torn rubber dome on D4, and taking a flat bastard file to a key component to fix the problem on G#4 isn’t ideal by any means, but it seems to have worked. C#5 is no longer sticky.
The keybed is about 50% quieter and feels smoother. I did not replaced the “down” felt because it is aligned with the polyphonic after pressure sensors and I wanted to avoid messing with those. But much of the noise was due to “bounce-back”, and that has been reduced a lot.
The Black keys seem unaffected by the new felt with respect to key travel, but the White keys have a reduced “throw”, and feel…. tighter. This must be because their resting position is slightly closer from where it used to be, due to the new felt strip. I expect the new felt will compress a little further as time goes by, but the difference isn’t bad. It feels like an improvement. So, yay.
I hope you’ve enjoyed this tale from the workshop, and maybe even found some information that helps you out in your projects. Drop me a line if you have questions.
If you’re just here for the free SFZ files, the link to download them is at the end of the post. But if you are interested in the journey I took to get there, keep reading.
I’m thinking of including sounds from a Javanese Gamelan in my next project. After some Internet searching, I found a pretty complete set of samples available from Casa da Música released under a generous license. The sample files are available in a single download:
DigitopiaCdM_Virtual_Gamelan.zip 360 MB
Unpacking the ZIP reveals a substantial directory structure:
DigitopiaCdM_Virtual_Gamelan\ CASA DA MÚSICA's VIRTUAL GAMELAN.pdf Gamelao_CdM\*.nkm Gamelao_CdM\ WAV\ Gamelão da Casa Da Música - Porto, Portugal\ BONANG\ DRUMS\ GAMBANG\ GENDER\ GONG\ KEMPYANG\ KENONG\ KETHUK\ SARON\
The sample files for each instrument are distributed within the subdirectories, along with a set of instrument definitions for NI’s Kontakt Sampler.
Unfortunately I can’t use the .nkm Kontakt instrument definitions because I don’t have the full version of Kontakt. However I do know how to create my own instruments using the SFZ format, which is a standard text file format used by many Cakewalk virtual instruments and other third party sample players like the venerable but lightweight rgcaudio SFZ Player, or Plogue Sforzando.
Reviewing the Library
The library contains samples from three families of instruments: Drums; Gongs; and Keys. The samples are in stereo WAV format, grouped into subdirectories and with a file name prefix to identify the instrument:
|Drums||Kendhang Ageng||Drum, Large|
|Gongs||BB_ _||Bonang Barung||Laid Gong, Medium|
|BP_ _||Bonang Penerus||Laid Gong, Small|
|K_ _||Kenong||Laid Gong|
|Kt_ _||Kethuk||Laid Gong|
|Kp_ _||Kempyang||Laid Gong|
|GA_||Ageng||Hanging Gong, Large|
|GK_ _||Kempul||Hanging Gong|
|Keys||GS_ _||Gender Slenthem||Metal Bars, Large|
|GB_ _||Gender Barung||Metal Bars, Medium|
|GP_ _||Gender Penerus||Metal Bars, Small|
|SD_ _||Saron Demung||Thick Metal Bars, Large|
|SB_ _||Saron Barung||Thick Metal Bars, Medium|
|SP_ _||Saron Peking||Thick Metal Bars, Small|
|G_ _||Gambang||Wooden Bars|
These samples do vary in quality: most are very good, but many have odd resonances; are too quiet; are excessively long; or have tonal differences that are distracting. I can also hear from recording compression artifacts as the sounds decay into silence. Some even have negative phase correlation.
I could actually modify the sample .WAV files themselves for my own use but my reading of the license tells me that I then would not be able to distribute them. (I could be wrong about that.) However there is still a lot that can be done with the raw samples just by controlling how they are used in an SFZ instrument definition.
An SFZ instrument definition is just a text file, using simple HTML-like tags to define how samples are allocated to a MIDI keyboard; and played in response to a key press. (More information on SFZ available here.)
Gamelan instruments are either SLENDRO (5-note scale) or PELOG (7-note scale). The scale intervals and root notes are not standardized between orchestras like Western 12-tone temperaments, but within any given orchestra, there should be consistency among its instruments.
The Pelog scale roughly approximates that of the phrygian mode of the Western major scale (E-E on the white keys of the piano), with the notes EFGBC corresponding to the note positions 12356 in the slendro scale used by most gamelan.Catherine Schmidt-Jones, Musical Travels for Children
Musically, the 5-note Slendro scale is similar to the Western pentatonic scale, with scale intervals of large, small, small, large, small.
The (pelog) scale “selisir” is the most common; this scale leaves out the fourth andPieter Duimelaar
Back to the Library
For pitched instruments, a file name suffix indicates the scale of the instrument, and a number or letter indicates the scale note and octave:
Sample file suffix Scale Scale Notes ------------------ ---------------------- -------------- __SLxx Slendro (5 note scale) 1 2 3 5 6 __PLxx Pelog (7 note scale) 1 2 3 4 5 6 7
The Slendro scale samples in the CDM library would appear to use a root note of C, whilst the Pelog samples start on D.
Approximately mapping sample note to apparent pitch:
Slendo Scale Pelog Scale Instrument 1 2 3 5 6 1 2 3 4 5 6 7 ----------- ------------------- -------------------------- Bonang C D#- F G+ A+ D- D# F- G G# A+ B Kenong C D+ F- G+ A+ D- D# F- * A- A+ B Kempul C D#- F G A D- D# F- * A- A+ B Gender Slenthem C D+ F G A+ D D# F- G G# A#+ B Gender Barung C D#- F- G+ A+ D- D#+ E+ * G#+ A+ B Gender Penerus C D+ F- G+ A+ D E- F+ * G#+ A# B+ Saron C D+ F- G+ A+ D- D# F- G+ G#+ A+ B Gambang C D+ F G+ A+ D D# F- * G#+ A#- *
* = No sample provided (see “Selisir” scale variant described above).
This assumes that the scale note number in the sample file name is accurate – which seems to be the case.
Assigning Samples to the Keyboard
When mapping the Slendro samples to the conventional piano keyboard, we could start at C. However, musically, the 5-note Slendro scale is similar to the Western Minor Pentatonic scale, and therefore maps quite well to the black notes on the piano keyboard. If we did that, we could then map the Pelog scale notes to the White keys.
In reviewing the samples of each instrument, I found that the Slendro scales aren’t consistent in their interval sizes:
Instrument Slendro Scale Interval Pentatonic Root ---------- -------------------------------------------- ------------ Bonang long shortshortlong short  C Kenong shortshortlong shortlong   A+ Kempul long shortshortlong long   C Gender Penerus long shortlong shortshort  F- Gender Barung long shortlong shortlong?  F- (*) Gender Slenthem long shortlong shortlong?  F- (*) Saron long shortlong shortshort  F- Gambang long shortlong shortshort  F- (*) approx, matches Penerus
If we assign the Slendro scale note that corresponds to the Minor Pentatonic root to the Eb key; and assign the Pelog scale notes to the corresponding adjacent White keys, we get:
Slendro Scale Pelog Scale Instrument 1 2 3 5 6 1 2 3 4 5 6 7 --------------- ---------------- -------------------- Bonang Eb Gb Ab Bb Db E F G A B C D Kenong Gb Ab Bb Db Eb G A B - D E F Kempul Eb Gb Ab Bb Db E F G - B C D Gender Slenthem Bb Db Eb Gb Ab C D E F G A B Gender Barung Bb Db Eb Gb Ab C D E - G A B Gender Penerus Bb Db Eb Gb Ab C D E - G A B Saron Bb Db Eb Gb Ab C D E F G A B Gambang Bb Db Eb Gb Ab C D E - G A -
I admit, I’m probably way over-thinking this.
- The “Keys” instruments will share a common scale note : key note mapping (same pitch = same key)
- The Slendro scale notes will be intuitively produced from the Black keys on the keyboard;
- The 12 notes in each octave will uniformly increase in pitch from low to high, making some interesting performance possibilities (trills, note substitutions, cross-scale melodies)
- Note 60 (“middle” C) isn’t going to produce a tone pitched at 262 Hz for any instrument, although this is hardly a new concept in orchestral assemblies;
- It’s a shame that Kenong doesn’t map elegantly to Eb, matching the other Gong family instruments.
The SFZ Instrument Definitions
I developed the SFZ instrument definition files using Plogue Sforzando and the SFZ v2 format. However it would be easy enough to convert these back to SFZ v1 if necessary; I didn’t use any features unique to v2 other than the default sample path.
Each definition file uses a <control>default_path= operator to set the base directory to allow the sample files to be located. If it weren’t for those accented characters in the directory name, I’d have located the .SFZ files in the same directory as the .nkm files, the Gamelao_CdM\ folder.
But even just cutting and pasting the subdirectory name can cause problems, as you can see: “Gamela╠âo da Casa Da Mu╠üsica – Porto, Portugal”.
So instead, I’ve assumed the following relative directories:
./*sfz ./WAV/BONANG/*.wav ./WAV/GAMBANG/*.wav etc...
This means that you’ll have to re-arrange the subdirectories to match, or edit the .sfz files to relatively or explicitly locate the samples where-ever you decide to put them.
I’ve prepared three categories of instrument definitions, indicated by a file name prefix:
- RAW_ uses all available samples assigned to MIDI notes as per the table above. Slendro on the Black keys, Pelog on the White. I used Key Switches to separate the different kinds of sample (scale, mute/unmute, piano/forte) where available, for easy comparison. Feel free to use these instrument definitions in musical projects but really this was just intended for reference and review. I’ve made comments against each sample, where appropriate.
- FIX_ are based on RAW_ but refined. Some sample substitution to omit noisy or tonally distracting samples, but retaining the original charm of the instrument. Hopefully still “organic” sounding. Ideally, this is what I’d use in projects that required the traditional Javanese tuning.
- TET_ are 12-tone Equal Temperament versions, with A4=440 tuning, using cross fades, multi-samples, and other techniques to create instruments that would be used for Western tuning projects.
In general these are well-recorded samples, L-R balanced, low noise. A collection of “door slams”, “bongo hits”, and “face slaps”. I’ve assigned them to C2 > C3.
C1 and D1 are used to switch between the Barung and Penerus voices respectively.
Kenong, Kethuk, and Kempyang are arrayed with C1 and D1 switching between Muted and Un-muted (sustained) tones.
Kempul, Ageng and Suwukan are arrayed together with E1 and F1 switching between Piano and Forte voices.
Slenthem, Barung, and Penerus instruments are available using Key Switches on C1, D1, and E1.
Demung, Barung, and Peking size instruments are available using the C1, D1, and E1 key switches.
No voice variations, just Slendro and Pelog mapped across the Black and White keys, from A2 > G6.
The “FIX” instrument definitions
I’ve combined Barung and Penerus into one SFZ instrument, using round-robin alternating for over-lapping tone ranges.
Seeing as we have both muted and un-muted (sustaining) tones for Kenong, Kethuk, and Kempyang instruments, it seems sensible to combine these into one instrument definition. We could use key velocity to switch between them, but I don’t think it “works” from a performance point-of-view. I’ve used key switching, with C2 and D2 controlling Muted and Un-muted respectively.
Alternatively, we could replace the Key Switch with the following opcodes in order to play the sustained notes when the Damper Pedal is depressed:
<group> hicc64=100 // play group when cc64=0 (sustain pedal up) <group> locc64=100 // play group when cc64=127 (sustain pedal down)
In practice, I didn’t like how the sustain pedal affected the natural decay of the sustained tones when the key was released, so I’ve left it as key switching. Feel free to experiment.
We have loud (forte) and soft (piano) tones for Ageng, Suwukan, and Kempul gong voices, so I combined these into one SFZ instrument, using velocity switching to change to the Forte tones. Some volume matching between samples was used.
I realize that the point in the velocity curve where the switch happens is dependent on the controller’s velocity curve; personal preference; etc, so tweak to taste.
Tonal differences between the Slenthem, Barung, and Penerus sizes mean that I’ve left them as separate key-switched ranges in this SFZ instrument. C2, D2, and E2 respectively.
I’ve used sample offsets and volume matching to try to even out some of the harsher samples, and used sample substitution in the worst cases. The result is a more uniform instrument, but still with character.
Because of a similarity of tone between the three sizes, I’ve combined these into a single SFZ instrument, using velocity switching for loud and soft tones; and round-robin for duplicates. I’ve adjusted for volume differences and also substituted some samples in cases where noise was distracting (vibration or rattle).
Generally clean samples. The Slendro notes have some rattle but it is a musical sound. Outliers in the Pelog scale have been substituted for. Clicks and initial “dead space” in the samples have been removed by limiting the sample playback regions.
The “TET” instrument definitions
The CDM library samples are used to construct a good-sounding 12-tone Equal Temperament instrument with A4=440 using the Gamelan Instruments’ samples as a source. This could be used in musical projects that would work best with Western tuning.
I’ve allowed more creative leeway in assembling the instruments. In the case of Gender and Saron, I liked the effect of playing all layers at once so I’ve provide a couple of alternative SFZ files that do that.
|TET_bonang.sfz||Laid Gong, Range B3 > F7|
|TET_kenong.sfz||C2: Laid Gong (muted), Range C4 > E5|
D2: Laid Gong (sustain), Range C4 > E5
|TET_kempul.sfz||Hanging Gong, Range E2 > C4 |
(piano/forte on velocity switch)
|TET_gender.sfz||C2: Large Metal Bars, Range C3 > C4|
C#2: Medium Metal Bars (Slendro), Range C3 > G5
D2: Medium Metal Bars (Pelog), Range G2 > G5
D#2: Small Metal Bars (Slendro), Range G3 > G6
E2: Small Metal Bars (Pelog), Range G3 > G6
|TET_gender_ALL.sfz||All layers enabled. Thick! Range C3 > C7|
|TET_saron.sfz||C2: Thick Metal Bars (Pelog), Range G3 > C7|
D2: Thick Metal Bars (Slendro), Range G3 > C7
|TET_saron_ALL.sfz||All layers enabled. Thick! Range C3 > C7|
|TET_gambang.sfz||Wooden Bars, Range G2 > G6|
Okay, so where can I get these SFZ definitions?
The SFZ definition files are available here: https://prodigalsounds.com/downloads/CdM_Gamelan_SFZ.zip
Reminder: You will also need to download the Gamelan WAV files referenced by these SFZ definitions, from Casa da Música.