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.