Advent of FoC Day 3: Mechanical Piano with MockMechanics
Hi!
Welcome to the 3rd day* of Advent of Future of Code!.
*
our calendar works in misterious ways
The Task
Today we are going to play with MockMechanics a program that allows the creation of complex and interactive mechanisms using only simple building blocks and a graphical and intuitive form of programming.
By focusing on simplicity it encourages experimentation and thinkering: you can develop your ideas as you build them instead of carefully planning ahead.
Piano Fun with MockMechanics
Your task is to duplicate the 3 key piano of the MockMechanics tutorial video.
The specific part with the piano starts here, but unless you already know MockMechanics, you'll probably want to watch the whole tutorial before that part to get familiar with all the concepts you'll need.
If you are really ambitious, try creating the full piano like in this image, you'll need these key frequencies:
- 261 277 293 311 329 349 369 392 415 440 466 493
Tools needed
You need java installed, I tried using nix on ubuntu but got an OpenGL error,
installing java locally like this sudo apt install openjdk-18-jdk
was enough
to make it work.
- Install Java if you haven't already
- Unzip mock-mechanics-1.3-java.zip
- execute
run.sh
Note for Mac users: it may fail to run with an OpenGL error too, if you can find out why let the author know so he can document it for everybody else.
Resources
- Project Site
- Project on Twitter: @mockmechanics (be kind)
- There will be a thread for this task in the #share-your-work channel at the Future of Coding Slack
Rule Reminder
You should try to setup the project and complete the task, you can go further if you want.
Deliverable
- A video recording of you going through the whole process "thinking out loud"
- A transcription/notes/blogpost/twitter thread of the experience
Do
- Tell what's your thinking process
- Explain when / where you get stuck, confused or frustrated
- Explain when something surprises you
- Explain if a thing reminds you of something else (for better or worse)
- Keep it positive and constructive
Don't
- Say things you wouldn't say face to face
- Tell how it should be fixed
- Propose features or changes
- Tell them to rewrite it in Rust
- Highlight superfluous details that don't affect the task at hand (Unless requested by the project)
And above all, have fun!