# Foojay Podcast #54: Music and MIDI with Java and Kotlin

> Within OpenJDK, there is a whole Java package dedicated to MIDI communication and data handling. Is it up to date? Are there better approaches now? And what can we do with music, Java, and Kotlin?

- URL: https://foojay.io/today/foojay-podcast-54/
- Published: 2024-06-24
- Authors: Frank Delporte, Geert Bevin
- Categories: Desktop, Java Core, Kotlin, Podcast


MIDI is a universal standard for communicating between musical instruments and computers.

Within OpenJDK, there is a whole Java package dedicated to MIDI communication and data handling. Is it up to date? Are there better approaches now? And what can we do with music, Java, and Kotlin?

Let's find out...

## Video

{{< youtube tHKZA9yqIVM >}}

## Podcast Apps

You can listen and subscribe to the Foojay Podcast on:

* [Spotify](https://open.spotify.com/show/6CpTfgn9LirzJGAtc4ICdQ)
* [Apple Podcasts](https://podcasts.apple.com/be/podcast/foojay-io-the-friends-of-openjdk/id1652281304)
* And most others...

## Guests

### Atsushi Eno

* <https://atsushieno.github.io/>
* [@atsushieno@g0v.social](https://g0v.social/@atsushieno)
* [@atsushieno@fedibird.com](https://fedibird.com/@atsushieno)

### Geert Bevin

* <https://www.linkedin.com/in/gbevin/>
* <https://gbevin.com/cv/>
* <https://www.uwyn.com/>
* <https://www.gbevin.com/>

## Content

00:00 Introduction of the topic and guests  

04:27 What is MIDI?  

Learn more about MIDI and the javax.sound implementation in OpenJDK:  
<https://docs.oracle.com/javase/tutorial/sound/overview-MIDI.html>  
<https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/sound/midi/package-summary.html>  
<https://github.com/openjdk/jdk/tree/master/src/java.desktop/share/classes/javax/sound/midi>  
<https://www.baeldung.com/java-packages-vs-javax>  

09:53 MIDI Polyphonic Expression (MPE)  
<https://roli.com/mpe>  
<https://midi.org/midi-polyphonic-expression-mpe-specification-adopted>   
<https://midi.org/insights>   

11:23 Instruments require real-time systems  

15:18 Why Atsushi used Kotlin for ktmidi  
<https://github.com/atsushieno/ktmidi>  
<https://github.com/jazz-soft/JZZ>  
<https://github.com/thestk/rtmidi>  

Applications created with ktmidi: <https://github.com/atsushieno/ktmidi/discussions/14>  
[https://play.google.com/store/apps/details?id=org.androidaudioplugin.resident_midi_keyboard\&pli=1](https://play.google.com/store/apps/details?id=org.androidaudioplugin.resident_midi_keyboard&pli=1)  

23:31 Using ktmidi with JavaFX and the benefits of Kotlin  
<https://melodymatrix.rocks>  

25:00 Geert sticks to Java and loves the 6-month releases  

27:24 Apps created by Geert for various Apple devices  
<https://uwyn.com/midiwrist-unleashed>  

31:11 Atsushi uses MIDI to develop audio plugins  

32:34 Geert found back his love for Java and created Rife2 and BLD  
<https://rife2.com>  
<https://rife2.com/bld>  
<https://software.moogmusic.com/store>  

Erik Thauvin <https://www.linkedin.com/in/ethauvin/>   

43:13 How things just happen and finding a good open-source approach  
<https://codewithrockstar.com>  
<https://webtechie.be/post/2024-06-18-jfxinaction-christopher-schnick>  
<https://www.jdeploy.com>  

50:46 Conclusions

