Inspiration
We were interested in minimalistic programming languages and unusual input methods. In addition, we wanted to gain experience with live signal processing and program interpretation.
What it does
It picks up xylophone notes (or any sound) played into a microphone, then compiles and runs the code in a minimalistic programming language called brainfuck, which consists of 8 different characters and is Turing-complete.
How we built it
We wrote this in pure Python, with a few standard Python libraries. We wrote the brainfuck interpreter from scratch.
Challenges we ran into
Recognizing and distinguishing xylophone notes at multiple frequencies was challenging, as there is always some overlap and background noise. Multithreaded processes further complicated our code, making it difficult to handle and trace. Writing the brainfuck interpreter was particularly challenging, although the final product is surprisingly short and elegant.
Accomplishments that we're proud of
When we began this project, we expected it to take a few hours. Now we're just glad that we finished it at all! We're particularly proud of the language interpreter, which is almost as minimalistic as the language it interprets.
What we learned
We learned a lot about live signal processing that we can apply to more important problems, and our dive into the world of esoteric programming languages helped us understand the inner workings of languages and compilers.
What's next for Xython Programming System
We plan to implement a system for writing code with any instrument (or even your voice!) by dynamically tuning input frequencies. Due to the deeply unusable nature of this project, we don't plan on commercializing it or continuing its lifecycle for very long.
Built With
- brainfuck
- pyaudio
- python
Log in or sign up for Devpost to join the conversation.