SourceForge.net Logo

This revision fixes several bugs. Now the program is now barely usable if is compiled against Qt 4.

Added the Ctrl+D (Select 16 notes) keystroke to the Pattern Editor (F2), filling in another missing Impulse Tracker key binding.

Fixed some bugs that caused CheeseTracker to crash when copying a selection.


This version adds support for the Audio File Library (libaudiofile), allowing it to load several new sample formats, including AIFF, .au, CARL Sound, .voc, and others.

In addition, through libaudiofile, CheeseTracker gains the ability to load ADPCM compressed and IEEE floating-point WAV samples (previous versions could only load uncompressed integer WAVs).

There are several more bugfixes as well. Version is somewhat unstable.

Another bugfix release. Fixed another bug from 0.9.13 (selections didn't work correctly in the Pattern Editor).

Also fixed a very old bug: The live keyboard can now be played while a song is playing without the former getting cut off.

Fixed several bugs that horribly impaired CheeseTracker 0.9.13, and should have been detected earlier. These bugs affected the way the program sounded, as well as the visualization of samples in the Sample Editor.


Implemented the ability to load and save multi-channel samples in WAV format, or within CheeseTracker (*.ct) modules. In addition, stereo samples play back in stereo. Previous versions of CheeseTracker discarded all but the first channel of any sample loaded.

Since the code that handles the sound card is still stereo-only, correct playback of more-than-two-channel samples is still impossible, even if you have a multi-channel sound card. Such samples are instead mixed down to 2 channels.

Unofficial Release 0.9.12

Changed a few keys:

FunctionOld keyNew key
Mute Channel Occupied by CursorF9Shift+F11
Solo Channel Occupied by CursorF10Shift+F12

The original keybindings from Impulse Tracker would be in conflict with the popular XFWM window manager. The original author realized this.

I tried using Shift+F9 and Shift+F10, but Qt seems to ignore the state of the Shift key when detecting a menu accelerator keystroke (Shift+F9 would do the same thing as F9).

  • Fixed the bug where stereo samples are simply discarded while loading IT files. CheeseTracker still doesn't support stereo samples, so the samples are loaded as mono.
  • Wrote an mmap-based file reader. On systems that support it, maximum file-reading performance has been acheived.
  • The GTK+ UI remnants have been deleted. They were previously unused by the build, and therefore a waste of bandwidth.

Releases before this one were lost in the transfer from GeoCities. The tarballs I downloaded from their web server ended up being truncated, and I didn't notice until after GeoCities deleted the site.

Unofficial Release 0.9.11
  • Removed a couple of stupid, arbitrary size limitations. Unofficial Release 0.9.11 can handle full, song-length samples, and the larger song files that go with this new territory. It is therefore now possible to mix recorded music elements with elements synthesized in CheeseTracker without using an external program.
  • Wrote a faster file-reading algorithm. Large samples and modules will load much faster in Unofficial Release 0.9.11 than in previous versions.
  • Stuffed the code with asserts. These will catch conditions that can lead to a segmentation fault (there are many such conditions in this program, and much effort has been expended in preventing the code from setting off these asserts).
  • Replaced all calls to sprintf with the safer function snprintf, except the vast number of sprintf calls that can be found in rtaudio.cpp. Since rtaudio.cpp is for Mac OS X and I run Linux, I cannot test any changes made to that file.
  • Merged a couple of duplicate functions. More remain.
  • Started paying attention to the ChangeLog found within the package.
Unofficial Release 0.9.10

The following Impulse Tracker keys that are missing or poorly implemented in the official version are implemented correctly here:

F7Play from cursor (now works correctly)Order list
F9 Load fileGlobal
EnterLoad sample/instrumentSample and Instrument editors
Ctrl+IMake InstrumentSample Editor
  • Unrecognized sample types are treated as raw, 8-bit data, instead of giving an error message
  • Playback loops to the beginning of the song when an empty order is encountered, instead of skipping over gaps in the order list.
  • Newly-loaded samples will be named with just the filename instead of the full path.
  • The build tree now includes a script that removes all the files generated by the build process.

Internally, the following changes have been made:

  • The Debian patch fixing a buffer overrun in the XM loader has been applied.
  • The memory leak created by the Debian patch has been fixed.
  • The duplicate functions that I am aware of have been merged. I haven't seen all the code, so there may be more duplicate functions lurking in there.
  • The typedefs for Uint8, Uint16, etc, are now defined to be equivalent to the appropriate types in <stdint.h>. If SCons doesn't find <stdint.h>, then Microsoft-style exact-width ints are sought, and if those aren't found, the old definitions from CT 0.9.9 are used.
  • A new member, vector<QAction*> hidden_actions has been added to the class MDI_Main_Window. This stores the QActions used to implement the new key bindings, which would otherwise require additional menu items. The QAction pointers are deleted in MDI_Main_Window::~MDI_Main_Window()
  • All the code is compiled with the -g and -Wall flags.
  • Since CheeseTracker has been found to contain code that only works on two's complement hardware, a compile-time assertion has been put in that will prevent the software from compiling on one's complement hardware.