Article History
 
 
 
Discussion
 
3371 views
 
40% goluigi
klangfreude (format)
 

klangfreude DIGITAL SINE CRAFTER
 

 

 
Token:
klangfreude
 
Point Type:
 
File Types:
 
Entry Count:
104
 
Max Filesize:
12.5mb
 
Description:
a sine wave tracker where you sequence pitches in hertz rather than traditional note names
::|CONTENTS
  1. Restrictions on submit
  2. Playback (for voting)
  3. Known bugs
  4. Funny stuff
  5. .kftm file format structure
  6. See also
klangfreude DIGITAL SINE CRAFTER is a unique tracker that takes note input in the form of Hz values rather than traditional note names. Rather than using A through G with octave numbers, you input numbers representing the frequency you want to hear (for example, A440 = 440 Hz).

Currently the only available sound is a sine wave (hence "SINE CRAFTER"), although more options are intended to be on the way in a future "full power" update. Likewise, no effects exist yet besides volume.

Just intonation is a focus of this tracker: a "fundamental" pitch can be set (and easily changed), then called up in other rows to have ratios applied to it, for example 2/1 producing an octave above the fundamental.

You can download the tracker here:
https://kleeder.de/files/botbFiles.php
(original download link is dead)

Restrictions on submit



Your entry must be made with the klangfreude tracker and saved with its own file format .kftm.

Playback (for voting)



* Online KFTM Player
- All .kftm modules should be playable in this online tool, so you don't have to download the tracker if you don't want to.
* All .kftm modules should be playable in klangfreude as well, if you are having issues opening files check the bugs section below.

Known bugs



* Current version does not support whitespace in file names or paths. Move the file to someplace with no spaces.
* You may need to try a shorter filename or path as well if a module doesn't load.
* You may have to open the .kftm file through the tracker's "Open" dialog and not via OS filetype associations.

Funny stuff



* A fun and hacky method to get PCM audio in klangfreude exists, by using volume command values much larger than intended to DC offset silence after note cuts. At extremely high speed settings (several thousand) each row acts as 1 sample. BotB's own kleeder has made a Python script to convert a given .wav to KFTM module content. Due to the filesize limit of 10MB for the format, only about 65500 "samples" can be given, so downsampling your .wav is necessary to get more than a second or two of audio.

.kftm file format structure



From the following KFTM Player Code
, we can deduce the file format structure.

Header
Offset
Size (bytes)
Field
Description

$0
4
"kftm"
file format magic string

$4
2
Version Number
Always 4 (%0100).

$6
64
Song Title
ASCII null-terminated string.

$46
64
Composer
ASCII null-terminated string.

$86
64
Description
ASCII null-terminated string.

$c6
2
Row count
# of rows in the sequence.

$c8
varies
Sequence data
The actual song data


Row Data
Since the track count is hardcoded to 8, the row data is currently 138 bytes large.

Offset
Size (bytes)
Field
Description

$0
2
Command Type
SET_SPEED == 1, JUMP == 2

$2
8
Command Argument
The argument for the command

$a
16 * track ct.
Track Data
^1


^1: Currently track count is hardcoded to 8, so this will be 16 * 8 == 128 bytes large

Track data
Offset
Size (bytes)
Field
Description

$0
8
Amplitude
float64

$8
8
Frequency
float64


See also



* klangfreude website
- download + documentation
down as of 11/05/2022
* archived website
- download + documentation
* Just intonation
on Wikipedia
* Format

 
C A T E G O R I E S
 
 
Battle Formats