MBWAVE THE MUSIC EDITOR EN

From MSX MUSIC WIKI
Jump to: navigation, search

3. �THE MUSIC EDITOR

In every menu, submenu or input-event things can be cancelled with the [ESC] key. For every menu where settings are done, you can modify the current settings with the [CTRL] + cursor keys.

3.1 Patterns and positions

For composing music in MoonBlaster it is important to know that this program uses the pattern and position system. This system is widely used in other music programs on other computer systems and it has proven to have many advantages, for the composer as well as for the programmer who wants to use this music in his programs. Below is a brief explanation of this system.

3.1.1 What are patterns and positions?

The memory of the computer is divided into small pieces where music data is stored. These are called patterns. A complete song consists of a sequence of these patterns in an order chosen by the composer. These are the positions. Therefore it is also possible to play a pattern several times within one song, while it is stored in the computer’s memory only once. This system can be compared to a CD-player. Let the tracks on the CD be the patterns and the order of these tracks the positions. When you want to listen to the fourth track, then to the first and then to the fourth again, on position 1 you set track (pattern) 4, on position 2 track (pattern) 1 and on position 3 track (pattern) 4.

This pattern/position system might sound a bit complicated at first, but in practice it is very convenient and it saves a lot of time and memory space. MoonBlaster v1.4 users need to be aware that next to the positions the numbering of patterns and steps also starts with 0!

3.1.2 Editing patterns and positions

Note: With the current pattern is meant: the pattern that is shown in the top right screen at that time. The current position is the position shown in the top right screen. When you change the current position, the current pattern changes automatically to the pattern on that position. This is not the case when you change the current pattern!

The patterns are numbered from 0 to 79. The positions go from 0 to 219. This means that a song can have a maximum length of 220 positions. During the music editing it is essential to be able to move through to the patterns and positions rapidly. With the [TAB] and the cursors left/right you can move by one through the positions; [TAB] and cursors up/down can be used to move 4 steps at the time. Moving through the patterns can be done too, without changing the current position. This is done with [CTRL] and the cursor keys. Again, left/right is used to move by one, and up/down to move 4 steps at the time. [CTRL] with the space bar is used to put the current pattern on the current position. [CTRL]-[A] adds the current pattern after the last position.

A pattern can also be inserted, this is done with [TAB]-[INS]. The current pattern will then be inserted on the current position (the ‘last’ position is then also increased by 1). Removing a pattern from a position sequence is done in a similar way, the [TAB] and [DEL] keys remove the pattern. The last position can be adjusted with [GRAPH] together with the cursor keys. This is used to set the song length.

3.1.3 Pattern/Position editor

Function key F6 will bring you to the pattern/position editor. This is a verbose list of the pattern order. Editing the pattern order is very easy here: move the cursor to a certain position here and with a hit of the space bar the pattern number can be modified. Inserting and deleting patterns is done with resp. the [INS] key and the [DEL] key. In this menu it is still possible to play the song (F1) or a pattern (F2) and to set the last position. This is similar to they way it is done in the music editor, with the [GRAPH] + cursor keys.

3.1.4 �Loop Position

A song can play indefinitely when you set a loop position. This is the position where the song will loop after it has reached the last position. A loop position can be set with [CTRL]-[L]. After that the position can be altered with the cursor keys. Pressing [RETURN] will confirm the modification and [ESC] will cancel it. The music will end after the last position when ‘OFF’ is set as the loop position.

3.2 Playing music

3.2.1 Playing the song

First of all you can switch the output indicator, which will indicate when a note is being played, with the [CTRL]-[O] keys. In the command line in the lower screen is printed whether it is on or off.

The same goes for the settings scan. This is convenient if you are composing a song and you do not want to start playing from the start of the song. It is not impossible that for example an instrument change already took place earlier in the song before the pattern where you start playing. With the settings scan all changes and settings that are done in the song before the current pattern are checked and set. This can be switched on and off with the [CTRL]-[S] keys. When the settings scan is switched off, the song is started with the settings that are normally used at the beginning of the song. When it is switched on, MoonBlaster will scan the complete song after you press F1 or F2 to find setting changes. This is shown with the pattern/position numbers in the top right screen.

The [F1] key starts playing of the song. The song will start at the current position and end at the last position. The [F2] key will play the current pattern only, this is convenient during the composing of the song.

3.2.2 �Stopping the song

The song can be stopped using the following keys: the space bar, the [ESC] and [STOP] key.The space bar and [ESC] have the same function, the music is stopped and the current position will be set to the current position before playing started.The [STOP] key is practical for debugging. When you hear a note that is out of tune, press the [STOP] key and the song will stop at the position that was being played.

3.3 Input and clearing of notes and effects

3.3.1 Input of music

The music notation that is used in MoonBlaster is according to the American way, so an A in octave 3 will be ‘A 3’, an A sharp in octave 3 ‘A#3’. MoonBlaster supports octaves 1 till 8. ‘C5’ is the ‘central C’. A pattern is divided in 16 steps. The steps next to each other are played at the same time. Only one event can be put on a step per channel (for example a note).

More channels are available than shown on screen. With [SHIFT] + cursor keys the available channels can be scrolled onto the screen.

A note can be input in two different ways, MoonBlaster has two input systems. You can alternate these systems with the [CAPS] key. The [SHIFT] is a logical [SHIFT] here: In the first system a temporal switch to the second is made with [SHIFT] and vice versa.

With the first input system (CAPS off) notes have to be entered with several keys, these are the letters [A] till [G], for the right note (plus the [+] or [#] to increase a half note if desired) and the numbers [1] till [8], for the right octave. [ESC] cancels the input. When a note is entered, the [RETURN] key can be used to repeat the last input without having to re-enter it completely. �The second input system (CAPS on) turns the MSX keyboard into a music keyboard with two rows. Every row is an octave. These octaves can be set with [GRAPH] + cursors. The following keys are used in this system:

octave. These octaves can be set with [GRAPH] + cursors. The following keys are used in this system:

2​ 3​ 5​ 6​ 7 Q​W​E​R​T​Y​U​(low octave)

 S​   D​   G​   H​   J

Z​X​C​V​B​N​M​(high octave)

(With German keyboards the program adapts this to the swapped [Z] and [Y])

This means that you should press [Q] or [Z] for inputting a C. For a G# you press [6] or [H]. If you want to enter an event other than a note, CAPS must be switched off, or you can press [SHIFT].

During the input of notes it might be convenient to listen to what you just entered (note audition). This can be selected with [CTRL]-[K]. When it is switched on, every note will be played after it is entered. This simplifies noticing notes that are out of tune. You can of course always use [F1] and [F2] to do this.

A note can be (and sometimes must be) switched off. This is done with the [O] key. An ‘OFF’ event will be displayed in the pattern. If you want to play an A#5 and it should only last one step, move the cursor to channel 5 (the fifth column) and type an A#5, directly followed by an OFF event.

3.3.2 Special options

The special functions effect the tone in the desired way. With a number you have to enter several digits. Enter [RETURN] to end the input if you want to enter fewer digits than the maximum length. Detune The detune is an option that slightly increases or decreases the tone height of a channel (maximum of 3 frequency steps above or below normal). This can be used to give the song a ‘full’ effect. The detune is entered with the [T], followed by a [+] or [-] and a number between 0 and 3. In the pattern the detune command is displayed by the T, for example ‘T+1’. The detune option in MoonBlaster always calculates from zero, so a detune is not added by the last detune (T+1, followed by T+3 will not be T+4). The detune will note take effect until a new note is played. The start detune settings are done with [F10].

​Pitch bend A pitch bend event bends a tone frequency smoothly up (+) or down (-). This is entered with [P] and a [+] or [-]. Next, you type a number between 0 and 9. This is the speed of the pitch bend, 1 is slow, 9 is fastest. Speed 0 will halt the pitch bend. Pitch bending also stops with a new note, OFF, or modulation event. A pitch bend is displayed with a P, for example ‘P+3’. The overall speed of the pitch bend is also affected by the base frequency. (see chapter)

​Modulation Modulation is entered with the [M] key followed by a 1, 2 or 3. Modulation modulates the frequency of a tone. This will stop with a new note, OFF or pitch bend event. Modulation is displayed with the M, for example ‘M 1’. The modulation wave to use is selected with the number after the M. These modulation waves can be edited with [CTRL] + [Y]. A menu appears where you can alter the current values with [CTRL] + cursors left/right. It is possible to make your own pitch bend here when you do not ‘modulate’ up and down, but only one way. It is highly recommended to use the hardware vibrato instead of the modulation (it is the same). The hardware vibrato is not affected by the base frequency and uses no processor time at all (only to start it that is).

​Linking The linking option plays a new note without triggering it. A smooth change is made from the last note to a new note. A link is entered with the [L] key. Next, you type a offset to which note the link should be done, this is from -9 to +9. This is entered with the [+] or [-] and the numeric keys. The offset is added to the current note and is given in half tones (this equals the difference in tone height on two keys from a piano, the black keys must also be counted). Examples: �From:​To:​Link command: C 5 ​C#5 ​L+1 E 3 ​D 3 ​L�2 A#6 ​F 7 ​L+7

After a link a new link can be entered, this will be added to the last link.

​Volume change The volume of every channel can be set with the [V]. After pressing the [V] you can enter a value from 0 (weak) till 31 (loud). In the pattern a volume change is displayed with a V, for example ‘V30’.

​Waves A maximum of 48 different waves can be selected with a start volume. These instruments are used to change the current instrument during the song. This is done with the [W] key. Next, you enter a value between 1 and 48. The values after the W correspond with the values in the list of selected waves. See chapter 5 for more information on Waves. In the pattern a wave change is displayed with a W, for example ‘W 7’. Notice that with the instrument, the volume changes too!

​Stereo settings After the S option, entered with the [S] key, a value from -7 to + 7 can be entered. -7 plays the channel completely left, +7 plays completely on the right. An in between value sounds better of course. Also selectable with [F-8].

​ LFO Settings The LFO settings can be used entering the [X] key and a value from 1 to 9. With this option you can alter the LFO speed, Vibrato dept and Tremolo dept of a wave currently playing on a channel. It works in the same way when if you were using a the modulation. The values of these LFO settings can be set as you like by using the LFO editor (CTRL-V).

​ Reverb on The opl4 has a build in pseudo Reverb and this can be triggered by entering the [R] key. The ‘Reverb’ will start after an OFF command.

​ Reverb off The pseudo Reverb can be set off by entering the [Q] key.

​ LFO The LFO from any wave can be stopped with the LFO command and started again by using it again. You enter this by pressing the [Y] key.

3.3.3 Command options

The CMD channel, the last column of the pattern, controls some special functions described below.

​Tempo change With the [T] key the tempo of the song can be changes. Enter a value between 1 (slow) till 23 (fast) after the T. A tempo change is displayed in the pattern with TMP, for example ‘TMP17’. ​End of Pattern This option can end a pattern before step 16. It is entered with the [E] key and displayed as an ‘ENDOP’. Usually a pattern has 16 steps, but with an ENDOP on step 8 the pattern will end after playing step 8. This function is very practical for a 3/4 bar.

Transpose It happens regularly that within a song the same part is played several times, but with a different tone height. This is done easily with the transpose option. A complete song is increased or decreased several half notes. The transpose is entered with the [R] key. Next, enter a value from -24 (2 octaves down) till +24 (two octaves up). The values are always used absolute, not relative to each other. A transpose is displayed with ‘TR’, for example ‘TR+12’. Starts on the next step! With Waves it is not always desired that the channels are transposed. If, for example, you use a drum wave the transpose may result in completely different drum sounds! Therefore, all percussion sounds from the ROM will not transpose and it is user selectable for Own Waves.

Status bytes Status bytes do not effect the song, but can be practical for programmers. When a statusbyte is set, the programmer who uses the MB music can read these bytes to wait for a specific moment within the song. This is entered with the [S] key followed by a value from 1 till 3. This is displayed as ‘STAT’, for example ‘STAT1’. How to read these status bytes is described in the several replayers.

3.4 Edit options

​Deleting steps, channels, patterns and song When you want to clear a step because it contains something that should not be there, you can use the [DEL] key. This will clear the step with the cursor on it. A channel can be cleared with the [SHIFT]+[DEL] keys. The channel with the cursor on it will be cleared. A pattern is cleared with the [CTRL]+[DEL] keys. The current pattern will be cleared. With the [F7] key the whole song is cleared. The program will ask a confirmation first before the song is cleared. The current settings can be kept if you want to. If you don’t want this they will be set to the settings after MoonBlaster was started.

​Copying patterns and channels A number of patterns can be copied to another place in the song with the [CTRL-[P] keys. Some questions will appear: which patterns should be copied, the destination pattern and how many patterns should be copied. So, if you want to copy patterns 4, 5 and 6 to 10,11 and 12 first use [CTRL]-[P] then answer: 4, 10 and 3 to the questions.

It is also possible to copy channels within the same pattern. You can enter how many steps the copied channels should be moved (echo-steps). This is done with the [CTRL]-[C] keys. Note that no block must be defined!

​Exchanging two channels With [CTRL]-[X] two channels can be exchanged. This is very ease: the program will ask the first channel, the second channel and it will exchange these channels.

​Transposing channels Channels can be transposed per half note or per octave. To transpose with a half note up use the [.] or [+] key and to transpose a half note down use the [,] or [-] key. To transpose per octave you can use [<] or [CTRL]-[+] up and [CTRL]-[-] down. The channel with the cursor on it will be transposed.

​Switching channels off The channels can be switched off to be able to hear one specific channel. Move the cursor to the channel you want to switch off and press [CTRL-[W]. Above the channel the message ‘OFF’ will appear. Do the same to enable them again. Note that the CTRL-W settings are not saved, they are just for editing the song.

3.5 Blocks

​Selecting and unselecting a block You can select part of the song as a block and do several edit functions on the complete block contents. Set the start of the block (top left) with [CTRL]-[B], the end (down right) with [CTRL]-[E]. The block will be displayed in different colors than the rest of the song. You can unselect the block with [CTRL]-[D]. This does not clear the contents of the block, it just unselects the block. Note for MoonBlaster v1.4 users: Because of the extra flexibility of block markings the start of a block is not immediately marked when it is set. You will see the complete block marked when the end is set.

​Clearing a block The contents of a block will be cleared by placing the cursor within the block and pressing the [DEL] key. You will be asked to confirm the deletion, so if you press [DEL] by accident no harm is done.

​Transposing Just like the channels blocks can be transposed per half note or per octave. Move the cursor within the block and use [.] or [+] to increase a half note and [,] or [-] to decrease a half note. Transposing the block by an octave is done with [>] or [CTRL]-[+] and [<] or [CTRL[-].

​Volume Transposing It is also possible to transpose the volumes up & down in a block by use of the [ key for up and the ] key for down.

​Copying a block The selected block will be copied with [CTRL]-[C] to the current place of the cursor. When no block is selected, a channel will be copied instead of a block.

​ ​Exchanging a block This option will only work when the block width is only one channel. The length is not important. Place the cursor on the destination channel and press [CTRL]-[X]. This will exchange the block channel with the cursor channel and vice versa. Note that the start settings (instruments, detune, etc.) are not exchanged. If desired, you can do this manually.

3.6 Other options

​Entering a songname The songname, in the top screen, can be modified with the [CTRL]-[N] keys. The cursor will appear in the top screen and the name can be entered. With [RETURN] the new name will be used, with [ESC] the operation will be cancelled and the old name is still used.

​RAMdisk The MoonBlaster ramdisk can contain exactly one song and can only be used within the program. The current song will be saved with [CTRL]-[R] or [INS]. The question will appear if you want to read from or write to the RAMdisk. It is also possible to swap the current song with the song on the RAMdisk. This enables you to edit two songs at the same time. The [S] will save the song, the [L] will load the song and the [W] swaps the two songs. With the [ESC] key you can cancel the operation. Note that the RAMdisk only works with a memory mapper of 256K! ​Start settings of Stereo and Detune The start settings are the settings that have effect at the start of the song. The stereo and detune settings can be set per channel. Use the [F9] and [F8] keys to set the stereo settings. The detune menu is used with the [F10] function key. You can set the desired detune per channel with [CTRL] and cursors left/right here.


​Songinfo With [CTRL]�[I] an info screen will appear. This screen shows a lot of information about the current song like the start settings, the wavekit, etc. When you press the space bar a settings scan will take place and the settings that are valid on that place in the song will be shown.


Set-up menu In the set-up menu several settings can be changed as the user prefers them. They can be saved on disk. The settings will not be explained here, but they will be known after you read this complete manual. They will be saved on disk in the file MBWAVE.CFG. ​Tempo With [CTRL]-[T] the start tempo can be set. The tempo is between 1 (slow) and 22 (fast). In the table below the ‘number of crotchets per minute’ is assumed that you use a pattern per bar. A crotchet is then four steps. The following values only show the values for a base freqency of 8 and 48 ,resp. 50 and 60 Hz. Other values can be calculated with a formula described in chapter 3.7 Base frequency.

Tempo:​Crotchets/min​Steps/min​Crotchets/min​Steps/min ​50 Hz:​50 Hz:​60 Hz:​60 Hz:

1​31​125​38​150 2​33​130​39​157 3​34​136​41​164 4​36​143​43​171 5​38​150​45​180 6​39​158​47​189 7​42​167​50​200 8​44​176​53​211 9​47​188​56​225 10​50​200​60​240 11​54​214​64​257 12​58​231​69​277 13​63​250​75​300 14​68​273​82​327 15​75​300​90​360 16​83​333​100​400 17​94​375​113​450 18​107​429​129​514 19​125​500​150​600 20​150​600​180​720 21​188​750​225​900 22​250​1000​300​1200


3.7 Base frequency

In the most trackers on the MSX computer music timing was done by the VDP, this has a few disadvantages:

- The music timing is always in some way releated to the interrupt frequency of the VDP ( 50 or 60 Hz). The only way the created different speeds is to skip an interrupt or more. (This is done by the tempo command of Moonblaster). This does not give a satisfying tempo setting.

- The music can not be played at the same speed on 50 or 60 Hz. This was solved by frequency speed equalizer, but this caused timing errors.

The solution for these problems is: Using the timer of the OPL4. This timer has an accuracy of 80.8 micro second and is in Moonlbaster selectable from 1 until 133 , resp. 48Hz until 100Hz. In Moonblaster this value is called: Base frequency.

To calcate the interrupt frequency use the following equatation.

   s = ( 256 - Base_freq.) * 80.8^10-6

Interrupt frequency = 1/s

Example: ​Base frequency = 80 ​s = ( 256 - 80 ) * 80.8^10-6 ​Interrupt frequency = 1/0.0142208 ​Interrupt frequency = 70.32Hz

The Tempo determines the devision of the interrupt frequency.

Example: Tempo = 20

​   This means that every 5th interrupt a step is played:
​   (22 = every 3th int,21 every 4th int,etc)

​ So if you have a interrupt frequency of 70.32hz and a tempo of 20

​   the step/min will be:
​   70.32

​ ------- * 60 = 848 step/min

  ​      5​

You can select bewteen 2926 different tempos.

The maximum speed is 2012 Steps/min (tempo 22 , base freq. 133) The minimum speed is 121 Steps/min (tempo 1 , base freq. 1)

3.7.1 Base frequnecy setting

The base frequency van be set in two different ways. It can be done by pressing CTRL-F or during song playing by means of the cursor keys. Cursor Up - Increase base frequency Cursor Down - Decrease base frequency Cursor Left - restore base frequency. Space Bar - stop song and set base frequency. [ESC] and [STOP] - Stop song and restore base frequency.

You can select the base frequency during playing and press the space bar when you found the satisfying base frequency. This tempo editing during replaying is ideal for synchronising for example a drum loop with your song.