Sound Monitor v1.2›››› › Sound Monitor› -------------› This text file by:› Shawn Poulson › Shawn.Poulson%pics@twwells.com› › The writer of this article is not the author of the program nor› affiliated with the author of the program in any way. However since› this program is PD, no one cares anyhow.› › - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -› › This is an excellent music composer from Germany. I got hold of› this package from Frankenstein of the HTT. I asked him what kinds of› programs can be used to produce music like that on all of his demos› and other games and etc. This was my answer. I thank him very much.› › However, since it's from Germany there are two problems: › everything's in German, and it's a 50Hz PAL-happy program. This means› the screen will bob up and down when you play music on a 60Hz NTSC› 8-bit. Fortunately it won't crash.› › These are the files you should have:› SMON.COM -main program› *.SNG -assorted songs (compressed)› REPLAY.ASM -Replayer for songs this is a tokenized format from› some German assembler› REPLAY.SRC -The source listing from the above file› REPLAY.M65 -I was able to convert the above source to Mac/65› PLAY.M65 -This is a program I wrote to test the replayer for› Mac/65, it is a player for uncompressed .SNGs› (More on compressed and uncompressed .SNGs later)› SMON.TXT -This file (der)› › -----------------------------------› Main Program:› › SpartaDos Users Notice: If you are running this in SpartaDos, I› suggest either using another DOS or running the entire program from› Hard Disk or Ramdisk. Because of SpartaDos's inner workings there is› less processor time for DLIs and VBIs during floppy disk access. › Therefore any floppy drive access _will_ abort.› › Boot up: When loading the program from whatever DOS you like,› you will see a pretty starry title screen. You don't have to wait for› the titles to finish, just press Option to skip the rest of the› titles, but you have to wait for the loading to finish. Now once you› have done that, you may notice that all inverse characters blink. In› time this gets very annoying, I found the trap for that. When you› press Option, immediately press Select, the blinking will be no more.› NOTE: if you have an MIO, the Select key may trigger the› configuration menu if your timing is off, if this happens, press Reset››››››› -page1-››› Sound Monitor v1.2›››› and exit the program right away, the configuration menu loads from MIO› Roms on top of the sound monitor program.› › OPTION - skip credits› SELECT - use with Option to turn off blinking inverse› characters.› › Once you are in the program, you get a very pretty and colorful› display. In the middle of the screen there are two rows of text, each› with a highlight. Press < > to move the top highlight, these are the› headers, below it are the functions. The function highlight is moved› by + * keys.› › <(clear), >(insert) - move header highlight left/right› +(plus), *(asterisk) - move function highlight left/right› › › Here is the command overview and what they mean:› › Editieren: Editing› -Huellkurve -Spectrum analyser, you enter the sound editor.› -Pattern -Pattern editor, this is the part were you type in› the song› -Daten-tabelle! -Move to a desired position. A position is equal› to one pattern screen (32 lines)› › Spielen: Playing› -Pattern -Only play the song in the pattern buffer› -Alles -Play whole song starting at current position› -Alles (Position 0)› -Play from beginning of the song.› › Disk: Disk use› -Laden -Load .SNG file› -Speichern -Save .SNG in memory› -Inhaltsverzeichnis› -Believe it or not, this means Directory...› › Option: Special options› -Speicher Aufraeumen› -If you know what this is, mail me› -Music Packen -toggles .SNG file compression when saving› aus - off› ein - on› › Quit: Quitting› -zum DOS -Exit to Dos› -Kaltstart -Coldstart› -Music loeschen -Clear .SNG in memory› › › ===================================› -----------------------------------››››››› -page2-››› Sound Monitor v1.2›››› /Editing Subsystem/› › Huellkurve - Sound editor› -------------------------› › This is where you get to create your own sounds, using varying› volume, pitch, and set distortion values. Control goes to the top of› the screen.› › Commands:› +(plus), *(asterisk) - move highlighter left/right› -(minus), =(equals) - move bar up/down› <(clear), >(insert) - move left/right thru sound buffer› › Those are the basic movement commands. Before I get to the nitty› gritty of it all, you should understand how it works before you attemt› to use it.› First off, when you start out, there are no sounds in memory, to› create your own you need to make a volume buffer and a pitch buffer. › The pitch buffer is a group of bars that are set at a certain pitch› for each bar, the whole pitch buffer represents one volume buffer bar.› Now, that volume buffer bar is set to a certain volume (duh), the› volume plus the pitch is the generated sound outcome. The pitch› buffer is the basic sound you create. You can change the distortion› as well. There is a separate distortion for volume and pitch buffers.› When you press < and > you will notice that alternating screens there› is a prompt: "Frequenz-Modulation HK #--". This is the author's way› of saying that's the pitch buffer. The HK #-- means that's the pitch› buffer for HK #--. HK is Huellkurve, or my translatuion is sound› buffer. Volume buffers take even numbers and pitch buffers take odd. › Here is the status bar:› › LP : HK #01› EFF: VC #00› DC : Frequenz-Modulation HK #00 !› › In this display we are on the pitch buffer of HK #00. The HK on› the right denotes which buffer number you are on.› Let me describe the distortion system. The VC #00 on the right› is the distortion register. You can change it in either volume or› pitch buffer. When in volume buffer you can only change the 2nd digit› this is a minor change to the sound. In pitch buffer it changes the› 1st digit, this is a major change to the sound. The command for› changing the distortion is Shift+,(comma) and .(period).› › Distortion change - Shift+ ,(comma) .(period)› › There is also a looping command. Like distortion, it can be› changed in any buffer. It will loop over and over from one point to› another. Press ,(comma) to put the starting point on screen where the› cursor is and .(period) to put the ending point where the cursor is. › The starting point must be infront of the ending point.› ››››››› -page3-››› Sound Monitor v1.2›››› Looping - ,(comma) starting point› .(period) ending point› › Now a command that should usually be used with the loop is a› lowering command. It will decrease the volume everytime one is› occured. To place one or take one off, press Inverse key. A good› spot to use it is on the starting point of the loop.› › Volume decrease - Inverse key› › There are special effects you can put on each bar of any buffer. › It modifys the sound a bit differently from distortion. Pressing› ;(semi) and /(slash) will go though the 3 levels of effect. You will› see a little sine wave-like symbol on the dash-line, the bigger the› wave, the greater the effect it produces.› › Effect - ;(semi) and /(slash)› › When you are in the pitch buffer, it is a good idea to start with› a full line of half-height bars and a loop on the last bar. This can› be easily created by pressing Shift+ <(clear).› › Clear and Setup pitch buffer - Shift+ <(clear)› › Those are all the editing commands. If you have a song or› something entered into the pattern buffer then you can press Return› while editing the sounds so you can change the sounds wile playing the› music. This is extremely helpful when you need to find just the right› sound you want.› › Play Pattern while Editing - Return› › › Pattern - Pattern Editor› ------------------------› › This is one of the main subsystems that does what this whole› program is for, composing music. There must be a standard keyboard› code for each note, I am not aware of any standard, all I know is this› is what the commands are:› › Keys:› Octave 1234567890 Pattern commands:› #2 CD FGA Q - Jump?› (x) ---------- P - Jump (low digit)› J - Jump (hi digit)› QWERTYUIOP M - 1/60 delay› -2 CDEFGAB T - 16/60 delay› -4 C L - Distortion?› H - Distortion?› ASDFGHJKL; U -› #1 CD FGA W -› #3 CD FGA A -››››››› -page4-››› Sound Monitor v1.2›››› S -› ZXCVBNM,./ D -› -1 CDEFGAB C -› -3 CDEFGAB V - Volume› E -› › The format is as so:› › 01 --- 0000 --- 0000 --- 0000 --- 0000› › The first number represents the line number. The following 4› '--- 0000's represent each voice. If you want to enter in a note, use› the key above on the left to figure out which key means what note and› which octave. Your cursor can be moved by pressing the arrow keys› (don't press control). Your cursor must be on a --- to enter a note. › Doing so will make the program play that note you entered. on the› right of the note is some data: 00VF. The first 2 digits is the› sound number you are using, the V means volume and the F is› hexadecimal for 15, or full volume.› › If you want a different volume then move the cursor over the F› and enter a hex character for the value you want. If you don't want› to keep putting new volume numbers in for each new note you enter,› press Control+ +(plus) and *(asterisk). This will move the bar at the› way top of the screen left and right. Depending on which voice column› you are on determines which voice you lower/raise. The bar at the top› is a voume meter for each volume. This setting is the volume that› appears on entry of notes and when you playthe pattern. This does not› affect the voices if you use the play command on the Spielen header.› › Volume change - Control+ +(plus) and *(asterisk)› › If you want to change the sound you want to use, pressing < and >› will go through the sounds you have to use.› › Sound change - <(clear), and >(insert)› › If you want to hear the pattern press Return like that of› Huellkurve only you can't do anything while it plays.› › Return - Play pattern› › The notes are only half of what this processes. There are› certain pattern commands you can pass through on the 0000 part of each› voice. You cannot use a command and play a note on the same line› number and voice. The area has to be free. The commands are above› with the note key. I only know what some of the commands do, I don't› understand the rest completely or at all. If you find exactly what a› command does, I want to know! You press the letter for the command› you want on the 3rd digit. Then the numberyou want to pass with it› goes on the 4th digit.› › You can also press space to erase a note and Tab to just forward››››››› -page5-››› Sound Monitor v1.2›››› 8 lines.› › There are also space save/restore functions of the pattern editor› so you can effectively edit your songs. You can save your pattern to› a temporary buffer by pressing Control+ Esc. You will see a grey› flash, this lets you know what you did. If you made changes and want› to restore to the old pattern, press Control+ >(insert).› › Save pattern - Control+ Esc› Restore pattern - Control+ >(insert)› › There are certain times you wish to clear certain parts of the› pattern. Pressing Control+ <(clear) will clear the voice the cursor› is on. Pressing Shift+Control+ <(clear) will clear the entire› pattern.› › Clear voice - Control+ <(clear)› Clear pattern - Shift+Control+ <(clear)› › By this time you want to know how to edit a song altogether and› not just one pattern, right? Well all you do is put the <--> symbol› over the position you want (in the center of the screen) by pressing +› and *. What do the numbers mean? Beats me. When you get to the› position you want, pressing Shift+ Tab will Save the pattern to that› position. Pressing Control+ Inverse will load from the position.› › Data-table movement - +(plus), *(asterisk)› Load pattern - Control+ Inverse› Save pattern - Shift+ Tab› › › Daten-tabelle!› --------------› › This is a simple area where you select what position you want to› use, pressing arrow keys left and right (no control key) will move you› around but also pressing the pattern number you want to go to will› work. pressing F will take you to position F, pressing F again will› take you to position FF. Comprende?› › › ===================================› -----------------------------------› /Playback Subsystem/› › Pattern - Play the pattern› --------------------------› › Alles - Play from current position› ----------------------------------› › Alles (Position 0) - Play from beginning› ----------------------------------------››››››› -page6-››› Sound Monitor v1.2›››› (short wasn't it?)› › ===================================› -----------------------------------› /Disk Use/› › Laden - Load a song› -------------------› › Loads a song compressed or non-compressed. See directory viewer› below.› › Speichern - Save a song› -----------------------› › Save a song, the compression flag determines whether it will be› compressed or no. See Option header.› › Inhaltsverzeichnis - Directory› ------------------------------› › This unbelievably large word means directory. It uses the same› directory viewer as load/save functions but does nothing to the files› that are selected.› › › Directory Viewer› › This subsystem is a way of viewing and selecting files for the› desired function. When started, a directory appears in two column› form. Free sectors appears above files. A highlight appears on the› first file. The arrow keys move the highlight. Pressing return will› select that file and move you to the top of the list. Above the list› is the filename you selected. pressing Return again from the top will› do th desired function. If you don't want the selected file, simply› moving the cursor some where else and pressing Return will not change› it. You can change it by typing it in.› › You may also change the drive you want to use by pressing shift› and drive number.› › ===================================› -----------------------------------› /Option/› › Speicher Aufraeumen - no clue› -----------------------------› › The first word is similar to the word for save (speichern), but› still no idea.› › Music Packen - Compression on/off› ---------------------------------››››››› -page7-››› Sound Monitor v1.2›››› › This is where you set the compression flag.› › aus - off› ein - on› › ===================================› -----------------------------------› /Quit/› › Zum DOS - exit to Dos› ---------------------› › Pressing return on this function will give you a beep sound and a› yellow background. Simply put, the program wants to know if you› really want to leave or do the selected function. Pressing Return› again will accept, any other key will abort.› › Kaltstart - Cold start reboot› -----------------------------› › Music loeschen - Clear song from memory› ---------------------------------------› › ##################################› SUMMARY› -------› On Bootup:› OPTION - skip credits› SELECT - use with Option to turn off blinking inverse› characters.› › Main Program:› <(clear), >(insert) - move header highlight left/right› +(plus), *(asterisk) - move function highlight left/right› › Huellkurve:› +(plus), *(asterisk) - move highlighter left/right› -(minus), =(equals) - move bar up/down› <(clear), >(insert) - move left/right thru sound buffer› Distortion change - Shift+ ,(comma) .(period)› Looping - ,(comma) starting point› .(period) ending point› Volume decrease - Inverse key› Effect - ;(semi) and /(slash)› Clear and Setup pitch buffer - Shift+ <(clear)› Play Pattern while Editing - Return› › Pattern:› Volume change - Control+ +(plus) and *(asterisk)› Sound change - <(clear), and >(insert)› Return - Play pattern› Save pattern - Control+ Esc››››››› -page8-››› Sound Monitor v1.2›››› Restore pattern - Control+ >(insert)› Clear voice - Control+ <(clear)› Clear pattern - Shift+Control+ <(clear)› Data-table movement - +(plus), *(asterisk)› Load pattern - Control+ Inverse› Save pattern - Shift+ Tab› › Directory Viewer:› Change drive - Press Shift + [drive number]› › › ***********************************› RePlaying Your Songs› › Included in this archive is several source files for the› replayer. The source was originally from some odd ball German› assembler, I was able to convert all the op-codes and psuedo-ops to› Mac/65 format. Generally, Mac/65 is about the only assembler to use. › If by some means you want/need source in text format and not Mac/65› tokenized, I'd be happy to UUencode it to you over Internet e-mail. › Again, I'm at: data@phsbbs.princeton.nj.us› › How to use REPLAY.M65› ---------------------› › This source is meant to be #INCLUDEd into your program. My› source, PLAY.M65 shows a sample way of putting the program together,› however it is not completed granted I'm not adding another 10-20k of› data to this .ARC file by putting my label and macro libraries. It's› just for study, modify at will.› › Basically this is how to set up the play routine:› First, the song you want to play must be non-compressed and› converted to .BYTE statements.› Second, somewhere in your code place the #INCLUDE for the replayer› and the song data.› Third, the X and Y registers hold the low/high address of the› begging of the song. Do a JSR MP.INIT.› Fourth and lastly, install a VBI (deferred preferably, the screen› will not shake. It will in immediate on 60Hz NTSC models). The VBI› should include a JSR MP.PLAY in it.› › i.e.› LDY # VBI› LDA #7 ;7- deferred VBI, 6- immediate VBI› JSR SETVBV ;set up VBI. SETVBV = $E45C› › ...› › VBI› JSR MP.PLAY ;Do music› JMP XITVBV ;XITVBV = $E462››››››› -page9-››› Sound Monitor v1.2›››› › › /././././././././././././././././././› ***********************************› Good Luck!› › I believe I documented all that I know. Since I have no docs and it› wouldn't help me anyway because it's in German, I had to find out for› myself how to use it. This textfile is a result of my weeks of trial› and error, finding out what each key does. I don't know how I found› all those kooky control and shift combinations but when you're got› nothing to do, strange things happen.› › From what Frankenstein has told me, this is but a common quality› composer. That amazes me. He says others are better like the Chaos› Composer for instance. You can buy it from:› › ANG Software› Ridderkerksestraat 60› 3114 RK Schiedam› Holland› › for 12.50 Dutch Guilders. In fact, all Polish software from ANG costs› 12.50 Dutch Guilders.› › Incase you don't know, Frankenstien and the HTT are no longer making› demos, they even dropped the Platinum demo they talked about. But... › Frankenstien does support a publication called Megazine. It's a› magazine on disk and from what Frankenstien told me, it has lots of› really great and new software on it. (i.e. #4 and #5 have .MODule› players for the 8-bit! And on normal 64k machines, too) I'm going to› subscribe very soon.› › The distributor for Megazine in the US is:› Adam Conover› 90 Plum Street› Greenville, PA 16125› › › › Happy Composing!› 3/10/93› › Shawn Poulson (data) :-)› ››››››››››››››› -page10-›››