<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=208.54.32.168</id>
	<title>Noisebridge - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.extremist.software/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=208.54.32.168"/>
	<link rel="alternate" type="text/html" href="https://wiki.extremist.software/wiki/Special:Contributions/208.54.32.168"/>
	<updated>2026-04-08T01:20:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://wiki.extremist.software/index.php?title=Bytebeat&amp;diff=25611</id>
		<title>Bytebeat</title>
		<link rel="alternate" type="text/html" href="https://wiki.extremist.software/index.php?title=Bytebeat&amp;diff=25611"/>
		<updated>2012-05-23T08:50:47Z</updated>

		<summary type="html">&lt;p&gt;208.54.32.168: new bytebeat, created using pytebeat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== bytebeat in x86 assembler ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ; noise.asm -- just fooling around :-)&lt;br /&gt;
 ; mct and leif, ; Sun Feb 19 19:08:13 PST 2012&lt;br /&gt;
 ; &lt;br /&gt;
 ; Build with:&lt;br /&gt;
 ;&lt;br /&gt;
 ;       nasm -felf32 noise.asm&lt;br /&gt;
 ;       ld -melf_i386 -o noise noise.o&lt;br /&gt;
 ;&lt;br /&gt;
 ; Run with:&lt;br /&gt;
 ;&lt;br /&gt;
 ;       ./noise | aplay&lt;br /&gt;
 ;&lt;br /&gt;
 ; Equivalent to:&lt;br /&gt;
 ;        python -c&#039;import sys;[sys.stdout.write(chr((t&amp;gt;&amp;gt;10^t&amp;gt;&amp;gt;(t&amp;gt;&amp;gt;13)%4)%256)) for t in xrange(2**20)]&#039; |aplay&lt;br /&gt;
&lt;br /&gt;
 global _start&lt;br /&gt;
&lt;br /&gt;
 section .data&lt;br /&gt;
&lt;br /&gt;
 section .bss&lt;br /&gt;
&lt;br /&gt;
         var:    resb 1  ; one bye variable&lt;br /&gt;
&lt;br /&gt;
 section .text&lt;br /&gt;
&lt;br /&gt;
         ; f(x) = (x &amp;gt;&amp;gt; 10 ^ x&amp;gt;&amp;gt;((x&amp;gt;&amp;gt;13)%4)) % 256&lt;br /&gt;
&lt;br /&gt;
         _start: mov esi, 0&lt;br /&gt;
&lt;br /&gt;
                 ;int 3&lt;br /&gt;
&lt;br /&gt;
         .loop: &lt;br /&gt;
&lt;br /&gt;
                 mov edi, esi&lt;br /&gt;
                 shr edi, 13 ; edi := x &amp;gt;&amp;gt; 13&lt;br /&gt;
&lt;br /&gt;
                 mov eax, edi&lt;br /&gt;
                 cwd&lt;br /&gt;
                 mov bx, 4&lt;br /&gt;
                 div bx  ; dx := (x &amp;gt;&amp;gt; 13) % 4&lt;br /&gt;
&lt;br /&gt;
                 mov eax, esi&lt;br /&gt;
                 mov cx, dx&lt;br /&gt;
                 shr eax, cl   ; eax := x &amp;gt;&amp;gt; ((x &amp;gt;&amp;gt; 13) % 4)&lt;br /&gt;
&lt;br /&gt;
                 mov edi, esi&lt;br /&gt;
                 shr edi, 10   ; edi := x &amp;gt;&amp;gt; 10&lt;br /&gt;
&lt;br /&gt;
                 xor eax, edi&lt;br /&gt;
                 mov [var], al&lt;br /&gt;
&lt;br /&gt;
                 mov eax, 4      ; sys_write&lt;br /&gt;
                 mov ebx, 1      ; stdout&lt;br /&gt;
                 mov ecx, var    ; buffer&lt;br /&gt;
                 mov edx, 1      ; length&lt;br /&gt;
                 int 80h         ; syscall&lt;br /&gt;
&lt;br /&gt;
                 inc esi&lt;br /&gt;
                 jmp .loop&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ### Basic Sierpinski harmony bytebeat t &amp;amp; t &amp;gt;&amp;gt; 8 in as few bytes as possible:&lt;br /&gt;
         .globl _start&lt;br /&gt;
 _start: inc %ebx             # output fd 1 in %ebx for write()&lt;br /&gt;
         inc %edx             # byte count of 1 in %edx for write()&lt;br /&gt;
 loop:   inc %eax             # increment t each time through the loop&lt;br /&gt;
         push %eax            # save it on the stack&lt;br /&gt;
         and %ah, %al         # compute t &amp;amp; t &amp;gt;&amp;gt; 8, our output sample&lt;br /&gt;
         push %eax            # store it on the stack for write()&lt;br /&gt;
         lea 3(%ebx), %eax    # a three-byte way to set %eax to 4 (__NR_write)&lt;br /&gt;
         mov %esp, %ecx       # pass sample pointer to write() (little-endian!)&lt;br /&gt;
         int $0x80            # invoke system call&lt;br /&gt;
         pop %eax             # discard sample&lt;br /&gt;
         pop %eax             # restore t into %eax&lt;br /&gt;
         jmp loop             # and repeat&lt;br /&gt;
 ### Kragen Javier Sitaker&lt;br /&gt;
 ### 2012-01-10&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile with gcc -m32 -nostdlib and pipe the output to aplay.  After stripping, the ELF is 240 bytes; size(1) says it has 18 bytes of code.&lt;br /&gt;
&lt;br /&gt;
=== bytebeat in &amp;amp;lt;140-character command lines with python ===&lt;br /&gt;
 python -c&#039;import sys;[sys.stdout.write(chr((t^t&amp;gt;&amp;gt;(t&amp;gt;&amp;gt;11)%3^t&amp;gt;&amp;gt;(t&amp;gt;&amp;gt;12)%4)%256)) for t in xrange(2**19)]&#039;|aplay&lt;br /&gt;
 python -c&#039;import sys;[sys.stdout.write(chr((t&amp;gt;&amp;gt;(t&amp;gt;&amp;gt;11)%4^(t&amp;gt;&amp;gt;10)*(t&amp;gt;&amp;gt;15))%256)) for t in xrange(2**19)]&#039;|aplay&lt;br /&gt;
 python -c&#039;import sys;[sys.stdout.write(chr((t&amp;lt;&amp;lt;3+(t&amp;gt;&amp;gt;10)%3^t&amp;gt;&amp;gt;4+(t&amp;gt;&amp;gt;12)%4^t**(2+(t&amp;gt;&amp;gt;13)%8))%256))for t in xrange(2**18)]&#039;|aplay&lt;br /&gt;
 python -c&#039;import sys;[sys.stdout.write(chr((t^t&amp;gt;&amp;gt;4^(t*((t&amp;gt;&amp;gt;(11+(t&amp;gt;&amp;gt;16)%3))%16))^t*3)%256))for t in xrange(2**20)]&#039;|aplay&lt;br /&gt;
 python -c&#039;import sys;map(lambda t:sys.stdout.write(chr(( t+(t&amp;gt;&amp;gt;(5+(t&amp;gt;&amp;gt;10)%4)^t) )%256)),range(2**21))&#039;|aplay&lt;br /&gt;
=== links ===&lt;br /&gt;
* [http://www.metafilter.com/111959/Todays-formulaic-music Today&#039;s formulaic music.] - Metafilter post about bytebeat with many links&lt;br /&gt;
* Recordings made at Noisebridge: [http://www.youtube.com/watch?v=89Dm7yiYoXM] [http://www.youtube.com/watch?v=1tqgzMqk0jM] [http://www.youtube.com/watch?v=S14UknY8qtc] [http://www.youtube.com/watch?v=C87qr2sDu4s]&lt;/div&gt;</summary>
		<author><name>208.54.32.168</name></author>
	</entry>
</feed>