Nintendo DS Synth Program: “Korg DS-10 Analog Synth Emulator”

Korg DS-10 Analog Synth Emulator for Nintendo DS

One correction: There are now North American and European releases out with appropriate documentation.

By Inside Synthesis

KORG DS-10 is a music creation program for the Nintendo DS that emulates the Korg MS range of synthesizers. Frequently people refer to the Korg MS-10 but this is a single oscillator monosynth. The DS-10 adds sync which the MS-20 is lacking. It was released on July 24, 2008 in Japan, October 10, 2008 in Europe, and November 4, 2008 in the United States.

A newer, DSi compatible version, entitled KORG DS-10 Plus, was released in Japan on September 17, 2009 and in the United States on February 16, 2010. It doubles the number of synth and drum machines. It also adds some minor new features for the standard DS.

Instruments

The DS-10 creates sound with two analogue synthesizer emulators, each with two Voltage-Controlled Oscillators (the Korg MS-10 had only one VCO). The VCOs feature a sawtooth, a pulse (with a non-modifiable pulse width), a triangle and a noise waveform. There is also a four-part drum machine that uses the same sound creation techniques as the synthesizers. The sounds made by each of the synthesizer emulators are modified using virtual knobs to change the value of standard synthesizer parameters such as cutoff frequency and waveform shape. Additionally there is a screen where users can patch certain parameters to be modified by an LFO, the envelope generator, or VCO2. Those new to Korg synthesizers may find the original Korg MS-10 Manuals useful in understanding the function of its components.

Interface

The user interface is mainly through the DS’s touch screen with the cursors serving as a supplementary method of moving through the various interface screens. The primary method of navigating through interface screens is by switching the interface screen with the processing flow map and selecting which item to modify. Notes can be played using a 2 octave keyboard or through an interface that detects the X and Y position of the stylus on the touch pad simulating a KORG Kaoss Pad. The Kaoss Pad can also be used to modify volume and pan as well as being able to assign the X or Y values to any of the parameters that can be modified elsewhere. Users can record twenty-one sessions with sixteen different step patterns with either live input or through a step sequencer. These patterns can then either be selected live or sequenced with the song mode.

Effects

The DS-10 features a chorus, flanger and delay parameter that can be applied to each synth or the drum machine individually or as a whole. In addition, each of the editable drum sounds can have a separate effect added to it in addition to the global effect.

Should I make the code available?

I am considering making the code for these PMAs available. What do you all think? What would be the best way to do this? The code cost a couple thousand to have written, and it cost me a few weeks to work with and develop.

Why BPM PMAs?

BPM PMAs are simple light (don’t take much resources on your device) apps that you can play anywhere. You can play them on the bus. You can take several instruments with you when you travel, and you can edit the instruments depending on what music you want to play.

We design them to be hacked. You can modify your instruments. There is a community to discuss the instruments, hacking on the non-coder and on the coder levels, and other music subjects.

We build new instruments. Instrument designers whose designs we have noticed have their designs translated into digital form.

We build for tablet/phone and keyboard. These aren’t apps designed for a dedicated machine or physical instrument, and translated into a digital form. They are built digital-native. They are designed to be used best when played on a tablet/phone or desktop with a keyboard. They can be used without a keyboard as well. We sell inexpensive portable keyboards you can plug into your tablet or phone — the same keyboards we use ourselves. They are designed to be used plugged into an amp with a band as well, if clients want to use them that way.

We use our own apps. We develop them as we use them. This means that every once in a while, we update the information, the apps, and the explanations on how you can get the most out of your BPM PMAs. It means we develop them so that we will be satisfied with using them. It means we have in mind how to make them as well as possible, get the most out of them, so that we can use them.

What rights do I have when I edit the code?

WHAT YOU CAN’T DO WITH THE CODE

The code is proprietary. BPM owns the code. We do not permit people to edit any part of the code and give it away publicly, in any form. We do not permit people to use any part of the code in something they sell. The code is our intellectual property and using it in any of these ways is criminal.

Why? There was a LOT of work behind getting this code and these PMAs here. Thousands of dollars, finding coders and instrument designers, communicating. Hundreds of hours working things out, designing, coding the layout, making the samples, figuring out how it could all work together, building the website. All this time, money and energy used for this project instead of one of the other projects we could have developed. We want to be able to at least recover our investment, and want to make a profit on our investment of risk, time and energy, if it is possible.

Keep in mind that profits from this project will fund more digital instruments and improvements (things BPM PMA clients ask for or say would be nice additions — updates for the app they already own which happen free). Profits fund coders who make these apps, instrument designers who design new instruments, and a bunch of other things anyone who buys one of our PMAs can benefit from.

WHAT YOU CAN DO WITH THE CODE:

You can buy a legal copy of the app. We have made it inexpensive to buy. Then you can modify this for your personal use. You can share modifications (not share your version of our product) on the forums, and other people can try them out and discuss them. You can share your samples, ideas and layouts, and benefit from what other people share. This way, you can get an instrument that you like to use, that’s personal, and you can change it as needed.

If you happen to make an instrument using our code, you can show it to us. If we like it, too, we’ll market it and give you some of the profits from the sales.

If you make an instrument that doesn’t use our code, the same deal applies, except we’d expect to give you a bigger share of revenue. Again, show it to us and if we like it, we’ll market it.

If you’re a good coder and you make an improvement to our code, depending on how significant the improvement is, we will consider using your improvement, at which point we’d credit you and give you a proportionate cut of revenue from the app you improved.

About the Base Code (Limitations)

Maybe the most important thing you will have to learn: Code is strict. You cannot have a letter xut of place in code. An extra period can cause the entire app to fail until you correct your error. Don’t complain to other coders about it not working. They know all about it. If code is correct, it will work. If you find your app is broken (because you have errors somewhere), you will often have to go back to square one (the basic app code) if you didn’t save yourself a safe-point that worked. Frequent safe-points are advised.

 

To hack your app without understanding of code, you can edit the config file. We’ll look at the things you can do at this level first.

Example of a working button in the config file (you can refer to this as you read):

 

workingbuttonThis button is played by KeyQ, and it’s name (which is not displayed on the screen, by the way) is KeyQ. It’s color is #6A287E. On the screen, it shows the label “Q” above it. When you hold this button, it will play again and again, and will play overtop of its previous play if you click it twice quickly. The sound the button plays is located in the “sounds” folder, and is called “drum-bass001” and it is an mp3 file.

LIMITATIONS of the code:

 

Keyname

Every button needs its own name (whether it is to be controlled by a key on your keyboard or not). You can name it anything you want, but it must have a name, and the name cannot be the same as any other name. If you name it with a keyname, that key will control the button. If you name it with anything that is not a keyname, no key will control the button.

The code allows you to assign a sound/button to the keys of your keyboard, but not every key on your keyboard.

Here are the keys you can assign:

useablekeys

Here are the names of the keys which you can assign:

‘Digit1’
‘Digit2’
‘Digit3’
‘Digit4’
‘Digit5’
‘Digit6’
‘Digit7’
‘Digit8’
‘Digit9’
‘Digit0’
‘Minus’
‘Equal’
‘KeyQ’
‘KeyW’
‘KeyE’
‘KeyR’
‘KeyT’
‘KeyY’
‘KeyU’
‘KeyI’
‘KeyO’
‘KeyP’
‘BracketLeft’
‘BracketRight’
‘KeyA’
‘KeyS’
‘KeyD’
‘KeyF’
‘KeyG’
‘KeyH’
‘KeyJ’
‘KeyK’
‘KeyL’
‘Semicolon’
‘Quote’
‘KeyZ’
‘KeyX’
‘KeyC’
‘KeyV’
‘KeyB’
‘KeyN’
‘KeyM’
‘Comma’
‘Period’
‘Slash’
‘Escape’
‘Enter’
‘Backspace’
‘ArrowLeft’
‘Space’
‘ShiftLeft’

(Note: there are names here that don’t work when assigned to keys, usually because when you use a browser to play the app, the browser assigns functions to some keys. Stick to the keys outlined in red above and you should be fine.)

Colors

You can assign colors to your buttons (including RGBA).

Label

You can have your buttons display a word if you want (leave blank between two single quotation marks if you don’t want a word). Note that the word will stretch the key size out, which might make formatting your buttons difficult.

Playmode (button functionality)

You can make the buttons do different things: play just once, play over and over again. Cut off when they are clicked a second time. Play over the last sound when they are clicked again.

The language used for this is:

  • ‘play-over’ does not restart on touch. sounds overlap
  • ‘hold-to-play’ plays infinetly only while holding. stops on release.
  • ‘hold-to-play-over’ plays infinetly only while holding. fades out for overlap

URL

You must assign a sound to a button, and that sound must be in the place you tell the config file to find it. If it isn’t there, the app will not work. You must enter the file location in the correct way, so it’s best to start by putting your new sound file in the same place as the file your app already can find, then changing the name in the config, then testing it, then deleting the old file (you don’t have to delete any files, though, you can leave as many as you want in the folder unused).

 

 

File Naming Conventions for Samples

The convention is soundtype-001-addendum.

For example:

skindrum-001-ascendingsound
skindrum-002-ascendingsoundshorterversion

Most important note: each sound gets its own number, even if its a version of another sound.

This makes it easy to:

  1. Find skindrum sounds
  2. Not confuse sounds because each one has its own number, regardless of the addendum
  3. Add supplementary notes about the sound without disorganizing the filing system

 

Sometimes though, you can’t stay in sequence with your names. For example, you already have 28 skindrum sounds, and now you want to make a short version of one of them. Best method:

skindrum-001-ascendingsound
skindrum-001-X001-ascendingsoundshortenedlateron

Here, X stands for “child sound.” Using X will keep these files after your parent sound, because X follows other letters and file displays are usually arranged alphabetically.

Example of what it looks like in a folder (in this case, digeridoo and drum sounds). Notice “drum1.” Wouldn’t it be nice if that file had kept with convention?

BPM sample file namig system

 

Your Purchase Will Fund More Instruments

Your purchase of a BPM PMA will fund instrument designers, instrument builders, as well as BPM itself.

We will be responding to the ideas people propose for instruments and we’ll be making upgrades to already-made instruments according to what people are asking for.

We also have a number of instruments lined up that are awaiting development.

Add yourself to our mailing list to get updates when we come out with new instruments. >Click here<

Dictionary of Musical Terms

These are the musical terms used on this website. You will probably notice that most musical language dates back as long as the Western culture — to the Greek and Latin speaking people of the northern Mediterranean — often repurposed or modified in Europe’s Medieval period, when Latin — the language of the Church and of learning — . 

Equal temperament a system of tuning in which every pair of adjacent pitches is separated by the same interval: The pitches of an equal temperament can be produced by repeating a generating interval.

Just Intonation any musical tuning in which the frequencies of notes are related by ratios of small whole numbers: The two notes in any just interval are members of the same harmonic series. Just Intonation, also called ‘pure temperament,’ can be contrasted with ‘equal temperament.’

Octave a series of eight notes occupying the interval between (and including) two notes, one having twice or half the frequency of vibration of the other [< Latin octava dies eighth day < Middle English octaveii]

Temperament a system of tuning which slightly compromises the pure intervals (adjusting the pitch) of just intonation in order to meet other requirements of the system: Most instruments in modern Western music are tuned in the equal temperament system. [< Latin particular mixture]

 

Educators, click here …

We are open to coming to agreements on bulk purchases for educational purposes. If you would like to discuss a bulk purchase for educational purposes, email us at __________ and begin your email subject line with “EDUCATOR RATE INQUIRY:”.