Tables & Waves

About: WTF is This?

WhoTF?

SM makes makes electronic makes music electronic with makes music music computers electronic computers with SM makes electronic music with music computers computers SM electronic with computers SM with SM SM

WhatTF?

Tables & Waves is an electronic music project. This site is intended to document and demonstrate a few of the musical algorithms employed in Tables & Waves music.

This site is like a blog where the posts are highly interactive. Observations about the algorithms are written down and the sources of inspiration are referenced and linked. However, the main point is that the algorithms here should make sounds you can hear and should be played and played with via parameters you can change. The goal is to provide simple menus and options for changing the inputs to simple algorithm implementations so you can interact with them. Algorithms, if we are to think of them like instruments for creative expression, should be poked and prodded just as strings are plucked, drums are hit and keys are pressed, etc. The only difference is that algorithms should be poked by data rather than appendages.

WhenTF?

This site was launched in early 2022 with the Melodic Vectors, Infinity Series and Self Similarity experiments. It has been updated in July 2023 with the Monome Grid + Electron + Live Tutorial.

WhereTF?

On the Internet, of course. This site is simply an open source code repository published at GitHub.com via their GitHub Pages features.

WhyTF?

The inspiration for this site is based on a theme I have seen on the lines forum for "open source music" where people share the creative processes used to generate their musical ideas, experiments and compositions at levels of technical detail where other people might be able to replicate their work.

I am grateful for the many people who share their knowledge of music, music theory and especially the techniques used to create electronic music. I have benefited tremendously from the articles, tutorials, books, podcats, videos and websites where temporally generous people provide a little peak under the hood of their creative and technical processes. My hope is that by writing about how I have learned from, experimented with and extended what I have learned from others, it might help other curious people just a little bit in the pursuit of their creative work.

The politics of technology in art and music also provide a context for this site. This is best summed up in a discussion between Max Alper and Matthew D. Gantt on Alper's La Meme Young podcast. Throughout their discussion, Gantt and Alper discuss what it means to share code and other technical knowledge in an artistic context. At one point Alper comments:

Who's making it and for what purpose? Who's making tools? Who has access to the tools, and for what purpose were the tools made? And why are they being given to people? Because the double-edged sword of accessible or democratizing technology...it's like the double-edged sword of teaching people how to code is you have all these Amazon and Google-made code academies because they want more workers. There is plenty to talk about from the labor side of why are we making things affordable or accessible to learn if not to potentially just create the next generation of people that will work for these developers.

I hope that these technological skills, especially our communal understanding of how data processing algorithms can and do work, might be made more accessible because I think given their role in our lives, they should be well understood widely. I believe there is no better to motivation for knowledge development than showing people how to use tools for their own creative expression. And, as hopefully is evident within the experiments on this site, many algorithms are not particularly complex. However, in my experience, there are a lot of tooling and configuration barriers that gate keep many technological endeavors. So let's share without the goal of making more worker bees.

Bonus: HowTF?

This is a static website using core HTML Web Standards, primarily HTML, CSS, JavaScript, along with SVG and Web Audio. All functionality for the site is implemented in JavaScript, including the sound examples that turn your web browser into a synthesizer. My code that builds this site is MIT-licensed if anyone is interested in grabbing the examples for further use, possibly for musical or educational purposes.

JavaScript is Amazing These Days...

The piano roll visualizations on this site that mimic the visual interface of DAW software were created using the D3.js library. This JavaScript library is amazing. The piano rolls themselves are built to purpose. I have kept them as simple as possible for my needs, which is simply to render the minimal range on a piano roll horizontally (time) and vertically (pitch). See the PianoRoll class if it might be helpful in your work.

The sound the plays from this site is generated using the Tone.js Web Audio framework. This JavaScript library is amazing. My use of it is rudimentary and in know way indicative of its capabilities.

The site builds using esbuild.