Hacker is a console DAW for a monks of Perl and UNIX!

Release just for demosceners and professional sound engeeners.

Dependencies

alsa-utils, espeak, ffmpeg

Installation

curl -s https://vsepohui.ru/hacker.sh | sudo sh

My Hacker Projects

You can try to hearing my Projects in https://github.com/vsepohui/Hacker-Projects

https://github.com/vsepohui/Hacker-Projects/archive/refs/heads/main.zip

Using of Hacker

Play Project:

hacker Projects-file.hacker   
hacker -i Project-file.hacker   

Render Project (in RAW format):

hacker -o filename.pcm Projects/One-hand-clapping.hacker

Render to flac (supported wav / mp3 / flac / ogg / m4a):

hacker -o filename.flac -e "chip sine"

Run code from command line:

hacker -e "chip sine"

Console RAW output and play a sound by an ffplay util:

hacker -e "chip sine" - | aplay -q-f s16_le -r 44100

Console input:

echo "chip sine" | hacker

Console input and output:

echo "chip sine" | hacker | aplay -q-f s16_le -r 44100

Example of Hacker Projects

Dub-step like wave:

chip gain (delay [mix(
	[sine 13, 30],
	[silence (0.05), sine 12, 30],
)], frames => 1), 2;

Simple Drum Machine:

my $kick  = sample('Samples/extra/kick_029.flac');
my $snare = sample('Samples/extra/snare_028.flac');
my $hat   = sample('Samples/extra/hat_003.flac');

my @c1 = seq([$kick->play(-24)],  140, '0,.,.,.,0,0,.,.,0,.,.,.,0,.,.,.'); # Kick
my @c2 = seq([$kick->play(-36)],  140, '0,.,.,.,0,0,.,.,0,.,.,.,0,.,.,.'); # Sub kick
my @c3 = seq([$snare->play(-12)], 140, '.,.,0,.,.,.,0,.,.,.,0,.,.,.,0,.'); # Snare
my @c4 = seq([$hat->play(-24)],   140, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0'); # Hat


my @m = (mix(\@c1, \@c2, \@c3, \@c4)) x 4;

mix ([gain [rev @m] => .1], \@m);

Random Piano Player

my (@c1, @c2);
for (map {int rand(24)} 1..64) {
	push @c1, sine($_, 0.5);
	push @c2, sine($_+ 12, 0.5);
}

mix(\@c1, \@c2)

Bugs

Crushes on memory leaks

Perl had a much memory leaks, and on big projects Hacker crushed. Sorry, I don't know how to fix it.

For demosceners

Please, don't make release, based on my projects! It's rip of my creative! Code by yourself!

Credits

All project developed by Yahwe, Ivan Trunaev, Russia.