- Quick set up
- Expert tricks
- Links for further development
- The n00b section
- See also
Sleizsa Duo is a two-channel music routine for the Channel F
microchip, created by irrlicht project
in 2015. The name is a reference to b00daw's Sleizsa
and incorporates the ability of playing two tones at the same time.
Sleizsa Duo offers two channels, 2 different interrupting drum sounds, and 16-bit frequency precision. An .xm-to-assembly databyte statements converter makes it possible to use an .xm tracker, being friendlier to tracker users out there.
The note range available is C0 - B5. Speed/tempo can be changed (Fxx command in MilkyTracker); volume commands are not suported.
A sound sample
(made by irrlicht project).
Quick set up
The xm converter requires
- ROM files
Apart from Perl, you can get all from b00daw's Sleizsa distribution. As long as you paste dasm.exe directly in /SleizsaDuo and extract the ROM files at (folder where mess or mess64.exe is located)/roms/channelf/, it should work.
: I've set it up under Windows and 'SleizsaDuo/roms/channelf' works as location too.
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 (see FastTrackerII Effects Commands
), and between a value of 01 and 1F. You also can also change the initial speed(ticks/row) of the song. 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.
Assemble and play your song with the batch file
Run 'compile.bat' to convert and run your song - it must be named 'music.xm' and the output will be 'test.bin'. If you want you can change the naming by editing the 'compile.bat' file.
If you only want to run the song, enter at the command prompt (or place in a batch file):
mess channelf -rompath roms/ -cart test.bin
To be run from the 'SleiszaDuo' directory.
If you're having problems with running only, 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"
Tracker commands are limited, yet you can still get glitchy notes by messing with music.asm. Note values of around $7x should do the trick.
Links for further development
The n00b section
The 'readme.txt' of Sleizsa Duo does have all necessities mentioned to install Sleizsa Duo as does the description above. Yet, as a 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 Sleizsa Duo
Sleizsa Duo is a piece of programming code (a 'routine') that can have a microprocessor chip 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.
Why doesn't Sleizsa Duo work with my real Channel F console??? (and how does it work then?)
: 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 keyboard (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. 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.
Now we've made it easier for us to 'connect' to the chip, what about making it easy for you to create a song? You can choose any tracker that creates sound files in .xm format (.xm format and the choice of trackers
Milkytracker is suggested so we'll take that. In case you are a n00b at tracking, you'll have to take some classes first. Perhaps this is a start: MilkyTracker documentation
The tracker will save your song data in .xm format. The converter 'xm2slduo.pl' translates this into statements that Sleizsa Duo can understand and process. However, the convertor cannot run by itself. It needs a program called 'Perl' which can fully install itself without you having to worry about anything.
The song data and the Sleizsa Duo routine have to be compiled (knit together and translated so the chip will understand it). This is the task of the assembler, creating a 'binary file' with the name 'test.bin'. The only reason we mention this is that you can change the name, but only if you also change the name in the batch file with all the instructions to call all the programs. If you don't want to change that, just forget about it :)
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'. Or you could click here
Step by step walk-through to installation
: 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 Sleizsa Duo
. Save it in 'C:\programs' and unzip it 'here'. A new folder is created called 'SleizsaDuo'.
2. Download and install MESS
(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
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
. Extract it to 'here' in 'C:\programs'
6. Download and install Perl
(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 freak out. n00b instructions on how to compose may come later.
(*) 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
- Channel F (console)
- channelf (format)