Skip to content

nkminion/Freakquency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Freakquency


An esoteric language that uses tones of different frequencies to denote different instructions.

Instruction Set

Tone (Hz) Instruction Brainfuck Equivalent
400Decrement data pointer by 1<
600Increment data pointer by 1>
1400Decrement byte at data pointer by 1%256-
1600Increment byte at data pointer by 1%256+
2400Output byte at data pointer.
2600Accept one byte of input, store its value at the data pointer,
3400If byte at data pointer is zero, go to next matching 3600Hz tone else go to next tone[
3600If byte at data pointer is zero, go to next tone else go back to matching 3400Hz tone]

How to use

You need to make a .wav file with a sample rate of 44.1kHz, 8-bit PCM Mono. Each tone must be of 0.5seconds for it to be considered as an instruction. You can stack the same instruction multiple times by increasing the duration of the tone. Examples have been provided in
/SourceCodes
You can use a hex editor to verify the executables created at
/Executables

Prerequisites

Any C compiler (C 23)
CMake 4.3.2
Any program that helps you create .wav files (I used SoX)

Building the compiler

Run these commands inside the repository

mkdir build
cd build
cmake ..
make
You can then use the binary named as
Freakquency

Contributions

It is an open-source project. Contributions are appreciated. Feel free to use however you like as long as I get credit.

Releases

No releases published

Packages

 
 
 

Contributors