Over the last few weeks I’ve been working on my midterm project – a MIDI sequencer using the bell ringing concept I’ve talked about previously on this blog. It didn’t end up being massively successful, but I made a lot of personal progress. Check it out:
Step 1: Sourcing components
For the first few weeks of this project, I was torn between two ideas: the Forrest Mims Toy Organ that I mentioned in the blog post on Lab 04, and what I ended up choosing – the Quasimodo Bell Sequencer. I wanted to complete both projects, so took some time sourcing all of the components from electronics shops and online.
Step 2: Designing schematic (15.02.16)
I decided to sketch out the schematic of the Quasimodo project in order to confirm that I had the components needed, and to confirm the flow of the circuit.
I wanted to include –
- 5 switches to turn on and off each ‘bell’
- 5 buttons to allow for MIDI learn capability
- MIDI Input
- Potentiometer for tempo
- Potentiometer for bell duration
- 3-way switch for changing between 3-, 4-, and 5-bell patterns
- 5 LEDs, one for each ‘bell’
- MIDI output
…but I ran out of pins on the Arduino to add all of the features I wanted, and consequently simplified my design.
Step 3: Breadboard Prototyping (18.02.16)
I began prototyping the different segments of my project – LEDs, switches, MIDI output – using a breadboard. This helped me to determine whether I could get all of my components to function properly, before they were assembled and soldered together. This was important, because it allowed me flexibility to experiment and redesign my project. During this stage of the process I was able to achieve MIDI and LED output.
Step 4: Refining schematic (21.02.16)
Here is the simplified schematic that I will be building:
Step 5: Building on perf board (22.02.16)
Building the project using perf board was something I had a continual struggle with. I began with the different components working on the breadboard, then transferred them over to perf board and soldered them down. During this stage of the process I had to be relocated several times, interrupting my ability to solder and limiting my access to tools. Consequently I couldn’t drill holes into my enclosure when I had planned to, and focused on soldering instead. This meant that I soldered down lots of my components on the perf board…outside of the enclosure. And consequently I will have to redo most of today’s work, tomorrow.
I also came across a problem with the toggle switches I was using, in that I would switch them on and the LED would flicker on and off. I’m not sure whether this is to do with my connections or something else.
Step 6: Rebuilding it right(ish) (23.02.16)
Today I completed most of the (re)construction of my project, soldering all of the LEDs, switches, and MIDI connector. To test that things worked, I coded the switches to turn the LEDs on and off – not the final result that I want, but it signified whether things worked or not. I managed to fix yesterday’s issue with the toggle switches by using some debouncing code from the Arduino examples. I had success soldering all of the components together, and used a lot of electrical tape around the connections to try and eliminate any crossed wires. It worked! However, when I started to cram everything inside of the enclosure, things started to go wrong and the LEDs started flickering. I’m not sure if this is because of loose connections or problems with the perf board, but much of it is under layers of electrical tape I have run out of time to fix it.
Step 7: Reflection
I didn’t manage to complete my project, and create the functional synthesiser that I wanted to. Therefore I think it is important to reflect on the process, and understand where I could have done better. Here are some of the reasons I can see as to why I didn’t achieve what I’d hoped:
- Indecision: I took too long deliberating what project to focus on, and spent a lot of my time working on extension projects for my lab tasks (which also didn’t turn out…) instead of this major project. This was part of the reason I ran out of time.
- Logistical: Unfortunately, several days that I had scheduled to work on my project were interrupted because of logistical reasons – the lab became out of action (albeit for massive improvements) for several days, and I was thrown out of work spaces twice. Whilst this is not an excuse to fail, it did throw me and inhibit my ability to work when I had planned to.
- Complexity: I tried to cram too many components and functionality into the project, given the time I had to complete it. I had never worked with MIDI input or output before, and whilst I did get output to work rather easily, the input would have been more complicated. I had also never used this particular kind of toggle switch before, and had to understand how they worked, including debouncing.