Sleizsa Duo is a sound driver for the Channel F made by irrlicht project, based on b00daw's Sleizsa.
It features not one, but two channels, 2 different interrupting drum sounds and 16-bit frequency precision. Also, while b00daw's tool is an mml interpreter, Sleizsa Duo features an .xm to bin (rom file) converter, being friendlier to tracker users out there :D/
Download / Github / Sound sample (made by irrlicht project)
The xm converter requires Perl, dasm, the ROM files to boot Channel F and MESS to run. Apart from Perl, you can get all from b00daw's Sleizsa distribution. As long as you paste dasm.exe directly in /SleizsaDuo, it should work.
Sleizsa Duo comes with an example song (music.xm) that you can use as a template.
The xm file has 4 channels - however, only 3 will be used. You must use instrument 1 on channels 1 and 2, using notes between C-0 and B-5, and the drum sounds at channel 3 OR 4 (not both at the same time). Volume commands AREN'T supported. The only supported effect is Fxx, and between a value of 02 and 1F. You also can also change the initial speed(ticks/row) of the song, but the minimum value 2. You CANNOT change the BPM/tempo.
It's recommended to use Milkytracker to make your song, but you can use other xm trackers, as long as you resave your song with Milkytracker, else conversion will fail.
Run compile.bat to convert your song - it must be named music.xm and the output will be test.bin, but you can change those by editing the .bat file.
After the conversion, you'll want to run the file in MESS, the emulator - however (unless you've gotten it from the original Sleizsa's package) something will be missing: the Channel F ROM files. You should get those and put them in (folder where MESS is)/roms/channelf. Then, run it and open your song.
If you're having problems doing so, just create a .bat file called run.bat with the following instructions:
mess channelf -cart test.bin"
or change mess to mess64 if you're using the 64-bit version.
To record sound directly from MESS, add "-wavwrite filename.wav" to the command line that initiates MESS.
"mess channelf -cart test.bin -wavwrite test.wav"
<<<>>><<<>>><<<>> The n00b section <<<>>><<<>>><<<>>>
N00b guide to install Channel F SleizsaDuo
The 'readme.txt' of Sleizsa Duo does have all necessities mentioned to install Sleizsa Duo as does the description above. Yet, as n00b, it would be interesting to know a bit more about the reasoning why and get some more support in setting things up. This installation guide is written for Windows (Vista); non-Windows OSs are considered expert-level or you're rich enough to hire a nerd to help you out.
<<<>>> What is Channel F? <<<>>>
Channel F is an old 8-bit (microprocessor chip*) game console and if you're reading this you'd like to make some music that would sound like it is coming from that console. If you happen to read his while having a Channel F console set up at your tv and wonder how to make music with it: you're trying something that is not n00b. Go find help here: VES Wiki
As a n00b, you better keep that console for another moment and read on.
<<<>>> What is Sleizsa Duo <<<>>>
Sleizsa Duo is a piece of programming code (a 'routine') that can have a processor generate two (pulse) sounds at the same time. Also there are sounds that you -could- interpret as a drum, but it isn't more than a 'click'-sound. So the nerds decided to call it a 'click-drum'. The Sleizsa Duo can produce 2 different click-drums; more on this in the n00b_user_guide.
<<<>>> Why doesn't Sleizsa Duo work with my real Channel F console??? (and how does it work then?) <<<>>>
Please note: a step by step walk-through on installing is found in the next section; this here is all background info.
Feeding a microchip some direct instructions through your keybaord (the one with letters, not a synthesiser) is a very complex situation, involving many layers of software to have the magic happen. As a n00b you probably think about a nice software program to create music in. The Sleizsa Duo is a piece of code directly talking to the hardware of the chip. No Windows involved. This means there is quite a bridge to build. Let's start thinking from the chip, approaching the first problem.
The Channel F console has no modern interface: no Wifi, no USB, no hard dive. As it is a game console, the only interface existing is cartridges like this: the Channel F console
In case you'd want to have Sleizsa Duo run on a real console, you'll have to make your own cartridge and find a way how to store the data as these cartridges are read-only...
So, it is easier to use all modern interfaces by using your PC and mimic the Channel F chip instead. A program that pretends to be a real chip or console is called an emulator**). For Channel F only one emulator exists: MESS (Multi Emulator Super System). It supports more consoles than just Channel F; to use it for Sleizsa Duo you have to install it and make sure Sleizsa Duo finds it.
Not wanting to sound supercilious***): Sleizsa Duo is not more than a bunch of characters and numbers. Sending it to the emulator is not enough: an interpreter, an assembly interpreter to be more precise, will have to translate the routine into actual 10101011111010101 machine code for the chip. For this you cannot just grab whatever assembly interpreter you have laying around. It must understand the encoding of the chip and it must be the same one used as the one the routine is programmed in. Because standardization of code and interpretation is something for programs running in Windows, not for microchips. DASM is used and you don't have to understand it at all.
One thing untold: the emulator is missing the code to start ('boot') Channel F like it would be in reality. The code to do so is programmed inside the console (in Read-Only-Memory; ROM) and copyrighted. Of course there have been some handy nerds who copied that code and made it available on the internet. Searching on 'Channel F bios roms' can get you the right 'info'.
Now we're having an interface for Sleizsa Duo to communicate with the Channel F chip and have the sounds created by the emulator. Let's have a look at how we can make things easier for you as a n00b musician. You can choose any tracker that creates sound files in .xm format (.xm format and the choice of trackers)
In the n00b guides Milkytracker is referred to and its lingo of composing elements of chiptune tracker music is used. Mostly just to bring forward the limitations while composing in the n00b_user_guide. In case you are a n00b at tracking too, you'll have to take some classes first. Perhaps this is a start: MilkyTracker documentation.
Hold on, we're nearly there! The last step in the bridge is a translation from the .xm file to instructions that the assembler interpreter can pass on to the chip. We're talking translation of your precious music data. This is done by a piece of code that needs an interpreter too. Not an assembly interpreter but a higher level programming language called 'Perl'. For this, the automatic installer of Perl will make sure it gets on the system and can be seen by the translator.
<<<>>> Step by step walk-through to installation <<<>>>
Please note: The folder structure is going to be like this:
If you want a different structure, pay attention and change locations as desired. Assumption is that 'C:\programs' already exists.
1. Download SleizsaDuo: LazyLink Save it in 'C:\programs' and unzip it 'here'. A new folder is created called 'SleizsaDuo'.
2. Download and install MESS:
- MESS: LazyLink (take the newest; currently version 0.159) Double-click .exe and choose to install it in 'C:\programs\mess' (make a new folder with the button)
- Add MESS to the environment variable 'PATH' of Windows, so it can be found from any location:
right-click 'computer' in the start menu (if you have windows 8, sorry!) and choose 'properties'. Choose 'advanced system settings', 'environment variables' and look for the 'Path' variable. Click 'Edit...' and add '; C:/programs/mess' to the end of the line (including the semicolon but without the quotes). Click 'OK' to save changes and close the appeared windows.
3. Download and install DASM:
- DASM: LazyLink Extract it somewhere, cut the file 'dasm.exe' and paste it in 'C:\programs\SleizsaDuo'. You can clean up the extracted files and folder.
4. Download the roms (find them somehow) and place them in 'C:\prgrams\SleizsaDuo\roms\channelf' (make the subfolders in case necessary)
5. Download and install Milkytracker:
- Milytracker: LazyLink Extract it to 'here' in 'C:\programs'
6. Download and install Perl
- LazyLink (ActivePerl or Strawberry Perl, doesn't matter, current version is 5.20.2) The wizard of Perl will get you through, just choose the default settings and the path you'd like. The installation wizard will also set the 'Path' environment variable for you.
7. DONE! Now you can n00b up and learn about the possibilities and restrictions regarding tracking for Sleizsa Duo in n00b_user_guide
N00b guide to use Channel F SleizsaDuo with MilkyTracker
..that is in the making...
*) the '8-bit' is not limited to the processor, but for now that chip is the only thing you'll have to imagine to understand workings
**) an emulator tries to be an exact copy of the original hardware, including it's mistakes. A simulator on the other hand, will appear like the real hardware but internally, as code, be created totally different. Often, errors of the original system in a simulator have been re-created on purpose.
***) yeah, grab your dictionary