Hello all! My name’s Evan, and I’m starting development on an idea I had a few years ago. The Synharmonium is a microcontroller-based synthesizer with control elements based on the accordion and the Suzuki Omnichord, and an algorithm to solve the centuries old musical problem of versatile just intonation. Best case, this could have a huge impact on how western music is written and performed. Worst case, its a fun and easy synthesizer you can build at home.

But right now its not much more than an idea and a janky keyboard prototype. I am a student of computer engineering, and I have a non-zero amount of programming skill, but I tend to make stupid mistakes that I can’t easily spot. I need someone who’s good at programming, has some spare time, and finds this idea interesting, to help me get the software side of the instrument going. If you can become a major contributor, I’d love to have you, but if you can just help me find one boneheaded mistake I will be extremely grateful, because I’m pretty stuck at the moment.

  • Goose@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    is it the issue on github mentioning not being able to read the switch matrix? if so, have you tried to read the io pins yourself without an additional library to see if they do as you would have expected?

    • amminadabz@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Thats the issue, yeah. I haven’t manually read the pins yet, but I just found something strange.

      I connected an LED to one of the column pins to see whether the MCU was sending scanning voltage, and it was. Then I put it in parallel to a row pin to see if the switches were returning that scanning voltage when pressed, and they were. Then I noticed that whenever I added the led to a row pin, the serial monitor showed keypresses for all the keys on that row, and the inverse when I removed the LED.

      So, apparently, this whole time the key matrix library has been designed to work with a pull down resistor rather than reading return voltage. My whole PCB is modeled after mechanical keyboards, so it was not designed for pull down resistors. Now I must rewrite parts of the library or find one meant for a keyboard-style circuit.