2019-11-08 (F) Weekly Summary

This version of the Electronic Wind Chimes had a bunch of extra buttons I wanted to use for percussion sound effects. Last week, I programmed the easy ones that sent a noteOn message when one was pressed, but this time the buttons needed special considerations. The first unique button was a drum roll. This one had to start a snare drum sound several times each second, then stop all that when the button was released. The second button was "Applause," which was unlike the rest of the sound effects because it was not a percussion sound, it was an instrument, and could not be played on the percussion channel, 0x09. The last button was a victory fanfare, which was a series of notes, also on a different channel with a different instrument, which I cobbled together to sound triumphant.
Coding the complex sound effects

During the hackathon, the EWC_Presenter suffered some damage during a fall. Technically, it was right at the end of the fall. The keypad lost some mounting holes, and the line-out port of the MIDI shield broke off then became lost. I could have swapped out the PCB, but I installed speakers since it had an onboard amplifier. I added a new mounting hole right in the middle of the keypad, and I had to drill into it.
New faceplate to mitigate damage

I tried to tap off the exposed pads where the socket used to be to create another line-out port, but it didn't work great. This wasn't the way I wanted to go with the project, but a little chaos might improve it in the long run.

Repair of the broken line-out port

I thought it would be smooth sailing when I finally sat down to write a soundscape. Everything should have been in place for an easy win. The code was not bug-free, but it worked well enough. That was day one. I was not successful.
Day one, adding a soundscape

On day two, I fixed some of the lingering bugs, and that helped. I was able to get some control, and a few of the things I thought should work, sort of worked.
Day two, adding a soundscape

It was not until the third day that I achieved something I could call a victory. Not only did I figure out the hangup holding back the soundscapes, but I also fixed the bug that made the old code problematic. All this turned out to be a mixed bag. On the one hand, I ignored something that seemed like a minor bug, and it came around to cost me time. On the other hand, if I had spent time correcting all the little flaws, I would be further behind than I am now, and it became a matter of fixing a fatal error to move forward.

The problem came from when I double a two-dimensional array by adding a third dimension. I added the new dimension to the back, but in my code, I tried to read and write it from the front. Some of the time, this worked all right, but it was not consistent. Once I realized the error, a lot of problems fell away neatly.
Day three, victory over soundscape editing

The rest of the summary posts have been arranged by date.

First time here?

Completed projects from year 1
Completed projects from year 2
Completed projects from year 3
Completed projects from year 4
Completed projects from year 5
Completed projects from year 6

Disclaimer for http://24hourengineer.blogspot.com and 24HourEngineer.com

This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information on this blog, or linked by this blog, is not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property, or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by  Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.