• Count Regal Inkwell@pawb.socialOP
    link
    fedilink
    arrow-up
    0
    ·
    6 months ago

    There was a thing you could do with cat /dev/random into aplay, and get some fun “Music” but you needed some other parameters to get anything other than brown noise.

    • Littux@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      6 months ago
      #!/bin/env bash
      echo "What music to play?"
      echo "[1] Groovy; blues"
      echo "[2] Japanese"
      echo "[3] ??"
      echo "[4] 8 bit Bass boosted"
      read music
      
      if [[ $music -eq 1 ]]; then
          echo "Enjoy!!"
          cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("0,3,5,6,7,10,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | pacat --channels 2 --format S32 --rate 24000
      fi
      
      
      if [[ $music -eq 2 ]]; then
          echo 'Enjoy!!'
          cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("4,5,7,11",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1046*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | pacat --channels 2 --format S32 --rate 24000 &
      
          cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | pacat --channels 1 --format s32 --rate 2000
      fi
      
      
      [ $music -eq 4 ] && {
          cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("4,5,7,11",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1046*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | pacat --channels 1 --format S16 --rate 80000 &
      
          cat /dev/urandom | hexdump -v -e '/1 "%u\n"' | awk '{ split("0,2,4,5,7,9,11,12",a,","); for (i = 0; i < 1; i+= 0.0001) printf("%08X\n", 100*sin(1382*exp((a[$1 % 8]/12)*log(2))*i)) }' | xxd -r -p | pacat --channels 1 --format u8 --rate 8000 --volume=50000
      }
      
      
      if [[ $music -eq 3 ]]; then
        echo "Taken from r/coding; enjoy!!"
        awk 'function wl() {
              rate=64000;
              return (rate/160)*(0.87055^(int(rand()*10)))};
          BEGIN {
              srand();
              wla=wl();
              while(1) {
                  wlb=wla;
                  wla=wl();
                  if (wla==wlb)
                      {wla*=2;};
                  d=(rand()*10+5)*rate/4;
                  a=b=0; c=128;
                  ca=40/wla; cb=20/wlb;
                  de=rate/10; di=0;
                  for (i=0;i<d;i++) {
                      a++; b++; di++; c+=ca+cb;
                      if (a>wla)
                          {a=0; ca*=-1};
                      if (b>wlb)
                          {b=0; cb*=-1};
                      if (di>de)
                          {di=0; ca*=0.9; cb*=0.9};
                      printf("%c",c)};
                  c=int(c);
                  while(c!=128) {
                      c<128?c++:c--;
                      printf("%c",c)};};}' | sox -t raw -r 64k -c 1 -e unsigned -b 8 - -d
      fi
      exit 0