Bug report and feature request

All about the development and use of SynthFont2
Post Reply
MaxZ
Posts: 4
Joined: Wed Jul 15, 2020 2:22 pm

Bug report and feature request

Post by MaxZ »

Hello everyone,

I'm using SynthFont 2 for quite some time now and still prefer it over all other similar programs I tried. Thanks for the work! However, SynthFont 2 has some really annoying issues, especially when using the MIDI Out feature.

My setup is the following:
  • Open MIDI file with SynthFont 2
  • Play most channels directly with SynthFont 2 using the SGMv2.01-Sal-Guit-Bass-V1.3 Soundfont.
  • Pass a few channels to loopMIDI, and send them via UART to my device using Hairless MIDI<->Serial Bridge.
  • My PC has an i7 4790K and a NVMe SSD which should make it more than powerful enough to run SynthFont. I'm not playing black MIDIs but pretty normal ones which are a few tens of kB in size. The issues described below occur with all files I tried. Even with very simple MIDIs containing just a hand full of notes.
Oh, and when I write "SynthFont" I actually mean SynthFont 2.

Here are the issues I encounter:
  1. When jumping around in the Track by clicking on the "timeline" in the "4 Plug & Play" Track, the MIDI output gets out of sync with the SythFont Audio output. And I'm talking about the order of half a second. Only way to get them back in sync is to hit the stop and then the play button.
  2. Another annoying thing is that the user interface directly affects the timing of the MIDI output. if I switch f.ex. to the piano roll tab, the MIDI output gets interrupted until the piano roll has loaded. Even when I move my mouse over the channel list in the plug n play tab, I can hear that the notes play irregularly.
  3. Dragging a MIDI file to SynthFont while a file is playing causes it to freeze some times. Even when paused it can mess things up. The file loads but nothing happens when hitting the play button. I can't close SynthFont either in that case and have to kill it with Task Manager. The only reliable way is to stop and only then load the new file. Which is annoying if you're "searching" through a couple midis and quickly want to listen a couple seconds of each.
  4. When pausing or stopping SynthFont sometimes sends a note on command after the all notes off command, causing a hanging note. I can see in the Hairless MIDI Serial log that it comes afterwards indeed. Seeing the other issues described above - which are clearly a problem in SynthFont itself, I'm fairly confident that this is not caused by loopMIDI or Hairless MIDI Serial. I have to start, and stop again to get rid of that note. The same thing happens when jumping around in the MIDI file with the timeline as described above.
  5. When I copied a Track Edit: on the piano roll page, the new track contained all the notes I wanted, but also a random amount of "all 0" commands at the beginning of the new Track. Timestamp 0, MIDI command 0, first and second data byte 0. The first time it were around 1500 (!) "0-commands", the second time "only" a few hundred. I couldn't delete them with the search function on the MIDI event page because it somehow deleted the other, useful events, too (and I already used this featues successfully on other events). In the end I could select and delete them on the "Copy/Paste/Move" page. Still annoying.
  6. While writing this post I found that I could not select multiple notes in the piano roll with CTRL. Right click on a key marks all the notes of that key, left click on a single note marks that note, but whenever I click on a note with CTRL, it marks it briefly and then unmarks all notes...
These problems aside I'd love to see a few features:
  1. It would be great if at least a few most basic keyboard shortcuts would work in the "3 MIDI events" list. I'd love to select multiple events with CTRL and Shift. Deleting events by hitting the "Delete" key would be nice, too. Copy paste even better. I know this can be done by switching to the "Copy/Paste/Move" page, but it is not nearly as practical to select, copy and paste some specific events there.
  2. Speaking about the Copy/Paste/Move page, it would be great to have the "Show these events" section from the "3 MIDI events" page. As of now you cannot select/unselect all event types at once.
  3. The "3 MIDI events" page allows to export the event list as text. It would be awesome if it was possible to import the file again. Why? Some modifications like the copy and paste action above would be easier with a good text editor like Notepad++. Export text, edit, import text, done.
  4. Same page, it is a bit annoying to hit the "Apply" button each time you make a change. I'd expect that hitting "Enter" would apply the events, too. If some people find that annoying for whatever reason, then it is maybe possible to add a checkbox "do not apply on ENTER" or something like that.
  5. Piano roll: If f.ex. I want to separate the melody from other chords on the track I have to select a lot of individual notes. In such cases I'd find it hugely useful to always be able to select with a box. Just allow the user to make "box" selection always available. In combination with "CTRL" I think it would be much easier to select a bunch of notes out of a track.
  6. Why can I only drag and drop MIDI files to the channel list on the "4 Plug and Play" page? Why can't SynthFont open them when dragging them on the Piano roll page? Or any other part of the UI that is not a channel list?
I hope this helps to improve SynthFont!


Kind regards,
Max
Last edited by MaxZ on Fri Jul 17, 2020 10:17 pm, edited 1 time in total.

Admin
Site Admin
Posts: 515
Joined: Tue Mar 17, 2015 9:22 am

Re: Bug report and feature request

Post by Admin »

Thanks Max!
MIDI out is - as you may have noticed - a much undeveloped feature. The main target has always been to support the internal synth and VST instruments. MIDI Out ought to be straightforward, but obviously it is not. One question: you say you route MIDI out through loopMidi and then from there to your external device. Do you mean to say that your device doesn't show up as a MIDI out device in SynthFont2? This may not at all be important, I'm mostly curious.

New features? Always! Thanks for those suggestions.

I'm on holiday now for a few weeks, so I cannot promise anything more at the moment.

MaxZ
Posts: 4
Joined: Wed Jul 15, 2020 2:22 pm

Re: Bug report and feature request

Post by MaxZ »

Thank you for the quick reply!

My device is a microcontroller. While it has USB functionality there is no MIDI library for it available, so if I want it to be recognized as MIDI device I‘d have to write my own USB stack for it - which is wayyy out of my comfort zone. But receiving serial data is super easy - especially since the on-board debugger has a USB to serial converter. That‘s the reason why I need that hairless MIDI<->Serial bridge program. And this program behaves like SynthFont, looking for a MIDI device. So to get the data from SynthFont to the serial bridge, I need loopMIDI as a connection between both. It sounds complicated but it actually is a two click solution that has been reliable for the last years.

If we‘re already slightly off topic, I may as well show what I‘m doing with that data on a microcontroller. It generates the control signal for a tesla coil, which then makes music with arcs! The first version was only capable of a single voice: https://www.youtube.com/watch?v=1MsIJOOHj8Q
(That's btw. SynthFont 1 playing in the background. I‘d have to test it, but I think its MIDI out was more stable than it is in SynthFont 2).

Currently I‘m developping a polyphonic version with more features. Unfortunately I can only do tests on a breadboard thanks to corona. Imagine each LED being a tesla coil ;)
https://www.youtube.com/watch?v=Tyts9u0le6A


Kind regards,
Max
Last edited by MaxZ on Fri Jul 17, 2020 10:20 pm, edited 1 time in total.

Admin
Site Admin
Posts: 515
Joined: Tue Mar 17, 2015 9:22 am

Re: Bug report and feature request

Post by Admin »

Do you mean to say that your device receives data through a standard RS232 port?

MaxZ
Posts: 4
Joined: Wed Jul 15, 2020 2:22 pm

Re: Bug report and feature request

Post by MaxZ »

It connects via USB but it identifies itself as COM port. Just like an Arduino f.ex.
If my PC had a RS232 port I could make it work with that, too.

Kind regards,
Max

Admin
Site Admin
Posts: 515
Joined: Tue Mar 17, 2015 9:22 am

Re: Bug report and feature request

Post by Admin »

I thought so. Anyway, I can write into SynthFont2 code to send MIDI data to any desired COM port directly.

MaxZ
Posts: 4
Joined: Wed Jul 15, 2020 2:22 pm

Re: Bug report and feature request

Post by MaxZ »

That would be awesome! Any chance to get this in SynthFont1, too? I already recommend it to other people in the tesla coil community but I think this would convince quite a few people.

Thank you!
Max

Admin
Site Admin
Posts: 515
Joined: Tue Mar 17, 2015 9:22 am

Re: Bug report and feature request

Post by Admin »

Interesting to learn about a Tesla coil community. Sure, the same code can be available in both versions. I wont be able to work much on it before August, though. (I have another project from which I can "borrow" much of the code I need, so it shouldn't be a major task).

I will need some specs from you, of course. I suggest we continue this discussion over email - to me, use: kenneth at synthfont dot com.

Post Reply