TOP Contributors

  1. MIKROE (2784 codes)
  2. Alcides Ramos (405 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (133 codes)
  5. Bugz Bensce (97 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (141691 times)
  2. FAT32 Library (74759 times)
  3. Network Ethernet Library (59208 times)
  4. USB Device Library (49224 times)
  5. Network WiFi Library (44996 times)
  6. FT800 Library (44525 times)
  7. GSM click (31196 times)
  8. mikroSDK (30100 times)
  9. microSD click (27580 times)
  10. PID Library (27537 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
mikroSDK Library

USB-MIDI Demo

Rating:

0

Author: MIKROE

Last Updated: 2024-07-09

Package Version: 2.0.0.8

mikroSDK Library: 2.0.0.0

Category: USB

Downloaded: 198 times

Not followed.

License: MIT license  

The application demonstrates USB MIDI functionality.

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "USB-MIDI Demo" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "USB-MIDI Demo" changes.

Do you want to report abuse regarding "USB-MIDI Demo".

  • Information
  • Comments (0)

mikroSDK Library Blog

USB MIDI

Code developed on UNI-DS v8 and it can be used on other MIKROE development boards as well. Code was developed with purpose of easier understanding functions for USB Musical Instrument Digital Interface (MIDI).



Code description

Depending on the numbers in the note_sequence array, different melodies will play. By default there is a "Happy Birthday" melody playing.


Hardware Support

image

This code was developed on UNI-DS v8 board. For this hardware to work according to program, it is necessary to:

  • Pull USB/UART switches that turn on PSW and ID lines (in the BOARD SETUP part, on picture -> bigger red square on the right);
  • Connect USB-C to USB connector (in the USB part, on picture -> smaller red square on the right);

Functions Description

All functions used in main project are located in MikroSDK.USB.Tiny and MikroSDK.USB.HW.

Functions in main file:

  • bool tusb_init(void)
    • initializes device/host stack;
  • uint32_t tud_midi_available(void)
    • gets the number of bytes available for reading;
  • bool tud_midi_packet_read(uint8_t packet[4])
    • reads event packet;
  • uint32_t tud_midi_stream_write(uint8_t cable_num, uint8_t const* buffer, uint32_t bufsize)
    • writes byte stream;

Software Support

We provide demo code for testing all MIDI functions contained in libraries MikroSDK.USB.Tiny and MikroSDK.USB.HW, available in mikroSDK 2.0.

In order to make this example work, proper clock setup is needed. To create a setup with the adequate clock scheme, follow these steps:

  1. Click on Setups and select New.
  2. Choose GCC ARM or RISC-V GNU compiler.
  3. Choose the board you are using.
  4. Choose the MCU that has USB functionality and click Advanced to enter clock configuration window.
  5. In the Config scheme field choose the option with _USB in the end.
  6. If there is no such option, then either USB for this MCU is not supported in current version of SDK, or this MCU doesn't have USB functionality.
  7. Complete the setup.
  8. Program the MCU with created setup.
  9. Download MIDI-OX application if using windows OS.
  10. Open MIDI-OX application and you will be able to hear the melody that you programmed.
  11. If you have an error No MIDI devices when you're opening MIDI-OX, reset the MCU.
  12. If you see the MIDI notes on the screen, but don't hear the melody, go to Options -> MIDI Devices and choose Microsoft GS Wavetable Synth in the MIDI Outputs field.

ALSO FROM THIS AUTHOR

AWS IoT Click

0

AWS IoT Click is a compact add-on board that allows users to easily connected to AWS IoT services and securely interact with cloud applications and other devices. This board features the ESP32-C3-MINI-1-N4-A, a small 2.4GHz WiFi (802.11 b/g/n) and Bluetooth® 5 module from Espressif Systems that use ESP32C3 series of SoC RISCV single-core microprocessor (ESP32-C3FN4) with 4MB flash in a single chip package. The module uses UART communication alongside several other features like standalone possibility via USB interface, firmware boot, JTAG for debugging, and others.

[Learn More]

Grid-EYE 2 Click

0

Grid-EYE 2 Click is a compact add-on board designed for thermal imaging and motion detection applications. This board features the AMG883543, an infrared array sensor from Panasonic with a 90° viewing angle and an 8x8 pixel matrix that measures temperatures from 0°C to 80°C with a resolution of 0.25°C. The sensor can detect objects up to 5 meters away and outputs temperature data via a digital interface. The board also supports the Click Snap feature, allowing the main sensor area to be detached for flexible positioning.

[Learn More]

PIXI click

5

PIXI click is equipped with MAX11300 IC from Maxim Integrated, which features Maxim Integrated's versatile, proprietary PIXI technology - it is the industry's first configurable 20-channel mixed-signal data converter.

[Learn More]