The topic of the thesis is the design and implementation of a module, which is able to establish connection between two USB-MIDI devices, to provide the possibility of communicating with each other. With the use of conventional MIDI interface, this is not an issue, MIDI devices can be linked via a single cable, but USB as the physical layer of MIDI communication is now increasingly used by manufacturers, thus making direct connection of the same devices impossible.
After clarifying the needed terms and requirements to understand and solve the problem, I have examined the possible ways of implementation. Considering the time and resources available to me, I have chosen the right construction and commenced the necessary hardware design work.
I specified two types of module. One of them is suitable for the USB-MIDI communication only, and the other is an expanded version of this with conventional MIDI interface and daisy chain capability in case of multiple modules in one system. In the thesis I aimed at the implementation of the first version, but from the hardware point of view, making the extended functionality does not take much more time than the minimal necessary, and the subsequent modification of the hardware is significantly more challenging than the modification of the software, so I decided to prepare the hardware for future functional extension, which means the design and implementation of requisite auxiliary circuits.
After making the hardware I acquainted with the embedded software development environment, and then I started the development of software. After describing the operation of the developed final version software, I explained the long way I had to tour for it, the problems and their solutions, which finally led from the first attempts failures to the successful implementation of the minimum functionality.
In closing, I summarize the lessons learned from the work done and my future plans with the module, including the already mentioned function expansion and the opportunities of improvement to increase efficiency.