Search results

  1. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    I'm not sure a filter is 100% required, though you at least need some attenuation if you don't want the note to go on forever. However, I suspect that a filter of some kind is needed to get good results. Running it through a biquad filter or something sounds like a good idea. I've also heard...
  2. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    Okay, I gave your new version a try. You're right, the "weight" value doesn't noticeably affect timbre. Your version sounds like how my old version sounds if you crank the brightness all the way up (no low-pass filtering). My guess is that the "better sustain" commit probably disabled the...
  3. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    That's strange. Do different values of "weight" have any noticeable effect on timbre at all? And did you set feedback level close to 1.0 at the same time? Maybe there's some major difference between your old branch I've been working off of and your latest branch...
  4. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    I tried a crude fix for the tuning and just applying a correction function before I send the frequency in to noteOn(): float brightnessCorrection(float frequency) { float sharpness = stringSynthBrightness - 0.5f; float sensitivity = frequency/middleCFrequency; return 1.0f -...
  5. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    It turns out there is actually a bit of a complication: if you change the feedback balance between "in" and "prior" it changes the tuning. Since the wave is always being smooshed in one direction, the low-pass filter has the effect of altering the pitch. The current code seems to be properly...
  6. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    I figured out how to make the high-pitched notes sustain a lot longer, and it's a simple change. The current algorithm uses a very crude form of low-pass filtering. Whenever computes the new audio samples, it takes the average of the value from the previous time it looped through the buffer...
  7. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    I thought you just meant that I needed to rename things so I don't have name collisions with the older versions of those classes that exist in the audio library, in which case it wouldn't really matter whether I abide by official naming conventions. If I come up with something that's worth...
  8. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    Yeah, I named it "AudioSynthKarplusStronger" after your feature branch. Seemed like a good name. Tuning precision seems to be good. I haven't measured it, but it sounds like it's probably correct. I ended up needing to increase the audio memory blocks by a lot. (Was 40, now it's 400.) That...
  9. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    I should probably mention that I'm using Teensyduino 1.59. I haven't tried any of the 1.60 betas.
  10. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    My math (which I'm not 100% sure is correct either) says the accuracy is about 1.21 cents at B8. Anyways, that should be well within reasonable tolerances considering it's near the upper end of human hearing anyways. Even in the mid-ranges that would be pretty decent. Haskell code: ("cents"...
  11. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    The layout is my own invention. It's not terribly difficult to play, aside from some of the inherent complexities of using just intonation -- basically, you have to be aware of distinctions between notes that are only slightly different in pitch and if you use the wrong one it sounds off...
  12. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    I might have to give that a try. One of the comments in the thread mentioned they'd substantially improved the tuning accuracy...
  13. J

    On adding an internal synthesizer engine to the The Mosaichord MIDI controller using the Teensy audio library.

    A few months ago, I added an on-board synthesizer to the Mosaichord, my Teensy-based microtonal MIDI controller. I thought I'd post some notes here about how that went, what worked and what didn't, it case it's useful to anyone else doing the same thing, or to anyone working on improving the...
  14. J

    usbMIDI does not send polyphonic aftertouch message when I call sendAfterTouch(note, pressure, channel);

    Right, that's the problem -- calling sendAfterTouch with 3 arguments does completely different things depending on if you're using usb or serial MIDI. If you're already aware of that, it's possible to work around, but it's a very easy mistake to make since the usb and serial midi APIs are...
  15. J

    usbMIDI does not send polyphonic aftertouch message when I call sendAfterTouch(note, pressure, channel);

    I just realized something that in retrospect is kind of obvious given what I wrote in the previous post: The reason the Teensy is dropping aftertouch messages when I call sendAfterTouch(note, pressure, channel) is that it interprets it as the channel aftertouch command with the extra "cable"...
  16. J

    usbMIDI does not send polyphonic aftertouch message when I call sendAfterTouch(note, pressure, channel);

    There are, apparently, three ways to send polyphonic aftertouch using the Teensy MIDI libraries: usbMIDI.sendAfterTouch(note, pressure, channel); , usbMIDI.sendAfterTouchPoly(note, pressure, channel);, and usbMIDI.sendPolyPressure(note, pressure, channel);. sendPolyPressure(note, pressure...
  17. J

    Using ILI9341_t3.h, tft.begin() causes reboot using Teensyduino 1.59.0 but works fine under 1.58.2.

    It looks like the problem is specific to setting the CS pin to 255. If I set it to pin 10 it works normally. (Pin 36 works too, and that doesn't conflict with what I'm already using pin 10 for.) The md5sum of all the ILI9341_t3 source code files is the same from 1.58.2 to 1.59.0, so...
  18. J

    Using ILI9341_t3.h, tft.begin() causes reboot using Teensyduino 1.59.0 but works fine under 1.58.2.

    I tried recompiling everything in verbose mode -- no warnings. I tried switching back to Arduino 2.3.2. Just like with 2.0.4, I get reboot loops with Teensyduino 1.59.0, everything is fine with 1.58.2. That's weird that you've never gotten the screen to come up with CS grounded. I've been...
  19. J

    Using ILI9341_t3.h, tft.begin() causes reboot using Teensyduino 1.59.0 but works fine under 1.58.2.

    Yeah, CS is grounded. I didn't notice any compiler warnings. Is there a way to crank up the verbosity in the Arduino IDE?
  20. J

    Using ILI9341_t3.h, tft.begin() causes reboot using Teensyduino 1.59.0 but works fine under 1.58.2.

    I ran into an issue the other day when I finally gave in to the Arduino IDE asking if I wanted to update to the latest version. Recompiling the project I'm working on under Arduino 2.32, the Teensy to gets stuck in a reboot loop by apparently crashing when initializing the screen with a call to...
Back
Top