KeenFX is a Keen 1-3 PC Speaker sound editor written by Commander Spleen in 2005.
The utility is designed to work with an external sound file. This means it is only directly usable with Keen 1. However, it is possible to extract the sound effects data from the Keen 2 and 3 executable files, save them in an external file, edit them with KeenFX, and then use CKPatch's %patchfile feature to load the sounds into a mod.
Make sure you throw a copy of SOUNDS.CK1 in with keenfx.exe; there's no error trapping at the moment, so if the sounds file isn't present the program will simply crash.
Instructions for Use
Once you're in the program, you'll be presented with two Power menu windows; one reading 'SoundBox' and the other 'Visualisation'. SoundBox lists the various sound effects, and Visualisation displays a visual representation of the selected sound.
From here, the rest is up to you. The following controls are at your disposal:
|Enter||Play selected sound effect|
|Space||Play selected note, indicated by the highlighted asterisk in the Visualisation window|
|S||Compile (Save) SOUNDS.CK1|
Soundbox (If active)
|Up/Down||Cruise up and down the sounds list|
Visualisation (if active)
|Left/Right||Prev/Next note, respectively. Note that the window scrolls to cater for long sounds.|
|Up/Down||Increase/Decrease pitch of highlighted note by 16.|
|PgUp/PgDn||Increase/Decrease pitch of highlighted note by 256.|
|Ins||Manually input desired pitch for highlighted note.|
|Zero (0)||Set highlighted note to zero.|
|F||Reverse (flip) sound effect.|
|I||Invert selected note.|
|Z/X||Zoom in/out. Viewing range is 1200 (maximum) by default.|
|C/V||Copy/Paste highlighted note.|
|+/-||Increase/Decrease length of selected sound effect. Minimum length of 8.|
PC speaker sounds are composed of frequencies, which the modder can arrange in a musical manner or a cacophonous texture - both approaches are used in the original games for varying purposes. The PC speaker is controlled with frequency numbers which correspond to frequencies. These numbers range from 0 and 65,535 and these correspond to frequencies between 8.21 Hz (frequency number = 65,535) and 1,193,180 Hz (frequency number = 1). However, in the KeenFX utility, it is the inverse of the frequency number that is inputted, i.e. 65,535 minus the raw frequency number. Some examples of these are illustrated below for reference, where "KeenFx value" should be entered into KeenFX to deliver the frequency required. The below are most of the main notes in a conventional range for melody, and are in a standard western A=440Hz musical space.
A modder who wishes to work with higher or lower notes will note that each note has a Frequency # which is double that of the note an octave above. Using this info, for C2 (65.41Hz) the Frequency # will be 18,242, and thus by subtracting this from 65,535, the value of 47293 is obtained which will produce C2 when entered into KeenFX.
|Note||Frequency (Hz)||Frequency #||KeenFx value|