Hacker is a console DAW for a monks of Perl and UNIX!
Release just for demosceners and professional sound engeeners.
Installation
$ curl -L https://cpanmin.us | perl - -M https://cpan.metacpan.org -n Hacker
Requirements for full features
Debian:
sudo apt install alsa-utils espeak-ng
Arch Linux / Manjaro
sudo pacman -S alsa-utils espeak-ng
MacOS
brew install alsa-utils espeak-ng
Using of Hacker
Play Project:
hacker Projects/One-hand-clapping.hacker
hacker -i Projects/One-hand-clapping.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" - | ffplay -autoexit -loglevel quiet -nodisp -f s16le -ar 44100 -
Console input:
echo "chip sine" | hacker
Console input and output:
echo "chip sine" | hacker | ffplay -autoexit -loglevel quiet -nodisp -f s16le -ar 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.