Producing MIDI music for mobile phones / cellphones
by Piotr Pacyna
I've produced game soundtracks for mobile phones for over
9 years now. When I was starting out I thought that all I had to do was
simply to make a MIDI file. A piece of cake! But I was so wrong...
feedback that I was receiving from the clients showed me how much. They
were often saying that the music was sounding good on the computer, whilst
on the mobile device it sounded terrible or even wasn't playing at all.
And I'm not sure what is worst. So I became forced to experiment –
I was laboriously trying every single instrument, controller and effect
combined with trial and error problem solving. Why does a certain effect
work, while the other doesn't, why some devices refuse to play some instrument,
while on the other ones it works fine etc. Years of work. Of course I
didn't learn everything from my own research only. Looking back I am so
happy that I was given the opportunity to meet people who taught me many
things and shared their experience with me (thanks to all of them!).
After several years, through a focused effort, I managed to develop
a system that apparently works, as requests for adjustments are rare now.
I thought it would be worthwhile sharing some tips and knowledge that
I have picked up along the way.
Just a little word of caution. It is impossible to prepare the MIDI
file that plays perfectly on all phones, albeit some time ago I thought
it was possible. Now I know it's an utopia. There are plenty of
models and differences relating not only to the GM patches, but also to
the speaker. It is possible to avoid most common mistakes and make the
MIDI sound acceptable on most phones, however.
And one last thing. The text requires the basic knowledge of the MIDI
format and sequencers. It's by no means a guide for beginners who
want to just start their mobile career, it's rather for those who
are already familiar with the topic and have some experience.
It would seem that these days, when majority of mobile phones are capable
of playing a truly large number of MIDI voices at the same time you're
allowed to go a little bit crazy and don't have to care for polyphony
at all. Well, nothing more wrong.
Bear in mind that you are working with typically small speakers that
have limited bandwidth, and if the arrangement is too busy you‘ll
hear nothing but one big noise. At the beginning of my career… I'm
not a careerist person, so I'm hesitant to call it a career, but, say,
in my past I had a tendency to make rather complex arrangements - piano,
organs and guitars, trumpet and synth lines, not to mention sweeping pads
in the background. I was proud and kept playing such a MIDI track on the
computer, enjoying a massive wall of sound and imagining an overwhelming
enthusiasm of the game players! But the very next morning the producers
were saying that my track is so great that after 10 seconds everyone wants
to turn off the sound immediately. Oh, how I hated them then! But hey,
they were damn right.
I had to face the painful truth that on the cell phones the tracks with
a simple, three-element arrangements work best. These elements are: 1)
rhythm, 2) background, 3) melody, where each instrument occupies its own
frequency range. You can of course have many instruments in the background,
but do not use the same octaves as the bass and melody are using. And
do not let all of them play at the same time.
So - what polyphony value is safe, how many voices can a MIDI track have
to sound decent on the cell phones? Well, there are no strict rules. In
any case, I try to limit the realtime polyphony to 16 voices. What is
realtime polyphony and how to check it? This needs a brief explanation.
There are different tools for these purposes - such as the Nokia Suite,
but the problem is that most of them do not show the actual polyphony,
they simply show maximum voice usage per channel, in other words –
they count how many notes are triggered at exact same time. So - if we
have a part with very fast and short notes of, for example, String Ensemble
1 (Program Change 49) we'll get the information, that there has been used
voice. And that's not right. All the string notes release and eat up much,
much more voices.
That's why we need a secret superweapon. It is Beatnik Mobile
(Click to see full size image)
1 - Here we see maximum voice usage per channel determined via file
analysis (this is the “fake” polyphony described above).
2 - And here we have a realtime display of voices used by the renderer
per channel during audition (and this is the realtime polyphony, yikes!)
3 - This is another extremely handy feature – it shows the maximum
value of the realtime voice usage per channel. And then, at the bottom,
you see a cumulative polyphony value.
4 - In this row you can define the maximum voice usage.
5 - And here we have the values used to create an SP-Midi information.
Do I have to say that I love Beatnik?
Unfortunately, the program is no longer evaluated and the developer's
website does not exist anymore, so you have to ask Google nicely for help
in getting it.
2. Choice of instruments.
As we all know, the General MIDI bank has 128 instruments + a set of
percussion samples, but how many of them can we actually use? Through
years of experiments and mistakes I have found that many phones, especially
the older ones, have a very limited set of sounds and some instruments
are being replaced by different, similar ones. I've also discovered there
is a group of patches, that sound too quiet, too loud, or just poor on
most devices. But in order:
When it comes to drums and the channel 10 – above all, remember
to use only Standard Kit.
kits such as Power Kit or Electronic Kit sometimes do not play at all.
As for the sounds I suggest to stick with the basic ones, such as: (C1)
Bass Drum, (C#1) Side Stick, (D1) Acoustic Snare, (D#) Hand Clap, (E1)
Electric Snare, (F#1) Closed Hi Hat, (A#) Open Hi- Hat, (C#2) Crash Cymbal
1. Toms is something that I use rarely. Just every now and then. Not that
they sound bad or something, it's just because I don't want to waste the
precious polyphony for something that appears once or twice in the whole
song. I also suggest to be careful with Tambourine (F # 2) - on certain
LG models it tends to sound too loud and aggressive, no matter how low
the velocity is. The same goes to hand percussion like congas and bongos.
On few Samsung hand phones there is a strange, long and bassy reverb tail
attached to them. Very unpleasant. And it's better not to touch other
percussion instruments. Yeah, they may sound fine on the newer devices,
but the older ones won't play them or, in the worst scenario, we get a
piercing screech instead.
And what about the bass? We have quite a nice selection of bass patches
in General Midi bank, but the one that works best on mobile phones is
Synth Bass 2 (Program Change 40) – unlike the rest bass patches
it's perfectly audible on all devices which I had the opportunity to check.
However, it is relatively rough, dominant sound. Therefore, if we need
a delicate, more subtle bass, we can experiment with Acoustic Bass (PCH
As for the piano, the most safe patch is Acoustic Grand Piano (PCH 1).
Especially on old phones (see section 10). With other patches there is
always a risk, For example, the Rhodes Piano sounds way too faint on some
Organ sounds. Well, sometimes they play okay, while some other time they
stand out from the tune because of their volume and their distinct timbre.
(I would point out here the old Samsung phones and especially the SMAF
format mentioned later in the article).
Acoustic Guitar. Again – the most safe is Acoustic Guitar Steel
Rhythm guitar - Electric Guitar Clean (PCH 28). Distortion Guitar (PCH
31) is better for riff playing than Overdrive (PCH 30). Sometimes I use
2 layers of both patches and blend them to taste - when it works well,
it's a nice complex sound that adds depth and thickness.
Strings and pads. I have not noticed any major problems here. One thing
that you should keep in mind is that you can't use any EQ or reverb to
move the instruments intro the background, all you can do is to play with
the volume. But not quite. Older Sony Ericssons (such as K300 or K700)
had an interesting bug - some instruments, for example orchestral strings,
are blurred in strange way, as if they were filtered. Of course, it's
impossible to make an orchestral tune to sound good with these strings
and you had to look for alternative patches, but with some creativity,
you can make a good use of that bug. The bugged instruments sound
like they were EQ'ed fairly brutally with lowpass filter and drowned in
long Hall type reverb. So you can combine a dry melody with them to create
an illusion of depth. It sounds pretty neat. See section 6 for a suitable
Unfortunately, the bug has been removed from newer models.
There is one general rule here. Avoid the sounds that are too low and
too high pitched. The threshold of security for bass is the C1 note -
lower tones may be (but don't have to) inaudible. The upper limit is around
C6 – the high notes have the tendency to sound really fatiguing
on cell phones, even at low volume and velocity settings. So it's better
just to avoid them.
One important thing for SONAR users. It starts counting with MIDI Note
0 as C0. You can change the "Base Octave For Pitches" on the
Options -> Global. I have mine at -2 to match Cubase, where Middle
C is C3 (and what is the most common value, by the way).
4. Time-shifting the notes
I once made an embarrassing discovery. On some phones (e.g. Samsung
E700) one can hear a loud crack at the beginning of the MIDI file. Short,
yet very annoying. What's that? Well, on top of every MDI channel there
are controllers (see section 6) with the Control Change # 7 (volume) being
the most important in this case. The problem is that the controllers demand
a bit of time to take effect, so you need to time-shift a little all the
notes from the top of the track. Shifting by a 64th note will be fine.
This way we give the controllers the necessary time to kick on and the
(Recording from Samsung E700. You will be able to hear the click at the
beginning quite brilliantly.)
5. Velocity and Volume.
Another extremely important issue.
A general advice – it's much better to set the channel volume using
the controller (CC # 7) instead of velocity. First off - some phones (e.g.
the old Sagem models) simply ignore the velocity value. Second off –
when the velocity is low, some other devices tend to play so quiet, that
you can barely hear anything. And third off, and that's even more important
than anything mentioned above, you often need to change the volume of
the whole MIDI song and it's much easier and faster to do with the controller.
I always set the velocity to maximum value (127, that is) on practically
everything. The exceptions are some elements of a drum kit - cymbals,
crash, which I set to 50-75, otherwise they are way too loud and cover
all the other instruments (like on Siemens phones). Sometimes I play with
the velocity to achieve a sort of an echo effect, although more often
I use the controller # 7 for this purpose.
There was a time, when the most frequently asked customer request were:
"please make the MIDI file lower in volume by 50%" and "please
make it louder by 50%". When it became a plague I came to the conclusion
that I had to do something with it. It turned out that some cell phones
were simply louder than the "standard" was, while the other
for a change, a lot quieter. So at some point I came up with the idea
of providing each MIDI file in 3 volume versions: standard (100%), quieter
by half (50%) and louder about half (150%).
Usually I set the volume controller to 85 for the melody and drums, for
bass to 70, and to 50-70 for background instruments. In version 50% it
is respectively: 42, 35, 25-35, and in the 150% version - 127, 105, 75-105.
Of course, these values may slightly change when testing the file on the
real phone (see section 10).
Anyway, ever since I started to prepare the 3 volume version, all the
volume requests have gone out. As if by magic!
About the author: Piotr "JazzCat" Pacyna
is a Poland based producer, who specializes in video game sound effects
and music. He has scored a number of Java games for mobile phones and, most
recently, iPhone/iPad platforms. You can license some of his tracks here.
Would you like to contribute an article to Shockwave-Sound.com?
We will pay you $150.00, and we will include your bio, a link to your web site,
and if you wish, a quick plug of your product or service. Shockwave-Sound.com
is used by almost 4,000 unique visitors every day. Contact
us if you have an article idea/pitch for us that you feel is useful,
relevant and well written. First, though, you may want to read
blog post about article requirements.
These articles and all other text on this web site is under Copyright to Shockwave-Sound.com.
This text may not be copied, re-printed, re-published, in print or electronically,
in whole or in part, without written permission from Shockwave-Sound.com.