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

Thread: Touchscreen MIDI Controller

  1. #1
    Senior Member Blackaddr's Avatar
    Join Date
    Mar 2017
    Location
    Canada
    Posts
    176

    Touchscreen MIDI Controller

    When I started my Teensy Guitar Audio project, I really appreciated the discussion and feedback I got on the development thread. So let's try it again with my next project, a touchscreen MIDI controller!

    Here's the initial concept. Use the the 2.8" touchscreen here and build an interface board that contains the Teensy.

    I want to use it control my audio effects running on my TGA Pro board via MIDI, but it could be used to control any MIDI device from synthesizers to lighting. I'd like the graphical interface to be better than crudely drawn boxes and labels for buttons and switches. I'm planning to use sprites of knobs, switches, etc to give it a nicer look and feel.

    Planned features
    - rotary encoder knobs (with built in push button)
    - 5 pin MIDI in and output jacks
    - at least two 1/4" TRS jacks for connecting external expression pedals or footswitches (like this or this).
    - extra RAM as runtime sprite memory
    - extra FLASH for storing skins, sprites, presets, etc.
    - DC power supply and jack to switch between USB power and external power

    Here's a basic concept diagram showing the above.

    Any thoughts?

    Click image for larger version. 

Name:	touchMidi_concept.jpg 
Views:	144 
Size:	38.2 KB 
ID:	12480

  2. #2
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    18,203
    Maybe support "MIDI IN" by the USB host port?

  3. #3
    Senior Member Blackaddr's Avatar
    Join Date
    Mar 2017
    Location
    Canada
    Posts
    176
    Quote Originally Posted by PaulStoffregen View Post
    Maybe support "MIDI IN" by the USB host port?
    Great idea! The Teensy's USB MIDI library will make it easy to use the host (when connected) as a MIDI sink/source in addition to the external jacks. I freakin' love the various USB classes supported by the Teensyduino libraries.

  4. #4
    Senior Member Blackaddr's Avatar
    Join Date
    Mar 2017
    Location
    Canada
    Posts
    176
    To keep the PCB cost reasonable I had to stay inside the 10cm x 5cm form factor. As a result I could fit 2 rotary encoders and and two TS jacks in addition to the 2 MIDI DIN jacks.

    Here's the schematic.

    and a couple 3D renderings of the board (not all components have 3D models). The "empty" side will mostly be covered by the touchscreen with the two encoders on the left.
    Click image for larger version. 

Name:	teensy_TouchMidi_rev1_front.jpg 
Views:	37 
Size:	55.9 KB 
ID:	12607
    Click image for larger version. 

Name:	teensy_TouchMidi_rev1_back.jpg 
Views:	38 
Size:	64.1 KB 
ID:	12608

  5. #5
    Member
    Join Date
    Sep 2014
    Location
    South Dundas, Ontario, Canada
    Posts
    24
    Hmmm.... I may become interested in this project. Our church has an old Johannus OPUS 1100 organ that has a MIDI out only, which no one uses. I've often wondered what that port provides. Maybe just keypresses? Would your project allow reading a MIDI port and tell what is being received from a device like an organ? Perhaps my interest may lie in a MIDI with a diagnostic feature.

    Peter.

  6. #6
    Senior Member Blackaddr's Avatar
    Join Date
    Mar 2017
    Location
    Canada
    Posts
    176
    Quote Originally Posted by KOC62 View Post
    Hmmm.... I may become interested in this project. Our church has an old Johannus OPUS 1100 organ that has a MIDI out only, which no one uses. I've often wondered what that port provides. Maybe just keypresses? Would your project allow reading a MIDI port and tell what is being received from a device like an organ? Perhaps my interest may lie in a MIDI with a diagnostic feature.

    Peter.
    Yes, you should be able to see and decode all the MIDI messages send by the organ. You could maybe display them on the screen as text, or perhaps write them as MIDI files to the SD card?

    Here's a link I found about the MIDI file format. Doesn't seem too complicated if it's something you're interested in.

    https://www.csie.ntu.edu.tw/~r92092/ref/midi/

    If the organ puts out full MIDI information like velocity and maybe even aftertouch information, you could playback the recorded MIDI file on your computer using different VSTs for different organs to get the performance played on a different organ in a different size hall, etc. That might be kinda cool.

  7. #7
    Member
    Join Date
    Sep 2014
    Location
    South Dundas, Ontario, Canada
    Posts
    24
    Thanks for the link. I'll take a look.

  8. #8
    This sounds like a great idea. I was thinking of making something along the same lines but more of a UI for making music. Like a much simpler version of sunvox. I've currently got a perf board version of a teensy 3.6, audio shield, serial flash and a Gameduino 3. The gameduino has the FT810 GPU and can handle all the UI drawing which leaves more cycles and ram for audio processing on the Teensy. Here's some photos, without the gameduino mounted.

    Click image for larger version. 

Name:	IMG_20180122_075748-02.jpg 
Views:	35 
Size:	206.0 KB 
ID:	12723
    Click image for larger version. 

Name:	IMG_20180122_075807-01.jpg 
Views:	35 
Size:	124.4 KB 
ID:	12724
    Click image for larger version. 

Name:	IMG_20180122_075733-01.jpg 
Views:	37 
Size:	227.1 KB 
ID:	12725

    I need to get around to learning how to make a PCB.
    It would be nice to have a slimmer profile.

  9. #9
    Senior Member Blackaddr's Avatar
    Join Date
    Mar 2017
    Location
    Canada
    Posts
    176
    Looks cool! I should have my TouchMIDI proto pcbs in a week or two.

  10. #10
    Senior Member Blackaddr's Avatar
    Join Date
    Mar 2017
    Location
    Canada
    Posts
    176
    Finally getting back to this project while I wait for my next production batch of TGA Pro audio shields to come in.

    Click image for larger version. 

Name:	TouchMIDI_top.jpg 
Views:	9 
Size:	88.6 KB 
ID:	14394 Click image for larger version. 

Name:	TouchMIDI_side.jpg 
Views:	11 
Size:	89.0 KB 
ID:	14395

    I've mostly been writing platform code for the MIDI controller. So far I have:
    - setup a Controls class for managing the touch interface, rotary knobs, and switches
    - create a Preset class for handilng the name and a variable number of named MIDI controls.
    - calibrating the touch screen and storing data on the FLASH card
    - add JSON format processing for storing presets on FLASH
    - loading presets from the FLASH card
    - a basic navigation screen to move between presets.

    Still lots more to do! The project is on Github here
    Attached Thumbnails Attached Thumbnails Click image for larger version. 

Name:	TouchMIDI_top.jpg 
Views:	8 
Size:	152.5 KB 
ID:	14393  

Posting Permissions

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