Posted on 35 Comments

Emu SP12 and SP1200 Software Model

Project Details:

The Emu SP-12 is a sampler/drum machine unit that was released in the 80’s. It allows the user to sequence loops using either internal drum sounds or sounds sampled into the machine. The machine allows for a total of 5 seconds of sampling time, which is separated into two banks of 2.5 seconds each. After sampling a sound into the SP-12, the user is able to edit the length at both the start and stop points, the tuning of the sound, the decay of the sound, loop points, and also are able to send the sound through an analog dynamic filter.

The goal of this project is to develop a program that allows the user to input some .wav file, and get back a sound that sounds like it was sampled by the Emu SP-12. This project is both a study of modeling equipment through circuit analysis/testing, and a study of why the dirty sound of the SP-12 sound is so popular.

The SP-12 samples at a lo-fi 12-bit sampling rate near 27k Hz. This is far below the required 40k Hz required to avoid aliasing, and the 12-bit quantize rate is low enough to cause quantize errors. This sound shaped much of the sampled sounds in Hip Hop music in the 1980’s and 1990’s (take a look at music by Pete Rock). The SP-12 machines are still sought after today by collectors and producers catching around $500 each on Ebay (SP1200 is more like $1400). This is $100 or more per second of sampling time.

Today, this machine is often used to sample in drum sounds, such as kicks and snares, and then re-record them from the SP-12 into a computer to be used with a modern sequencer. In other words, it is used to make recorded drum sounds gritty. Of course, it is still used to compose finished beats using the SP-12’s built-in sequencer, but the sequencer will not be modeled in this project.

A List of Details:

..SP-12 stands for Sampling Percussion at 12 bits
..Sampler/Drum machine with sequencer
..8 velocity sensitive pads, 8 control sliders
..8 voice polyphonic (8 outputs)
..12-bit, 27500 KHz sampling
..Standard with 1.2 sec (48Kb), Turbo with 5 sec (192Kb)
..100 Patterns
..100 Songs
..MIDI, SMPTE
..Manufactured 1985-1987
..24 internal drum samples, 8 user samples
..dynamic analog filter on output channels 1,2 (SSM2044 ship)…this is a 4-pole time-varying low pass filter

Why/How people use it:

..Makes drums sound really hard and gritty
..Detune function for samples
-sample in a sound from a vinyl record at 45 rpm
-detune to original pitch, which adds gritty sound to sample
..Machine adds it’s own sound, which can be recognized
..Icon machine used by Pete Rock, DJ Premier, Beastie Boys, etc.
..Real time sequencer (similar feel to Roger Linn sequencer)
..Real-time volume/detune/editing control using sliders
..Beefy low pass filters

Project Status:

The schematic of the SP-12 was very hard to find. I was able to track down a pdf of the service manual from a site called emulatorarchive.com. This pdf includes schematic diagrams and descriptions of the circuit. The pdf version costs $15. I was hoping to find a free version for download, but I didn’t find one. After receiving the schematics I was happy to find that the service manual was very thorough and provides a complete circuit diagram..

After sampling a series of drum sounds with the SP-12 from vinyl records and comparing them to the original sound, it was found that the analog dynamic filter, and the detune effect had the most dramatic changes on the sample. The detune effect is particularly interesting because it makes the aliasing in the SP-12 very apparent.

Some Tests:

A beat made entirely by sampling records with the SP-12 and sequencing the sounds within the SP-12 is here:

Audio MP3

Running a kick drum through the various analog filter settings sounds like this:

Audio MP3

Running a snare drum through the analog filter sounds like this:

Audio MP3

Detuning a drum kit sounds like this:

Audio MP3

Sampling a sine sweep gives a good example of aliasing in the SP-12. A sine sweep modified by several settings of the detune feature sounds like this:

Audio MP3

Sampled white noise ran through the 4 pole dynamic analog filter shows that is it low pass and time varying. The file below includes white noise run through the 8 possible SP12 outputs. This file starts with output 8 and continues down to output 1:

Audio MP3

What Was Done For Modeling:

There isn’t one direct path to modeling an audio device. Depending on the equipment, several types of modeling might need to be considered. For example, a mechanical audio device like a spring reverb might be modeled using ‘physical modeling’ (this is where physics based equations are used to build digital filters). Circuit analysis can be used to determine what will happen when an audio signal is passed through a particular circuit. One can pass specific audio test signals through a circuit and analyzing the difference between the input and the output (in some cases an impulse response can be generated by sending sine sweeps sent into the device).

After reviewing the complexity of the SP-12, it was immediately realized that a few different types of techniques would need to be implemented. Some of the techniques used are discussed below:

Circuit modeling technique: One of the major parts of the input circuit of the SP-12 is a fairly complex circuit used for anti-aliasing. This circuit is ‘static’ in the sense that it can’t be modified by the user. If the effects of the circuit could be modified by the user, an exact solution for the circuit would have to be determined. An exact solution means that the circuit analysis would have to be done by hand, which would result in a formula that fully describes the circuit. This formula would have coefficients that could change in relation to modifications the user might make. In the case of the anti-aliasing filter, we did not necessarily need an exact solution, so we got the help of a program called LTSpice. This is a free spice program by Linear Technology. This program allows the user to draw the circuit, insert parameters that describe all the components of the circuit, and then run different types of analysis on the circuit to see what it’s doing. This particular program also allows the user to send an audio input into the circuit and it will return the affected audio sound as an output. This process doesn’t run in real-time, so don’t get too excited. In our case, we ran tests that returned data describing the transfer function of the anti-aliasing filter. This data was then read into Matlab, which could then re-implement the filter based on the data.

Testing technique:
The control sliders on the SP-12 are not continuous. For example, when the slider is being used to control detune, the detuning changes in steps as the fader moves up and down. So, the sound does not detune smoothly as the fader moves. In order to get the correct tuning of the aliasing and detuning, the number of steps and the amount of detune needs to be determined. A 1KHz sine wave was sampled with the SP-12. A multi-meter was connected to the ground and control voltage output of the slider in order to track the control voltage values being returned by the slider. The slider was set to control detuning in the SP-12 and was moved to the highest position. The fader was slowly moved downward, and the sample was triggered continuously (by banging on the trigger pad like crazy). At each change in pitch, the corresponding control voltage range was recorded in Microsoft Excel. We found that the slider has 16 different steps of detuning. The detuned audio sample was recorded at each of the steps. So, at this point, we have 16 recorded audio samples of the 1KHz sine wave that is detuned to 16 different pitches. We also have control voltage values of the slider at each of those steps. Each of the 16 new pitches were analyzed with a modified version of findpeaks.m. This returned a value that corresponded the frequency of each of the 16 steps. It was found that the standard detune range spanned from ratios of about 1.5 (high pitch) to 0.65 (low pitch). This was because the 1KHz signal changed from 1KHz to 1.5KHz at the highest detune setting, and it changed from 1KHz to about 650Hz at the lowest setting. These ballpark ratios were then transferred into the detuning script that written in Matlab by David Yeh. The frequency values were not exact, but they were a good starting point. After that, the real detuned output of the SP-12 was compared to detuned outputs generated by the Matlab script until the pitches were perceptually equal. We were unable to get the exact tuning using the findpeaks script. Instead, we were getting an estimate that had to be tuned by ear. This technique was later thoroughly improved to calculate/measure the exact tunings of all 32 possible steps of the SP12. The new technique was also used to get perfect tunings for the SP1200 model. Maybe I’ll tell you about it when you get older.

Matlab: Several scripts were written during testing and during implementation of the SP-12 model. Some of the scripts, such as findpeaks, were used just to obtain data from tests. Some scripts handled implementing the anti-aliasing filter, and detuning.. This is were the guts of the software lie.

After working with David Yeh for a few weeks on this project, he decided it was an important topic and wrote a paper about our findings and some of his research. The paper was submitted to ICMC. The paper is available here, which is on his CCRMA page.

David worked on the Matlab implementation of the SP-12 filters using the data we collected. The Matlab script currently models all of the important sound modifying parts of the SP-12 including the 4 pole dynamic analog filter.

Some Matlab plots comparing a sinusoidal log sweep sampled by the SP-12 and ran through David’s script:

Log Sweep of Original Test Signal

Test Signal Through Output 8 of SP12
Test Signal Through Matlab Script
Test Signal Though Low Tuning of SP12
Test Signal Though Low Tuning of Matlab Script

Pay close attention to the frequency scale. The graphs show that the Matlab output reflects where it is supposed to.

The SP12 vs. Matlab Script listening test:

After spending some time retuning the Matlab script, the following test was generated. Some of the comparisons are both SP-12, and some are both the Matlab script. And of course, some are the Matlab and SP-12 side by side. Comment and tell me which is which….

The original samples are here:

Kick 1:

Audio MP3

Snare 1:
Audio MP3

Piano 1:
Audio MP3

Piano 2:
Audio MP3

The original sample was detuned to the lowest detune setting of the SP-12…

Which of the following are sampled by the SP-12, and which are the Matlab script?

Kick 1a:

Audio MP3

Kick 1b:

Audio MP3

Snare 1a:

Audio MP3

Snare 1b:

Audio MP3

Piano 1a:

Audio MP3

Piano 1b:

Audio MP3

Piano 2a:

Audio MP3

Piano 2b:

Audio MP3

Even if you can’t tell if the file is from the SP12 or the Matlab script, you will notice that there is some difference between the files. I will add examples of the new SP1200 Matlab tunings vs. the SP1200. The two are indistinguishable.

35 thoughts on “Emu SP12 and SP1200 Software Model

  1. Sounds like you really went through everything. Have you accomplished the software yet?

    1. Not in a releasable form. Last week I updated the matlab script to take one sample in, and return 64 samples. 32 samples are all 32 tunings of the sp1200 with no filter, and the other 32 are the same tunings with the filter. I’ve got about 1300 kick samples from playing with it last week.

  2. Hi!

    Excellent project! When can we expect the first release?

    Peace!

    1. Still pending… No current schedule for an official release.

  3. Sounds really interesting! What is the current situation of the plugin? I hope the project will be a success and will get released.

    1. Thanks, I hope so, too!!

  4. Hello,this is amazing,there is no emulation of the real sp12 besides this one…please release it ,the is a lot of musicians out there that would die for a true emulation,i’ved tried every vst emulation (bitcrusher based) and i cannot get any close…please make a VST plugin!!

    sergio frias

  5. Hey
    this sounds really dope i’ve been waiting for this for years let me know if you need
    any info as I’ve been a big SP-1200 user on countless records,also let me know
    when this is looking for release and if it will be available for mac
    peace
    kenny dope

    1. Thanks Kenny. I appreciate the help. This project is on hold for now. I’m deep in a skratch hardware project at the moment.
      If/when this gets a real release, it will be for mac.

  6. Hey man – incredible work! I was just wondering if this project was ever likely to resume or if you were done with it. Serious props either way

    1. Thanks! The project has been closed for years, so it’s not likely we will update it anytime soon. At least not for release.

      1. Hi ,
        Is it possible to upload the matlab scripts and LTspice files online ?
        There has been no other serious virtualization of the SP1200 so far….
        Even if the script is not in real-time , it doesnt matter.. It’s still better than nothing at all….
        There’s a lot of people seeking a serious alterrnative to buying a $3500 SP1200…

        Thanks in advance.

        1. Thanks. I can’t distribute the code.

          It is, unfortunately, the best model I have heard by far.

          1. You should team up with UAD to release the plugin. I am sure they could work with the code you have and you could make a lot of money in the process. They are all about old gear but haven’t tackled the vintage sampler department yet…..

          2. I know those guys. I was in there showing the SP1200 version to their golden ears. They liked it, but they never got into the sampler thing.

  7. you should team up with Tal (https://tal-software.com/products/tal-sampler) and finish this great project

  8. Man i need a good emu from a person that understand the complexities of the sp

  9. yo bro! i do a great job! World needs yo skills! even Dave Rossum know about yo work! i hope you can make REAL SP in the box! Mutch luv.

    1. thanks!

    2. *YOU.
      You do a great job!

  10. maybe you can try code it in python? Reaper works well with it

  11. Wzp G? How are you? Do you think about connect with Native Instruments? They made maaad ugly and NOT autentic SP model. I realy hope you find a ivestor for that project – read this thread every weak for news.
    If you interested i have one rare and complitly accurate amterial for tests – only REAL SP make this thing sound good, rich, and crisp – all vsts are make it ugly

  12. Have you thought about crowdfunding it maybe? Not sure if lack of funding is what’s holding you back, but maybe with all the people out there who want it, you’d be able to get closer to your funding goals that way.

    1. Thanks. It’s not a funding issue. I worked on this project more than 10 years ago. It’s been shelved.

  13. Any update on this project? Really interested in getting my hands on this plugin!

  14. Seeing this not come to fruition is painful! Hope this happens as a program soon!

  15. Hey man, amazing work. I’ve been combing the net for years looking at ways to potentially model the SP, as well as the various emulations and clones that have been attempted. Reading this is tantalising, and it makes me sad to think that the solution exists but is just lying dormant.

    I’ve seen your replies to previous comments stating that it’s not an issue of funding and that the project has been permanently shelved. With the prices of 12s and 1200s reaching exorbitant levels, and the number of fully functioning machines decreasing every day, the demand for this software is at an all-time high and only going to increase.

    Would it ever reach a point where the financial benefit or public demand for the profit would be enough to motivate you to finish the software to a releasable level? I know of a lot of producers, just in my personal circle, who would be more than willing to put money towards funding this kind of release.

    Either way, appreciate your work man. Peace!

    1. Also if it did end up coming out on mac and could eventually be ported and utilised within the modular iOS audio environment, I think many peoples dreams of a powerful modern sampler with the SP sound would be realised.

  16. How much money would I need to give you for you to finish this project and make a useable AU or VST for Mac? I know you’ve shelved it, but I would rather spend the same amount of money on a plugin if the results are indistinguishable from the hardware. I totally serious – how much?

  17. Big producers aroudn the world is waiting for you! We belivein you

  18. Firdt off let me say this is truly incredible work.
    I am currently working on a replica of the SP-1200 using a raspberry pi, I have a good amount of the UI and sequencer done but my biggest hurdle is modeling the sound.
    I’m especially interested in reproducing the tuning algorithm, which you have already done to perfection. It’s hard to find much info aside from what’s in the service manual, is there anywhere I can contact you to ask a few questions?

    Best regards

    1. Welcome to the music business, brother)

  19. I’ve been working on this over the past few weeks for my own use, thought I’d share now that I’m happy with the results.

    It’s a simple Python script for pitching/resampling audio files, I use it to get that gritty “SP-1200 sound” before bringing things into Ableton

    Github: https://github.com/mwcm/pitcher
    SC with examples: https://soundcloud.com/user-32015826…tcher-examples

    Feel free to share it around if you know others who’d find it useful.
    Would love to hear any feedback, anyone is welcome to fork/pr/raise issues on GH as well!

    1. Thanks for referencing David’s paper on Github!

Leave a Reply

Your email address will not be published. Required fields are marked *