Following on from getting midi working on my pc, I wanted to look at programming options for it. Python seemed a decent candidate to start with - a scripting language with a sizable community, so there was bound to be existing libraries for it. I found python-rtmidi and decided to give it a go. It installs the C++ RtMidi classes and a Python wrapper around them.
I initially installed it into my WSL installation of Ubuntu. However that didn't work - it couldn't see the native Windows midi device drivers. There is probably a way to fix that but I didn't want to waste much time on it until I has proven that the Python/Midi combo worked at all on Windows.
So I installed Python natively on Windows along with Pip. After installing the python-rtmidi package I ran some of the test scripts and it worked straight away. It was able to send sounds to the keyboard to play and also read from the keyboard what keys were being pressed. It was good fun and would seem to me to be a great way to introduce kids who are musically inclined to programming.
→ posted on August 5, 2019music
I was messing about with Yousician and really enjoyed it. However using the audio option to detect notes wasn't really the best so I started looking at other alternatives. I was able to get my Yamaha Ypt-200 keyboard connected to my PC via a midi cable and use this as an input device for Yousician. I used a fairly cheap cable from Amazon to connect the keyboard to the PC. Windows 10 auto detected the cable and set it up automatically. There was just one setting to enable on the keyboard - that was to disable local sound and have everything come through the PC. AFter that when I went into Yousician's settings I was able to select the midi option for input.
One problem I had initially was that no key was being detected at all. I had the midi cable connected incorrectly. The cable splits into two midi connectors and I just plugged them in randomly into the sockets on the keyboard. However these need to go into the correct ports - one is for input and one is for output. Swapping these around allowed the keys to be detected by Yousician and from there it worked fine.
There does seem to be a bit of lag when pressing the keys. It's not consistently present and most of the time seems to work. However I tried to install Asio4ALL software to try to fix this. The lag was greatly improved but it messed up the sound in other applications and I couldn't manage to configure it correctly and had to uninstall.
When it works I really like it. I have a Dell 2 in 1 and I can flip that over and put that on the keyboard's music stand. It's unfortunate that the lag ruins a great program. I've tried it with some other instruments - using a guitar via the RockSmith cable was fine. However a Ukelele using the laptop microphone was horrific - so much lag - every note was detected as late. I really can't understand why they won't add a proper calibrate function to identify the delay between your instrument and their notes. Guitar Hero on the PS2 had this over 10 years ago. Such a shame.
→ posted on July 26, 2019music