가장 예쁜 바이트 비트 구성 작성


24

바이트 비트 는 출력되는 aplay또는 파이프에 간단한 C 프로그램을 작성하여 작성할 수있는 음악 스타일입니다 /dev/dsp.

main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);}

이 스레드 에는 바이트 비트 사이트 , 자바 스크립트 구현 , 더 많은 데모 및 예제 구성에 대한 많은 정보가 있습니다.

매우 간단한 규칙 : 꽤 소리 나는 작곡을 작성해보십시오. 일반적인 결과를 고려하는 주관적이지는 않지만 대부분 주관적 투표는 분명히 주관적이므로 승리합니다.



이것을 엄격한 바이트 비트 (즉 버퍼 없음)로 유지하고 있습니까?
피터 테일러

4
왜 C로 제한됩니까?
사용자가 알 수 없음

버퍼 나 다른 언어의 사용을 제한해야하는 본질적인 이유는 없지만, 일반적으로 바이트 비트는 특정 C 루프가 공식에 의해 정의 된 출력을 갖는 것을 의미합니다. 나는 Joey Adams의 대답에 투표했다 rand().
Jeff Burdges

이 아이디어가 마음에 들지만 FAQ는 객관적인 승리 기준을 요구합니다 (계산이나 ASCII 기술에 갇히기가 너무 쉽습니다). "예쁜"보다 더 잘 정의 된 것을 찾을 수 있습니까?
dmckee

답변:


16

(16 비트 리틀 엔디 언, 8000Hz 모노 ( --format=S16_LE) 서명 )

음악

이전보다 훨씬 낫습니다! (비록 길지만)

main(t){for(;;t++)putchar(((7&(((t>>17)+1)>>2)+((t>>10)&1+2*(t>>18&1))*(("23468643"[7&t>>12]-48)+(3&t>>11))+((3&t>>17)>0)*(3&t>>9)*!(1&t>>10)*(((2+t>>10&3)^(2+t>>11&3))))*t*"@06+"[3&t>>15]/32));}

( 여기에서 들을 수 있습니다 )

나는 이것을 썼지 만 심지어 >0첫 번째 부분과 같이 (특히) 어떤 부분이 어떻게 작동하는지 모르겠습니다 7&.

루프를 for(;!(t>>22);t++)...로 변경하여 '한 번'들으십시오. 그러나 그것이 정확히 같은 방식으로 "루프"되는지 여부는 모르겠습니다.

멜로디 (위의 음악의 기초)

나는 내가 만든이 멜로디를 좋아하지만 (CGAF ftw), 너무 평범하다 ...

main(t){for(;;t++)putchar(((t>>10)&1)*(t*("23468643"[7&t>>12]-48)+t*(3&t>>11))*"@06+"[3&t>>15]/32);}

간단한 음악 (내가 만든)

main(t){for(;;t++)putchar(t*(3&t>>11)+(t&t>>11)*4*!((t>>11)%3));}


위의 바이트 비트 링크를 클릭하면 .wav 파일로 변환하는 sox 명령 행과 이상한 압축기 명령 행이 표시됩니다.
Jeff Burdges

3
+1 놀라운! 몇 가지 비트 (예 : 1:30-1:40)의 사운드 종류는 "더듬 거림"이지만, 다시 말해서 바이트 비트의 매력은이 이상하고 비 전통적인 리듬과 멜로디에 있으며 전체적인 효과가 우수합니다. (Ps. 우연히 샘플 당 8 비트로 연주했으며 놀랍게도 그렇게 들립니다.
33.3rpm

3

눈금자 기능 C 단조 :

#include <math.h>
#include <stdio.h>

#define PI 3.14159265358979323846

#define step(freq, n) ((freq) * pow(2, (n) / 12.0))
#define note(n)       step(440, n)
#define MIDDLE_C      note(-9)

int count_zeros(unsigned int n)
{
    int count = 0;
    for (; (n & 1) == 0; n >>= 1)
        count++;
    return count;
}

int minor_note(int note)
{
    int octave = note / 7;
    int scale[] = {0, 2, 3, 5, 7, 8, 10};

    note %= 7;
    if (note < 0) {
        note += 7;
        octave--;
    }

    return scale[note] + octave*12;
}

int main(void) {
    double t = 0.0;
    double freq = MIDDLE_C * 2;
    double step = PI * 2 / 8192;
    int n = 0;
    int i = 0;

    for (i = 1;; t += step, i++) {
        if (i == 1024) {
            i = 0;
            n++;
            freq = step(MIDDLE_C, minor_note(count_zeros(n)));
        }

        putchar(sin(t * freq) * 50.0 + 128.0);
    }

    return 0;
}

멋진 멜로디이지만 "조성"이 되려면이 IMO에 뭔가 더 필요한 것이 있습니다.
Ilmari Karonen

3
main(t){for(;;t+=(t%6)?1:2)putchar((((t<<t^(t>>8))|(t<<7))*((t<<t&(t>>12))|(t<<10))));}

oxymoron이 아닌 경우 매우 고전적인 바이트 비트입니다. 나에게서 +1
Ilmari Karonen

3

"바이트"보다 "비트"강조 :

#include<math.h>

double s(double,double);double r(double,double);double d(double);double f(double);

char bytebeat(int t){return (d(f(t/4000.)/3) + 1) * 63;}
double f(double t){
  double sn=s(1./2,t-1); sn*=(sn*sn);
  return 3*s(1./4,1/s(1,t))+3*s(4,1/sn)/2+s(4,1/(sn*sn*sn*sn*sn))/4
       +2*s(55+18.3*r(1./2,t),t)+s(110+s(5,t)/4000,t)*s(1,t)+s(220+110*r(1,t)+55*r(3,t),t)/5
       +s(880+440*r(1./2,t)-220*r(1,t)+110*r(2,t)+s(5,t)/4000,t)
       *(2+s(1760+438*r(3./2,t)-1234*r(2,t)+423*r(5,t),t))/9
       +s(s(1,t)+s(1./2,t)+s(1./4,t)+s(1./8,t),t)*s(s(1,t)+s(1./2,t)+s(1./4,t)+s(1./8,t)+1,t)
       +r(264+11*r(1./20,t),t)*s(1./20,t);
}
double s(double f,double t){return d(sin(f*3.14159265*(t+999)));}
double r(double f,double t){return s(f,t)<0;}
double d(double a){return tanh(a+a*a/4);}

main(t){for(;;++t)putchar(bytebeat(t));}

8kHz, uint8 모노에서 사용됩니다. 저음이 가능한 저음 스피커에서 가장 잘 들립니다.



0

조합 된 멜로디와 하모니 :

r=3,
r=3,
m=(t*(t>>12|t>>13|t>>14|t>>15|t>>16|t>>17|t>>18))&63,

h= ((t&t>>7&t>>6)|t*5&t>>8-c^t*6&t>>9-c|t*7&t>>12-c^t*9&t>>11-c^t*11&t>>22^t*19&t>>20^t*14&t>>20|t*23&t>>15-c|t*12&t>>9|t*30&t>>30|t>>5|t>>4)-31, m|h
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.