Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 8 of 8

Thread: Good way to make a teensy based electric piano

  1. #1

    Good way to make a teensy based electric piano

    I've been working on a project fixing up a Yamaha Clavinova clp-123 piano I got hold off with a burnt out motherboard (3 of the ICs are overheating and no sound, so that is at least my assumption).

    I've replaced the motherboard with a teensy 3.6 and figured out how to scan the keys (key array like a standard keyboard with two buttons per key to infer velocity) and output midi to a laptop, and now to the big challenge, run the whole thing directly without a laptop in the loop (I figured out the internal amplifier connections, and that still works). Aim is to make it sound like an actual piano and not like most synth projects I've seen that shift between sine, square and triangular waves.

    I have tried using the wavetable synthesis library, it sort of works but still not happy with it, so was hoping for some suggestions.

    Is there a better solution than using wavetable synthesis for the instrument part to play sound fonts? I've been using the piano from the "GeneralUser GS v1.471.sf2" sound font, which encodes to the smallest file with the sound font conversion software, and I still can only use about 2/3 of the instrument codes before memory runs out, no option for multiple instruments, and I'm not very happy with the sound as well.
    Willing to use a hardware solution rather than just he teensy. I thought of piping the midi out to a raspberry pi, but it's not a great solution due to hardware limitations. The power button on the piano cuts the power (essentially pulling the cord), which the raspberry won't be happy about, and the boot times on the raspberry are also much longer than I'd look.

    Is there a way with the wavetable synthesis software to play with the decay rate of the note? When I let go of the key it take probably 2-3 seconds until the sound dies out, on the laptop it's probably 0.1 seconds. I tried playing a note with amplitude 0, instead of calling stop, it sort of works but seems to cut out slightly too abruptly.

    Also, how many channels (simultaneous keys) would be plausible with the teensy 3.6? (still trying to workout the buffer management for multiple keys on the teensy)

    Thanks for any suggestions and sorry for the long scroll

  2. #2
    Senior Member oddson's Avatar
    Join Date
    Feb 2013
    Location
    Isle in the Salish Sea
    Posts
    1,138
    There is a wavetable object in the audio library.

    https://www.pjrc.com/teensy/gui/?inf...SynthWavetable


    Watch this before trying the audio library:

    https://m.youtube.com/watch?v=wqt55OAabVs

  3. #3

  4. #4
    Hi @laughingrice,

    as MarkzP mentioned: MicroDexed (a FM-synth compatible synth). But better using the repo at codeberg: https://codeberg.org/dcoredump/MicroDexed.

    Another one: https://codeberg.org/dcoredump/MicroMDAEPiano. It's a nice Rhodes simulation.

    Currently both are not complete, but I am working hard to get them usable this year. Both are stable, but some features are missing yet. I think MicroMDAEPiano will be better usable in some weeks. I am currently working hard on a (simple) UI for tuning the sounds (and storing the setup in EEPROM).

    MicroDexed is a little step further: The simple UI is working (you need a cheap china I2C-LCD) and it reads SYSEX compatible soundbanks of a famous japanese FM synth ;-)

    Both are designed for TeensyMIDIAudio (https://codeberg.org/dcoredump/TeensyMIDIAudio) what is nothing special, but a complete board with MIDI-/Audio-/USB-IO and Encodern/Display as UI (you need a Teensy(-3.6) and the Teensy-Audio adapter). But I think it is not very complicated to get the code also running on other setups (e.g. TGA (https://www.pjrc.com/tga-pro-guitar-audio-shield/) where I got MicroMDAEPiano running)).

    DISCLAIMER: The engines of those programs are not written by myself! MicroDexed is using the engine of Dexed VST and MicroMDAEPiano from MDAEPiano - not a big surprise with these names! Thanks for the programmers for those really nice piece of software and releasing it as OpenSource!!!

    If you have further question, don't hesitate to ask.

    Regards, Holger

    P.S.: Just forgot to say: a simple audio demo of both is located here

  5. #5
    Thanks Holger!

    Building a MicroDexed is on my project list for this year. I will definitely pull sources from the Codeberg repo from now on.
    The work you did on porting these projects to the Teensy is very inspiring, and a great tribute to the capabilities of the T3.6

    Marc

  6. #6
    Quote Originally Posted by MarkzP View Post
    Thanks Holger!

    Building a MicroDexed is on my project list for this year. I will definitely pull sources from the Codeberg repo from now on.
    The work you did on porting these projects to the Teensy is very inspiring, and a great tribute to the capabilities of the T3.6

    Marc
    Hi Marc, many thanks! I hope to get MicroDexed "ready" the next weeks, because my next project will be a SYSEX-programmer for the DX7. It will be based onto a NEXTION touch display and I am very curious about playing around with those displays...

    Regards, Holger
    Last edited by C0d3man; 05-15-2019 at 02:20 PM.

  7. #7
    Quote Originally Posted by laughingrice View Post
    ...
    Is there a way with the wavetable synthesis software to play with the decay rate of the note? When I let go of the key it take probably 2-3 seconds until the sound dies out, on the laptop it's probably 0.1 seconds. I tried playing a note with amplitude 0, instead of calling stop, it sort of works but seems to cut out slightly too abruptly.

    Also, how many channels (simultaneous keys) would be plausible with the teensy 3.6? (still trying to workout the buffer management for multiple keys on the teensy)
    Samplers are setting looping points for long notes (or for a piano sample for a decaying note). As long as you have no support for this in your wavetable player, you need lots of memory (IMHO).

    Quote Originally Posted by laughingrice
    Also, how many channels (simultaneous keys) would be plausible with the teensy 3.6? (still trying to workout the buffer management for multiple keys on the teensy)
    ...
    With MicroMDAEPiano you may get up to 32 voices (untested but maybe possible). MicroDexed can play 16 voices simultaniously.

    Regards, Holger

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •