The Waldorf Iridium is, amongst many other things, a sampler. And so many instruments have already been sampled – you will just have to load the samples to the Iridium, and place them in a patch.
This post will try to create a patch with the sounds of a Yamaha CP70 electro-acoustic piano, and have a small script do most of the work. If you are kind of lost here, read the “Not-so-grand-piano” post first.
The Yamaha CP70 is one of the instruments that made the sound of the 80s. Most people will probably recognise it instantly as “that piano from Alive & Kicking“. Genesis used it a lot on songs like “That’s All”. Peter Gabriel loved it.
I love Peter Gabriel’s music, so I needed to. Have. That. Sound.
There is a set of sample that a guy called Conner Sawchuck created from the CP70 of his friend David. You can download the samples from David’s CP70 here after registering for free.
Conner sampled the CP70 quite extensively, 29 notes from the 73-note range of the instrument (E1-E7). He recorded multiple samples for each key with different velocities. The 157 samples are nice and clean, but there are some things that need a bit of extra work:
- Some of the sample files have a little bit of whitespace before the sample plays, up to 40ms, which is audible.
- There is one small bug; one sample is named
F6 69-[1].wav
rather thanF6 69.wav
- I manually removed
Db7 152.wav
because it came up empty to my code. - You may want to amplify them a bit, as they peak around -12dB.
- Come to think of it: It’s also a problem that the lower-velocity samples are quieter than the higher-velocity ones.
You might wonder why I think that the last point is a problem – after all, this is exactly the way we would have them. But it goes against the logic of a synthesizer playing samples.
All samples should have the same level, regardless of velocity
Remember my last post, where I built the Not So Grand Piano from the KApro factory samples? They are all the same level, for a reason.
When you have different samples for a note played pianissimo as well as fortissimo, you would switch between samples, as a soft note has different overtones from a hammered note. But you would still want to play the samples at the same volume and control the volume of the note with the VCA. The oscillator changes the texture but not the volume.
Rather than by playing back louder and quieter samples, which would give you a very limited number of dynamic steps, you would want to have continuous dynamic control via MIDI velocity. So unless you can find a way to program a different VCA velocity curve for each sample, they should be played back at the same volume by the oscillator.
The Iridium does not feature a way to crossfade with velocity, so you still have audible jumps in the tone of a note once you cross the velocity threshold. You can simulate that up to a point by blending in the loudest samples with OSC2 and OSC3.
Preparing the samples from David’s CP70
- Download and unpack the “David’s CP70” package for Kontakt.
- Put a small R script in the same download directory, and run it.
The R script is nothing fancy – have a look at it in this repository. As R is not as common as Python, you might get confused by the code processing the dataframe table (which is WAY more easy in tidyr
/dplyr
than in Python’s pandas
standard!) – it reads the samples, raises their levels to -6dB, records the maximum amplitude, and determins a velocity range for each of them. It then uses the information to write a .map
file for the Iridium which will tell the sampler where to put each sample, and what to do with it.
A documentation of the file format can be found here as a PDF, and as a Markdown file as part of the github repository containing the code.
- A folder
/samples/DavidsCP70/
containing the prepared sample files on the SD card. (The original sample folder is namedDavid's CP70
which leads to problems with the Iridium’s file system and is plain ugly.) - A map file called
CP70.map
Copy both of them to the root directory of your SD card, and insert it into your Iridium.
Getting the samples in place
- Init a new sound, select a particle generator (i.e. sample player) for OSC1.
- Select the “Timbre” tab and press the “Actions” button. Press “Add” to get the samples. Navigate to the SD card by clicking on the “Internal” touch button top right until you get to “SD CARD”.
- Import the complete folder of samples from the SD card. The manual does not tell you how to load a complete folder full of samples, and I discovered it by accident: Instead of selecting an individual sample, select the
/samples/DavidsCP70
folder, then press “Add”. The synth will now prompt you whether it should copy all the samples to internal memory; yes – select: “Copy”. They will all be copied to a folder/samples/DavidsCP70/
in internal memory now.
My Iridium stalled after loading the last sample. If loading seems to take an undue amount of time while the progress bar is almost at the end, power-cycle the Iridium: the samples are in place now. Go back to an empty preset, init with OSC1 in particle mode.
- Load the map file now: Once again, press “Actions” then “Load Map”.
A Grand for 20: Iridium patch from the Keyboardwave CP70 samples
David’s CP70 samples make up a humble 140MB. A commercial sample pack with three times the data can be bought for €18,90 from Keyboardwaves. It features 6 level per note, at defined velocities, and all samples were recorded at the same level.
Generating the map for this was pretty straightforward. I made two versions, one with only one oscillator (meaning: hard velocity switching between the samples, and one for two oscillators and a bit of overlap between the velocity zones. I used a trick to generate more texture levels between adjacent samples. Say you have sample A (low velocity) and sample B:
- Start with sample A from OSC1 at low velocities.
- At higher velocities, you have a zone with sample A reduced to two-thirds the gain, and OSC2 starts playing sample B, which is reduced to one-third of its gain.
- At velocities above that, a zone starts with sample A playing at one-third of its gain, and sample B playing at two-thirds.
- At highest velocities, we have switched to sample B from OSC2.
You can use this method to create as many crossfade steps as you like.
Verwandte Artikel:
- A Not So Grand Piano Patch for the Waldorf Iridium (Tuesday, 12. November 2024; Schlagworte: map files, Multisamples, piano, Sampling, Waldorf Iridium)
- Midifying Jenny, Step 1: Replacing the old keyboard chip with a Teensy (Sunday, 6. January 2019; Schlagworte: Arduino, Jen SX-1000, Löten, Midi, Modding, Retro, Synthesizer, Teensy)
- The Humble Art of iPad Music: A Rant (Wednesday, 21. March 2012; Schlagworte: Animoog, App, iPad, Korg iMS-20, music, Musik, Softsynth, Sunrizer, Synthesizer, SynthX)
Pingback: Internal Speakers Mod: Can I hack my Yamaha Reface to sound as least as good as my Macbook? - untergeekuntergeek