This application lets you generate wavetables for the Doepfer A-112 sampler module. The wavetables can be easily uploaded to the module with a connected MIDI interface.
The programm provides two ways of generating wavetables: Declare your own waves with a simple scripting interface or assemble existing WAV files to a wavetable.
A-112 Waves is a Java application and should run with any operating system supported by Java. It is tested with Windows and Mac OS. A Java Runtime Environment (Version 1.7 or above) is required to launch A-112 Waves.
The screenshots in this manual are made with Mac OS. The application looks slightly different on other platforms but the functions and workflows are the same.
Content:
Installation
Application window
Generate waveforms
Load WAV files
Tansmit and Save
Source Code
Credits
Installation, Prerequisites
For A-112 Waves to work it is mandatory that you have installed a Java Runtime Environment (at least version 1.7). It is recommended that you have a MIDI interface and a Doepfer A-112 sampler module connected to this interface. This is not necessarily needed, but without one of them, you can only save the generated wavetables to disk.
- Make sure a Java Runtime Environment is installed on your computer. If not, you can find one under java.com/download.
Caution Mac-Users: The standard Apple-provided Java version is outdated and has serious bugs concerning MIDI. If you can’t start the application you need to download an up to date version of Java from the link above. - Download the latest release “jar” file from GitHub:
https://github.com/privatepublic-de/A-112-Waves/releases - Under Mac OS or Windows just double click the downloaded “jar” file and the application will start.
An alternative method for starting is to open a console window and enter
java -jar path_to_your_download_location/A-112-Waves-1.0.0.jar
Application window
With the tabs on top of the application window you can select which functions you want to perform.
On the bottom edge an oscilloscope-like view of your generated wavetable is shown.
Generate waveforms
With a simple script you can generate the waveforms of your liking. Each line contains the declaration of one waveform type with parameters describing the harmonic content of the generated waveform. The script can produce the following type of bandwidth limited waves: Sine, saw-tooth, triangle and square.
Enter the waveform declarations in separate lines in the text field called “Waveform render script”. A script line consists of the waveform type name (sin, tri, saw squ) and comma-separated numbers or ranges of harmonics.
Examples:
sin 1
Produces one simple sine wave with no harmonics (just the fundamental frequency)
sin 4
Produces one sine wave with the fundamental frequency and the 2nd, 3rd and 4th harmonic.
sin 1, 4, 8
Produces three sine waves with 1, 4 and 8 harmonic frequencies.
sin 1-7
Produces seven waves with 1 to 7 harmonic frequencies
sin 1-7, 6-2
Creates a sweep from 1 to 7 and back from 6 to 2 harmonic frequency resulting in over-all 12 waves.
And the same goes for saw, tri and squ as waveform type. A more complex script with several wave types would be something like this:
sin 1-10, 9-2 saw 1, 2, 4, 8 squ 7-2 tri 1-10, 9-2 sin 1-5, 10, 20, 10, 5-1
Hope, you get the idea. Below the scripting text field the number of resulting waves is displayed or an error message if something is wrong with what you entered. You can enter lines with comments starting with #.
Click the “Create wavetable” button and the scripted wavetable is generated. The result will be visible in the oscilloscope view on the bottom edge.
Frequency factor
Doepfer A-112 wavetables are 65536 bytes long and have 256 waveforms with 256 samples each. This is represented by the grid and the labels “#1, #2, …” in the oscilloscope view. With the Frequency factor setting right to the “Create wavetable” button (1x, 2x, 4x) you can choose if a scripted wave should be rendered with one cycle in 256 samples, two cycles or four. This results in doubling or quadrupling the resulting frequency when playing the wave.
I find this especially useful if you are looking for the sweet spot for your waves (approximately 2 octaves) where the tuning tracking CV (volts/octave) of the A-112 is roughly in pitch.
Interpolated
The number of waves your script produces are equally stretched over the 256 waves for the A-112. This means if your script only produces 2 waves the first 128 waveforms are the first generated wave and the next 128 are the second. Same with 4 waves: 1-64 = your first, 65-128 = your second, 129-192 = your third and finally 193-256 = your fourth wave.
With the “Interpolated” check box you can produce a smooth transition between these chunks of the same waveform.
Hard to understand? Just play with it and check the results. For example sweeping through wavetables with the Wave-CV-in on the A-112 gets a lot smoother with interpolated waves.
Load WAV files
This tab is useful if you already have complete WAV files that you want to upload to the A-112 or you already have carefully sampled and edited single-cycle waves that you want to use as waveforms in the A-112.
Upload a complete WAV file
With the button “Single WAV file” you can upload a complete wav file to your A-112 sampler. Just press the button, select a WAV file and you are done. The WAV file is downmixed to mono, resampled to 65536 samples and bit-reduced to 8 bit. You will see what you get in the oscilloscope view on the bottom.
Generate wavetable from several WAV files
If you want to generate a A-112 wavetable out of several existing wave cycles in WAV files, simply copy the WAV files into a folder and press the “Select input folder” button to open the folder with all the WAV files. The folder is scanned and all matching WAV files will be assembled to a wavetable as soon as you press “Create wavetable”.
The options Frequency Factor and Interpolated do the same as mentioned above.
A great source for waveforms:
A cool scandinavian guy called “Adventure Kid” generated packs of WAV files with all sorts of waveforms. You can download these here:
www.adventurekid.se/akrt/waveforms/adventure-kid-waveforms
Unzip the downloaded waveform pack, select one of the wave folders and press “Create wavetable”. It’s really fun to play around with these waveforms and the A-112. And actually these waveform packs are the main reason why I started programming A-112 Waves.
Transmit and Save
This is where all you did before gets real. You can either transmit the generated wavetable directly to the A-112 via MIDI or save it to disk as WAV file or MIDI sys-ex dump file. These files can be transferred with other tools to the A-112 or you can do with them whatever you like.
If you have a MIDI interface connected from your computer to the A-112 all you have to do is:
- Switch the A-112 module to the sample bank you want to store your wavetable in
(S1 or S2) - Switch the A-112 module to “Dmp” mode
- Select the connected MIDI interface from the drop-down list
- Click “MIDI transmit”
The upload to the A-112 takes about 20 seconds and then you’re good to play the new waveforms. - Don’t forget to switch your A-112 module back from “Dmp” to “Play” and select “Wav” mode.
Source Code
The source code of A-112 Waves is available on GitHub:
https://github.com/privatepublic-de/A-112-Waves
Credits
A-112 Waves Version 1.0 by Peter Witzel, Jan 2015
Thanks to:
- Zoë Blade for reverse-engineering A-112 sys-ex dumps and her makedoepfer.py python script on GitHub which I translated to Java
- Andrew Greensted’s Java classes for WAV file i/o
Vielen Dank für das Programm. Seit meinem Wechsel auf den neuen MacPro hat das alte Windows-Programm unter Parallels Desktop einfach nicht mehr Samples übertragen wollen…
Danke. Bin froh, wenn das Programm auch anderen nützt. Freu mich auch über Feedback und Verbesserungsvorschläge.
Good job! :D
Thanks, likewise!