Deafbeef – Art using C compiler
DEAFBEEF began as an art project in 2020 at the start of the COVID 19 pandemic. It is generative audiovisual art created nothing but using a C compiler.
There is a very interesting introduction to the project by the artist –
Motivated by the importance of maximum permanence for NFT art, I propose a new method for efficient on chain storage of media files expressable as the output of a model and parameters. Typical NFTs store media on IPFS with only a reference hash stored on the blockchain. Existing methods store model code and parameters onchain to be rendered in a browser, or with an external library. This introduces a dependency on browser technology(which is fast changing), and in some cases external libraries. I propose instead to store self contained code written in C language that directly outputs raw numerical data encodable to sound and visual media. As the Ethereum is already dependent on C compilers, writing model code in C does not introduce a new dependency, increasing the confidence the media will be well preserved for the life of the Ethereum network.
Technically, what does Deafbeef mean?
The name comes from the Hexspeak address of Deadbeef. Let’s understand what this is:
Since IPv6-Addresses are written in Hex-notation one can use “Hexspeak” (numbers 0-9 and letters a-f) in Addresses.
Note- (Hexspeak is a novelty form of variant English spelling using the hexadecimal digits. Created by programmers as memorable magic numbers, hexspeak words can serve as a clear and unique identifier with which to mark memory or data.)
There are a number of words one can use as valid addresses to better memorize them.
For example, if someone pings facebook using ping6 www.facebook.com -n
they will get something like “2a03:2880:f01c:601:face:b00c:0:1″.
Here are some other interesting examples of how Hexspeak is used:
- :affe:: (Affe – German for Monkey – seen at a vlan for management board)
- :1bad:babe:: (one bad babe – seen at a smtp-honeypot)
- :badc:ab1e:: (bad cable – seen as subnet for a unsecure vlan)
- :da7a:: (Data – seen for fileservers)
- :d1a1:: (Dial – seen for VPN Dial-In)
The value of 0xDEADBEEF has three practical benefits, mostly for older systems. Old assembler/C hacks use it to fill unallocated memory to coax out memory issues. Also, it’s a pun of the slang term “dead meat”. The programmer is dead meat if DEADBEEF winds up in his pointers.
As for practical reasons, it is more noticeable in a hex memory dump because it actually spells words as opposed to random hex values. Secondly, if the value winds up in a pointer, it’s more likely to induce a memory out-of-range fault. An address of DEADBEEF was out of the address range of systems regardless of the system’s endian.
Thirdly, it is more likely to induce a fault on systems that require even boundary pointer values for accessing 16/32/64-bit data. The value is more likely to fault because both of the 16-bit values (DEAD, BEEF) are odd.
How does the artist come up with such art?
When asked in an interview, the artist explains that there is no fixed process. Sometimes he chooses a visual followed by a search of a complementary sound and on other occasions, it is the reverse. He uses a catalog of sounds and visual ideas in different states, then experiments with combining them till something reveals itself.
About the art-
The collection has over 221 NFTs minted over 6 series. Let’s take a closer look at each of those:
‘What you see is a direct representation of the sound signal, as it would appear on an oscilloscope.’ Synth Poems are short generative music pieces, inspired by the sound of analog synthesizers. They are stored on-chain.
Each piece is generated at the time of minting from a random hash value, influencing musical elements including tempo, timbre, pitch, and time signature. Simple rules lead to surprising variation, giving each piece its own distinctive personality while retaining a common theme.
Read more about how Synth Poems were created.
Generative audiovisual pieces, undulating but synchronized. The process that determines note durations and pitches are continuous functions of time, taking the rhythm and pitches “off the grid”
Generative on-chain audiovisual packed with subliminal messages documenting some of the “spirit of this age”. Visuals inspired by ANSI terminal and noisy video signals. Synthesized percussion and randomized rhythms.
This series has an interesting theme of permanency, ownership and generation loss. Essentially each item ‘degrades’ through transfers. Every transferFrom()
event triggers a generative parameter counter change in storage.
The process is artificial, in that no information is actually lost. The code model itself is stored publicly and immutably on a decentralized network, and the output media can be reconstructed in any state by changing the input parameter that influences the degradation. Not even the owner has the ability to destroy, as the programmable source of information is immutable.
User-programmable generative glitch music box.
Through programmable media, this series invites users to participate in the exploration and curation of a generative audiovisual model. Rather than enforcing artificial scarcity through a single fixed hash, owners/editors may instead continuously explore and selectively choose from a large set of possible outputs.
After minting, owners(and that granted editing access by the owner) may tweak parameters that influence the output of the model, and store those parameters on-chain. Parameters are analogous to the knobs and switches of a modular synthesizer. Owners/editors may ‘play’ this instrument, selecting settings that please them.
A record of the parameters chosen, and who made them, is recorded immutably on-chain.
This work attempts to express the beauty and harmony found in the overlap of mathematical and physical concepts in different perceptual modalities. The fluid motion model for these animations is based on academic research conducted in 2010. The sounds of struck percussion are synthesized from physical models sharing common principles.
Data insights-
Since its inception in March, the creator who goes by the pseudonym 0xDeafBeef sold 221 NFTs. These NFTs are distributed in series, each series with a limited amount of NFTs.
The collection has a total of 101 owners with a floor price of 66.66? with a total trading volume of over 6.4k? at the time of writing.
The artwork that got the maximum value recently was DEAFBEEF Series 0: Synth Poems – Token 94 purchased for 110?
Last sold for 100ETH, Synth Poems item 94 became the most expensive deafbeef NFT traded. Below are some properties as mentioned on deafbeef’s website –
Synth Poems: 94
Token Id: 94Series 0 – Synth Poems
Owner: 0x765FA0Ea
Type: Audiovisual
Attributes: [Tempo: Very Fast, BPM: 885.58, Tonality: major, Fundamental Freq: 128.758, Beats per Measure: 15, Pitch Pattern Length: 6, Pitch Variability: 1, Inharmonic: Yes]
Curious about it? Put on your headphones and check it out
Reference links-
https://stackoverflow.com/a/2908255
https://poseidonofthec.medium.com/deafbeef-nft-generative-on-chain-project-exploration-830c2f678ecd
https://dappradar.com/blog/nft-art-project-deafbeef-traded-over-13-million