The most prevalent number system used today is the decimal system (aka: base zero). We reuse the numbers zero through nine. When we get to ten, we put a one in the next place holder and restart the previous place holder (e.g.: 0, 1 … 9, 10, 11…). Computers, however, use a base two number system called binary. It uses only numbers zero and one. For example, if I were to count to four in binary, it would look like 0, 1, 10, 11. For more conversions between number bases, see my Exam Guide for my Intro to Computer Architecture (CSCE-212) class at the bottom of this page. Computers use binary to represent all switches and functions. The most basic form of a switch uses a data type called the Boolean. There are only two possibilities, true and false. False is represented by a zero and true is represented by a one which is analogous to binary. We can rephrase true and false to mean any pair of opposites, like on and off, negative and positive, and right and wrong. Though, the switch part is important; being able to be both right and wrong is what makes the computer be able to navigate through procedures, applications, and functions. If you try to open an Excel document in Word it will let you know that an error occurred; that you were wrong about what program can open that file. However, through your mistake you learned that Word cannot open those types of documents.
Throughout my research experiences, one of the most valuable concepts that I learned is that making mistakes is not failing as long as you take the time to understand your fault. Comprehending the error in your logic opens the doors to understanding what is valid. Also, you have gained insight which might assist you in solving future problems.
Our first goal of the research was to extract the staves from the image. It took about a month (of non-continuous work), but the lines were extracted successfully in our sample image (as seen here). In our excitement, we attempted to find lines in other sheet music online. However, our results were not accurate at all. It turns out that, in my pristine sample image, all of the staff lines were perfectly straight. For example, the excerpt of music above was generated in a music notation software. Therefore, all of the lines are perfectly straight. When we attempted to derive lines from pieces of sheet music that we found on the internet, some of the papers were scanned in crooked. In computers, diagonal lines are not straight lines; they are a series of square pixels like in the image to the left. In consequence, our code found many, many obscure lines. Through this error, we found a huge flaw in our code. However, it was incredibly important that we caught that error now. Furthermore, it gave us the idea to write the code in a way that the robot would be able to read the music from any angle, even upside down! It took this huge flaw in my programming to realize how I could make it even better.