A couple of switches on the faceplate would not respond reliably. They were both connected to analog inputs. When I viewed the analog values, they were interfering with one another and resting close to zero when they should have maxed out. I was able to fix the problem in software instead of adding more components. The trade-off was that the switches did not respond as quickly as other inputs.
Feedback from switches
The next hardware issue was the addressable LEDs. I added filtering components, transmitted on analog pins, digital pins, and data pins. Nothing worked, so I decided this project doesn't need lights.
I tried all reasonable solutions to get the LEDs working
More important than the lights, I had to get MIDI working. Unlike LEDs, this was core to the purpose of the project. Reading data has always been a tricky hurdle on my projects. Fortunately, I have used this protocol before, and it is robust and well documented. Earlier, I soldered the MIDI connection to the first available pin, but I learned this would not support hardware interrupts, so it was a time-gamble to test on this pin. On my first attempt, I received data, but I had to convert it through the calculator to make sure it was MIDI.
MIDI, trust me
I bought a converter to use my USB MIDI devices with the old-style DIN port. I could have purchased an older controller, but this should give me the flexibility to use more instruments. When I connected everything, I was able to play the glockenspiel directly from the piano. Eight of the notes worked, and I had to designate them directly in the code.
(0:14) MIDI controller in action
I could play the glockenspiel manually, so the next course was to add some self-playing capability. Since the instrument was tuned to a scale that didn't have discordant notes, I could play them pseudo-randomly with no regard for a sour sound. I have a few more modes that need programming after this.
(0:35) Prandom notes
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 firstname.lastname@example.org 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.