Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add host midi example (IDFGH-11428) #12566

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Wunderbaeumchen99817
Copy link

This new example implements midi functionality with the ESP acting as a usb-host device.

It connects to the connected usb-midi-controller & prints the received signals in the serial monitor.

@CLAassistant
Copy link

CLAassistant commented Nov 11, 2023

CLA assistant check
All committers have signed the CLA.

Copy link

Messages
📖 Good Job! All checks are passing!

👋 Welcome Wunderbaeumchen99817, thank you for your first contribution to espressif/esp-idf project!

📘 Please check Contributions Guide for the contribution checklist, information regarding code and documentation style, testing and other topics.

🖊️ Please also make sure you have read and signed the Contributor License Agreement for espressif/esp-idf project.

Pull request review and merge process you can expect

Espressif develops the ESP-IDF project in an internal repository (Gitlab). We do welcome contributions in the form of bug reports, feature requests and pull requests via this public GitHub repository.

  1. An internal issue has been created for the PR, we assign it to the relevant engineer
  2. They review the PR and either approve it or ask you for changes or clarifications
  3. Once the Github PR is approved, we synchronize it into our internal git repository
  4. In the internal git repository we do the final review, collect approvals from core owners and make sure all the automated tests are passing
    • At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
  5. If the change is approved and passes the tests it is merged into the master branch
  6. On next sync from the internal git repository merged change will appear in this public Github repository

Generated by 🚫 dangerJS against b28af15

@espressif-bot espressif-bot added the Status: Opened Issue is new label Nov 11, 2023
@github-actions github-actions bot changed the title add host midi example add host midi example (IDFGH-11428) Nov 11, 2023
@chipweinberger
Copy link
Contributor

chipweinberger commented Nov 14, 2023

+1, this is very useful!

typo: aciton_close_dev

@chipweinberger
Copy link
Contributor

@Wunderbaeumchen99817 , if they don't merge this, you should make a repo called "ESP32 Usb Midi Example".

It would be great for people to google and find it.

@chaabanihoussem
Copy link

Hi, how does this works?
so I flashed esp32s3 board and then I couldn't see it as a midi on ubuntu.

what I'm actually trying to do is to build a device that acts as a MIDI host when it's attached to a MIDI device and as MIDI device when it's attached to a MIDI host. The problem I'm trying to solve is that the esp32s3 flashed with MIDI device example now appears when attached to windows/macos/android but doesn't appear when attached to music instrument (korg keyboard).

Any idea will help
Thanks

@roma-jam
Copy link
Collaborator

@chaabanihoussem,

In current PR there is a simple MIDI host. So if you are flash it and then attach it to the Ubuntu host - it is not going to work, as you connected two hosts together.

For MIDI device example, which does not appear - which example did you try?

@chaabanihoussem
Copy link

@roma-jam thank you getting back

I tried the tusb_midi under examples/peripherals/usb/device and that works fine when connected to a host.

I'm now trying to connect the esp32s3 to a MIDI device and send MIDI cmds to it as
tud_midi_stream_write(cable_num, note_off, 3);
does in the midi device example.

Is there a way the host can send midi cmds to the device?
maybe something like tuh_midi_stream_write(cable_num, note_off, 3); ?

Thanks

@roma-jam
Copy link
Collaborator

@chaabanihoussem,

Unfortunately, we don't have MIDI class support.
All supported classes could be found here: https://github.com/espressif/esp-usb/tree/master/host/class

Right at the moment we don't have a plan to implement MIDI host class device, thus if you need MIDI class implementation, it is possible to design it using the class drivers as a reference by the link I have mentioned before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Opened Issue is new
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants