User Tools

Site Tools


oric:wave:wave_compiler

Compiler 1.1

For Version 1.1 the compiler will be split into two versions.

Compiler 1.1 50Hz

The first version will compile the tune for a 50Hz interrupt and will not use the enhanced pitchbend method, since this uses much more code and alot more tables to generate the proportional pitchbend.
The version will also be limited to Chipsounds only (as in V1.0 and earlier versions). To compile with SID or Samples one must use Version 1.1.2

Compiler 1.1 5Khz

The 5Khz compiler and player will place the The second version will 3.1 - Wave Compiler Any music produced(and saved) in the Music Editor is always 26.5K. This is because the Music Editor uses a flat-file to store all the music elements including the session preferences. A Compiler will extract only the music that was composed and convert it to a format that is much smaller (typically 80% smaller). The Compiler will then add a specially optimised player onto the end and either save the resultant file to Disc(Option 4) or Print just the music data to the local Printer (option 5).

3.2 - Compiling BASIC TEXT IRQ Driver This will compile the tune to sit as far up in memory suitable for operation in a TEXT only environment.

To compile a tune select Option 4 from the Compiler Menu. The disc directory will now show only WAVE files. Enter your tunes filename (DO NOT include the extension) then press Enter. The program will compile the tune and save it to a file with the same filename but the extension .CWF This file holds the compiled music data. The Compiler will then add the Player code to the end and save the final file to disc with the .COM extension.

To load the compiled tune and player, simple load the .COM file. To Play the song always CALL #B000 To Stop the song always CALL #B1C5

In order to have the music resident in memory whilst you are using BASIC it it neccesary to set the top of BASIC memory using the HIMEM command (otherwise BASIC may corrupt or even crash the music). To find out what to set HIMEM to Load the music with the ,V switch at the end. This will return the Start and End address of the Compiled tune. Set HIMEM to 1 below the Start Address.

For example LOAD“EXAMPLE1”,V will return ADA1 B4FF 40 0000 You would then set place HIMEM #ADA0 at the very start of your BASIC program.

3.3 - Compiling and Printing an XA Compliant Music Block This option was added for those wishing to use music in Cross assembled Machine Code using the popular XA Compiler as provided in DBUGs fantastic OSDK package. The option will compile the tune then generate .byt statements (in rows of 16 bytes) to the printer file.

However it is imperitive that the PRINTER IS SWITCHED ON during this operation otherwise the machine WILL crash.

A countdown will be displayed in the top left indicating the progress of the printing. After completed and returning to the menu, turn off the Printer and collect the Printer file.

At the time of release it was found the last data statement contains an error. Add $00 to the end.

In the ZIP file (that WAVE is packaged in) you will find the xa source for the Player. The Player must allign to a Page. Not only this but be aware that the actual allignment is required further down the source in the Effect section of the code so amendments made above must not upset the page allignment.

However the Music data file collected from the printer file can be placed anywhere in memory. Just tell the player where the start of the music data is (in the MUSICBASEADDRESS constant). To play the music JSR InitMusic To Stop the music JSR TerminateMusic

oric/wave/wave_compiler.txt · Last modified: 2009/12/15 00:45 by twilighte