Skip to content

einariii/pipesines

Repository files navigation

Pipesines. Elixir as musical instrument.

Screenshot_77

Pipesines (v0.1.0) is a web app that encourages Elixir developers to explore sound through code: general programming as a specific sonic experience.

What do |> sound like? Which is more musical: if, case, or cond? Will Enum.filter actually filter a sound? And what about Enum.reduce?

assert compose(Elixir) == compose(music)

Paste existing code into the text editor, or write something from scratch. Type Alt+P to hear how it sounds. Initially it may seem like a chaotic mess. Type Alt+P again to pause. Adding, deleting, or refactoring may lead to more pleasant, harmonious, or musical output. Or not! What sounds "good" is a subjective judgment. What do your coder ears prefer?

Create an account to add your code/compositions to the community database. Save an entire defmodule, or just one line!

Pipesines is an open-source space where contributors are very much welcome. Future versions should improve on optimization, accessibility, and ideally, adding additional BEAM languages to the platform.

Built using Elixir, Phoenix LiveView, Ecto, PostgresQL, and the excellent Tone.js

Inspired by GEMS by @nbw, ElixirWPM by @tindrew, Max Mathews, Joan Miller, Laurie Spiegel, the monome community, Sonic Pi, SuperCollider, Tidal Cycles, algorave, ok all computer music programming ever, and all the sociotechnical wonders of the BEAM ecosystem.

Special thanks to @brooklinjazz, @czrpb, @byronsalty, @IciaCarroBarallobre, @a-alhusaini, @BigSpaces, @w0rd-driven, and all my colleagues at DockYard Academy for their support and camaraderie.

Open source contributions

Please consider joining the effort to port more of Elixir and the BEAM ecosystem into the world of computer music. You may find a healthy list of issues here on the GitHub.