Purple Hearts hpmusic
Main Menu
Good Links
Who's Online
We have 71 guests online
Using sequencer-software to convert songs PDF Print
Thursday, 04 November 2004
With this article we learn something about the method, how to get good MIDI-files, which are suited for YAMAHA keyboards.

1. Introduction

The internet is an excellent source for all categories of MIDI-files. It is easy to get a MIDI-file for US-songs, if we know the title. We use the excellent MIDI-file search engine http:/www.musicrobot.com/ and search "i'm beginning to see the light" for example. We will get some links where we can download midis of this Duke Ellington's song. We can listen to the song at our PC or the YAMAHA-keyboard. Using sequencer software like Cakewalk, we are able to visit or print the notes of the tracks, to find out the chords and to learn to play the song on the keyboard by ourselves.

The MIDI-files we get are of different formats: most of these are GM (General MIDI), SMF0 (MIDI format 0) or SMF1 (MIDI format 1) and sometimes you get the format GS of Roland (Sound Canvas) or of other manufacturers. In most cases we can play the midis on your PC with good sound, seldom we have got a "quiet" MIDI-file trying it to play with the keyboard. The aim of this article is to demonstrate, what we have to do if we want to convert the MIDI-file into the YAMAHA format XG and how we can change the voices to get Panel or XG voices in order to receive best results. In this article I explain my method by using the sequencer-software Cakewalk. I am sure that you get same results with XG-Works or Cubase.

Remarks: Looking into the MIDI-files we have downloaded, we often find some copyright informations. Sometimes it is explicitely forbidden to alter the MIDI-file without permission of the creator. Indead we will manipulate the MIDI-file, but we should use the new one only for private purposes.

2. A little bit theory

If we record a song playing at the keyboard, we will get a SMF0-file of format XG. XG is an YAMAHA extension of the elder format GM. GM can be played with all PC soundcards, all XG voices we only get with special ones.

Some significant benefits of XG:

GM has the limit of 128 different voices, XG has much more voices. The Panel keyboard-voices are non-standard XG-voices.

With the YAMAHA XG SysEx-events F0 43 .. .. .. F7 and some new controller events it is possible to modify the character and the effects of the voices with influence to the DSPs (digital signal processors) of the modern YAMAHA synthesizers. GM-files are poor in using SysEx - we will find no or the only one SysEx "Turn GM System ON": F0 7E 7F 09 01 F7.

GS is the Roland extension of GM. Roland uses its own SysEx-events. In each SysEx the second byte is the manufactor id , Roland = 41, YAMAHA = 43. Sometimes we will find the SysEx "Turn TG300B ON": F0 41 10 42 12 40 00 7f 00 41 F7. This events starts an GS emulation on the keyboard in order to get some sound of the MIDI-file. The PSR-8000 does not understand the other GS-SysEx F0 41 .. .. .. F7, these will be skipped.

All XG-midis should start with the two SysEx "Turn GM System ON": F0 7E 7F 09 01 F7 and the "Reset XG"-SysEx F0 43 10 4C 00 00 7E 00 F7.

What about SMF0 and SMF1?

SMF0 (MIDI0) and SMF1 (MIDI1) are different, general ( i.e. not manufacturer-specific) structures for MIDI-files. In SMF0 we have only one of the so-called MIDI-tracks: all events for all channels are stored in this track. SMF1 uses more than one track. Mostly the events of each channel are stored in separate tracks. The first track contains global events - the name of the song or static SysEx. Later tracks may contain lyrics or chords only. The YAMAHA keyboards can play both SMF0 and SMF1 but the native format of YAMAHA is SMF0. Cakewalk stores a MIDI-file in the format of the loaded file, but we can choose SMF0 or SMF1 without any influence to the sound.

If you like to get more knowledge of MIDI, read some papers about GM first, after this XG-papers. The standard YAMAHA "XG Specifications" and the "XG Format Music Data Production Recommendations" are the best ones, but a little bit hard to understand. All articles can be found in the web, links for some others in my website.

3. The method of converting for YAMAHA-keyboards - step by step.

The process is demonstrated for the PSR-8000; with other models we have do perform similar actions.

The first step is to load the MIDI-file with Cakewalk. We have to use the instrument definition file of our PSR-8000 keyboard (yamaha_kbds.ins, to be downloaded from my website). This file can be used for PSR-9000 or Tyros too. The method of installing an .ins-file is described in the Cakewalk manual. If you do not have the manual, send me a mail.

Next we have to inspect the track view and the SysEx. In GM-midis the instrument banks of the tracks are not specified and there is no or the only one SysEx "Turn GM System On". Delete the SysEx and choose the bank "PSR8000 bank 112" for each channel 1-9 and 11-16 and the bank 16256 for channel 10. Look at the voice-names before and after.

What is the matter for these actions? Bank 112 is the basic voice-bank of the Panel voices and the GM voices should have similar voice-names in bank 112. GM channel 10 is the only channel for drum-kits; bank 16256 contains all the XG-drum-kits. The basic voice-bank for XG is the bank 0 with similar voices. A GM-song uses only the voices of XG-bank 0. Select bank 112 only, if you get a good voice-name; otherwise use XG-bank 0.

The MIDI-file is not GM? Sometimes there are used the bank 0 (XG-bank 0) for all channels - channel 10 too. Sometimes we find banks with numbers 7??? without any bank-names. We have to look at the SysEx. If all SysEx are GS (F0 41 .. .. .. F7), we have got a Roland MIDI-file. We have to delete all SysEx and connect all channels to the bank 112 (or XG-bank 0), channel 10 to the drum-bank 16256. Channel 10 is reserved for drums in all MIDI-files. Only XG allows to assign the drum-bank to other channels. If there is a melody voice-name at channel 10, we will get a correct drum-kit-name if we use the drum-bank 16256.

Next we select all tracks in Cakewalk. Open the event-list view and inspect the controller-events, most at the beginning of the song. Controller- and PRN/NPRN-events without any names can be deleted, because there is no effect on the keyboard. Search for patch-changes at later measures: these have to select the PSR-8000-banks too.

With Cakewalk File/Info we insert a good song-name. It may be better to choose song-names with less than 13 characters; the keyboard-display shortens the name to 12 characters otherwise.

We start the fine-tuning with the keyboard and Cakewalk now.

We save the MIDI-file in format MIDI0 (SMF0) on a floppy disk and put the disk into the keyboard's slot. Using "Song/M.Pad Recording" at the PSR-8000 we now convert the song to an PSR-8000 user-file. What happens? The recording-function of the keyboard converts the MIDI-file to XG, inserts good XG-SysEx and some controller events. We remove the floppy and go back to Cakewalk. We should delete the *.mng-files with Windows's Explorer and rename the mid-file to an better name if the keyboard has changed the file-name. Attention: Renaming the songname with Cakewalk's File/Info is not possible with existing mng's. The keyboard has inserted one measure at the beginning of the song. If there are no events in measure 2, we should shift the song back but we should not get any note-events in measure 1. For this, mark all tracks and look at the event-list. PSR-8000 should not convert a song twice: the MIDI-file-structure will become inconsistent sometimes.

After this we have to inspect the song with our ears. Mostly the volume of some parts is not correct. We have three methods to change.

  1. We select the track and alter the percentage of the velocity from start to end.
  2. We change the value of the controller event 11 "expression". Because the keyboard has inserted an expression-event with value 127, we only can change to a less value with less volume. Attention: With lower values of expression we will get a soft sound.
  3. We insert the controller event 7 "Main Volume" with a good value at the beginning of the track. We have to use an separate time-point for this event.

We should experience with the song, until we have got a good result. "Song Select" on the PSR-8000 now should display the correct song-name with the sign "x" (XG). Remember: The sound will be excellent only, if we play on XG-synthesizers with the voices of bank 112. If we try to play with usual PC-soundcards or on keyboards of other manufacturers, we don't get correct sounds mostly - read my article "XG Sounds at PC".