2021-01-22 (F) Weekly Summary

I tried a couple more methods to read a logarithmic potentiometer like it was linear, but everything failed. The closest I got was to connect both poles of a cross-fader, read them independently, and compute the average. Even then, I saw significant biasing to one side. Since I tried every viable option, I moved back to the screen and printed instrument names for each mood. The black background with white text was an intentional choice for readability.
Instruments shown on screen

I added programming to record the mood name stored in the spreadsheet and keep it in a character array. When I wanted to display it, I converted it to a string and printed it in a larger font than the instrument names. For now, the titles are just "Mood one," "Mood two," etcetera, but eventually, I can give them names like "Slow and somber." While I was at it, I created a function to change moods because the buttons only changed the number but none of the data.
Mood changes

I enabled the PANIC button and made a red screen that alerted the user that someone pressed it. When the button releases, the system refreshes the moods, which had the bonus of showing startup settings. I was planning to add this functionality, but now I don't have to do anything.
Panic screen

I added some serial capability even though I probably won't operate the EWC_OST connected to a computer. While tinkering, I found that my constant reporting slowed the system, even when there wasn't an available connection, so I disabled it by default, and moods changed faster.
Help menu

I added instrument parameters to make it clear how much each would affect the sound. I plan to give each mood a unique name and an appropriate color, so when I cycle through them, it will be intuitive to stop on the best choice. For example, I might create one called, "Somber" with a dark brown background, and I'll know that it has a slow feel with low notes, while a yellow mood with a name like, "Peppy" will describe a fast and high-pitched mood.

My old code wasn't perfect, but I left myself helpful comments, and I had to accept that my old functions were not suitable for this project. In my old code, I had a setup that made it possible to play notes a few milliseconds after one another, but I decided to remove that feature, which makes this an opportunity to write cleaner code.
Arduino sketch

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
Completed projects from year 7

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.