New test version

All about the development and use of SynthFont2
Post Reply
Admin
Site Admin
Posts: 671
Joined: Tue Mar 17, 2015 9:22 am

Re: New test version

Post by Admin »

https://dl.dropboxusercontent.com/u/173 ... t2020C.rar
  • Deleting a massive amount of MIDI events can cause the program to crash due to running out of undo memory. -- Tried to fix once more
  • Hanging occurs if you happen to click the "stop" button before the "sorting events" stage. -- Fixed
  • Some MIDI files may cause soundfonts to not switch over properly during playback if you say no to splitting tracks. -- Fixed (hack), but not the final solution
  • Note activity doesn't appear while rendering to audio files. -- Fixed
  • Program's interface becomes unresponsive during scrolling of note events. -- Fixed (hack), but not the final solution
  • Percussion channels are treated as non-percussion when using a soundfont with no percussion presets. -- Fixed
  • DLS sound files are not sustaining notes properly. -- Fixed
  • Switching between large soundfonts during speaker playback causes wait cursor to remain until playback is stopped. -- Fixed?
  • Issues to be addressed later (for version 2.0.2.1)
    • Has a track limit of 255
    • Reaction to Portamento events are a little too strong. -- ? More tests required.
    • Help function is unavailable
    • Shift-clicking the open program window from the taskbar does not open a new instance of the program
    • Changing song tempo during playback causes playback progress indication to become inaccurate
    • MIDI input monitoring mode - Integrate SynFonOne to replace current functionality
    • External MIDI Output lags very easily under Black MIDI workloads
ray890
Posts: 40
Joined: Tue Mar 17, 2015 4:27 pm
Contact:

Re: New test version

Post by ray890 »

2.0.2.0C, this version has introduced a new bug:
  • Wrong presets are played when changing soundfonts during playback
And, heres the usual batch of bug findings I discover through my testing, originating from earlier builds:
  • Pressing "x" on the "save midi file changes?" dialog box acts as a "No" button rather than "Cancel" (Since 2.0.1.1)
  • Clicking "Remove surplus events (marked) during playback causes slower tempo and various other glitches when playing (Since 2.0.1.2B)
  • Click and dragging the mouse up/down quickly on the pianoroll's on-screen piano right after going to the piano roll tab generates an error (Since 2.0.1.2V)
  • No note off events are seen in the event viewer when note on events are hidden (Since 2.0.2.0B)

Anyway, with the undo bug, its still not fixed yet, but further investigation seems to reveal the cause for the crash is a little different than I thought (well with 2.0.1.2R+ anyway).

What I've done to reproduce this crash is, using the same autoclicking program, go to the event editor on a track with more than 4k notes, and autoclick at the same rate of 1 per 1/100sec, with the mouse positioned over the delete events button until it crashes many events later.

This time, I tried autoclicking delete about 100 times and giving 10 second breaks in between, and apparently that caused the event list to flash for several seconds, and if I kept pausing and waiting out the flashing period occasionally, I'm not getting the crashing it seems, as opposed to continuously autoclicking for a long time. Also if I slow down (underclock) my cpu, the crash seems to trigger quicker. Because of this, I'm guessing the crash is occurring due to an illegal attempt of trying to delete the next event while the previous event is still being deleted.

DLS files now have a fade out with held notes but it's miles too long and off from how it's supposed to sound.

Also as a quick suggestion, in the event editors "find and replace" section, I'd like to see a list box beside each of the three input boxes allowing the user to select between "equal to", "less than", or "more than" for the "note #", "velocity", and "length".


Edit: Oh, and along with the new "Preset not found" message, it may be helpful to have something like this: An option called "When encountering missing preset," and give the user the option to choose between "Ask me [default], "Automatically pick closest preset", "Automatically pick closest preset ..and mute percussion channels", "Automatically pick closest preset ..and use GM for percussion channels", and "Always use GM".
This, and here's a concept of how I think the "set preset" functionality/dialog can be improved.
Admin
Site Admin
Posts: 671
Joined: Tue Mar 17, 2015 9:22 am

Re: New test version

Post by Admin »

https://dl.dropboxusercontent.com/u/173 ... t2020D.rar
  • Wrong presets are played when changing soundfonts during playback. -- This was due to the hack I came up with to make tracks with events (notes) for multiple midi channels work without splitting the tracks. I thought it worked - I still don't know why it doesn't.The hack was so simple. It would have been nice if it worked. Anyway, while looking into it i did find another, almost disastrous bug: program changes not "belonging" to a track ("wrong" midi channel) were removed as "redundant" if the track was not split. Naturally they are not redundant if there are notes for that midi channel. Fixed.
Other items in rey890's list:
  • Pressing "x" on the "save midi file changes?" dialog box acts as a "No" button rather than "Cancel". -- I'm not 100% sure I know which dialog box you mean. But I removed the system [x] button from the dialog I believe you mean. (There's no Cancel button there, however).
  • Clicking "Remove surplus events (marked) during playback ... -- The button was supposed to be disabled during playback. Fixed.
  • Click and dragging the mouse up/down quickly on the pianoroll's on-screen piano ... generates an error. -- Yes. there were actually a bunch of problem with the particular keyboard. I've tried to fix them, but there may be problems still.
  • No note off events are seen in the event viewer when note on events are hidden.. -- Yes, this is now so by design. Simply because the note off events are virtual. It is possible to have them displayed still, but that requires some more code. I'll leave it for later.
  • "undo bug" or "delete note" bug in the events list. -- Yes, your finding is correct. The solution (for now) is to disable the delete button while working on the last deleted note.
  • DLS files now have a fade out with held notes but it's miles too long and off from how it's supposed to sound. -- Indeed. Fixed once again!
The quick suggestion for the event editors "find and replace" section will not make it into this release. Maybe later.
ray890
Posts: 40
Joined: Tue Mar 17, 2015 4:27 pm
Contact:

Re: New test version

Post by ray890 »

Alright, it looks we're incredibly close to being ready now, you've fixed at least 15 significant bugs that version 2.0.1.1 had, and it looks like there's only simple bugs remaining to work on:
  1. FIXED - Rendering of.gig sound files cause incorrect and demonic sounding results (Since 2.0.1.2R)
  2. FIXED - Switching to a sample rate of 96000hz or higher in between playback causes infinitely sustained notes and abnormal velocity levels [Video] (Since 2.0.1.2R)
  3. FIXED - Lower sample rates cause Amount of produced voices to be excessive/unequal [Video] (Since 2.0.1.2R)
  4. FIXED - Deleting all events based on a search for "Any Value" on everything may cause only a fraction of found events to delete (Since 2.0.1.2S)
  5. FIXED - Attempting to delete all events based on a search for "Any Note Value" produces an error message (Since 2.0.1.2S)
  6. This MIDI file causes soundfonts to not switch over during playback (Since 2.0.1.2V)
  7. FIXED - Clicking “MIDI Input” can cause the program’s interface to turn white and various other GUI glitches (Since 2.0.1.2V)
  8. FIXED - Note activity doesn't appear in MIDI input mode (Since 2.0.1.2W)
  9. FIXED - Playing a midi file right after deleting a batch of notes cause an error message after pressing stop (Since 2.0.2.0B)
  10. Controls in the edit event section of the event editor are do not indicate they're disabled during playback (Since 2.0.1.1)
  11. Set sample rate other than 44100hz does not automatically apply itself upon program launch until sample rate option is re-selected (Since 2.0.1.2R)
  12. Attempting to playback a MIDI file through an external MIDI device that doesn't work causes the program's interface to turn white and hang (Since 2.0.1.2V)
  13. Clicking virtual keys with twice cause notes to start releasing while being held down (Since 2.0.1.2Y)
The MIDI file I've used to re-produce the sample rate bugs can be found [Here].

When I came across the fixed virtual keyboard, I noticed that the notes were more responsive (As it seems you slightly increased the virtual-keyboard data limit in 2.0.2.0D). My first instinct upon realizing this was to test the MIDI input, soon enough I've discovered how closely related the virtual-keys engine is with MIDI-in's engine. Version D has definitely improved with the MIDI input note pickup rate!

I think I actually know how you could get MIDI IN working right; just raise the same data limit you raised before even higher to something like 600 notes per second or higher to make note playback smooth, and queue MIDI Messages that exceed the limit to be executed as soon as possible within the limit to stop skipping execution of certain MIDI Messages. Now, if those 2 things are added in and work, I feel some of the workarounds you've done to the Virtual Keyboard infinite-note issues may become redundant right away.

Edit: Concerning the dialog boxes, I was actually hoping for the cancel functionality to take place in those x buttons instead of disappearing entirely. Yes you did find the right dialog box, but I also meant the "create backup copy of midi file?" box while saving. This is partly for following standard design practice and partly to give the opportunity to cancel an action like if I were to close synthfont by mistake, I'd have the chance to pick back up without saving nor discarding my work.

Edit #2: I found that the tempo scaling bug is a little easier to demonstrate with a shorter midi file, pay attention to the green progress indication fill, time, and tempo setting: video

Edit #3: I think you should disable the spacebar-to-stop shortcut during "playing to file". I've already pressed spacebar in the window by mistake twice during a long rendering job and had to then restart my rendering

Edit #4: More bug findings

Edit #5: 3 more bugs found. Hopefully this'll be the last batch of bugs to make it on the list.

Edit #6: Oop, one more bug finding

Edit #7: Two more discovered bugs, edited description of >96000 sample rate bug

Edit #8: Decided to make list numbered for readability

Edit #9: Marked issues fixed in 2.0.2.0E

Edit #10: Pushed unfixed issues to the bottom of the list
Last edited by ray890 on Sun Jun 14, 2015 12:27 am, edited 10 times in total.
Admin
Site Admin
Posts: 671
Joined: Tue Mar 17, 2015 9:22 am

Re: New test version

Post by Admin »

Thanks ray890. I think it's starting look like the end of the tunnel. Now, I'm out of office for almost a week, so feel free to dig for more during this time.
TheTrustedComputer
Posts: 4
Joined: Thu Jun 04, 2015 7:52 pm

Re: New test version

Post by TheTrustedComputer »

Hi there! TheTrustedComputer here. I am one of the head member of the BMT. There are some bugs and/or glitches I found on the original SynthFont1 in the Piano Roll interface myself:

  • 1) Resizing tracks will sometimes hang SynthFont until terminated in Task Manager.

    2) "Deleting all or selected notes" button deletes EVERY MIDI event instead of note on and off events if the warning doesn't show.

    3) Notes don't resize but still visually resizes with the paste dialog open.

    4) Deleting and then un-highlighting an already highlighted note will mess up its note duration considerably.

    5) Immediately clicking Stop while the engine still rendering destabilizes SynthFont. (May of been fixed by my reading)

    6) Cannot edit some MIDI events like the pitch-bend events via MIDI event editor tab.

    7) Track name order kept intact while a new track being created and moved up instead of its corresponding track name.

    8) NOT BUG/GLITCH: Implement MIDI controller events that are listed as "NOT USED."
So if you can, please fix those bugs or glitches as soon as you possibly can before you release SynthFont2 and get busy. Thanks!
Admin
Site Admin
Posts: 671
Joined: Tue Mar 17, 2015 9:22 am

Re: New test version

Post by Admin »

Hi TheTrusted..., You say
...bugs and/or glitches I found on the original SynthFont1...
Do you mean SynthFont1 or SynthFont2? Or do you mean BOTH SynthFont1 and SynthFont2?

Due to time constraints and other duties I may need to choose to fix only some of these bugs as I need to get version 2.0.2.0 out soon. SynthFont1 will have to wait.
TheTrustedComputer
Posts: 4
Joined: Thu Jun 04, 2015 7:52 pm

Re: New test version

Post by TheTrustedComputer »

Ok let me get this straight...

The bugs I found in SynthFont1 and probably lingered in SynthFont2 beta versions, I will like them to be fixed in by the time you release SynthFont 2.0.2.0. Since my trial period expired while testing for flaws, I couldn't report bugs I found in any of the betas. So therefore I believe it's in both.
Admin
Site Admin
Posts: 671
Joined: Tue Mar 17, 2015 9:22 am

Re: New test version

Post by Admin »

If you are prepared to do some more testing, I will happily provide you with a registration code. Send me an email.
Admin
Site Admin
Posts: 671
Joined: Tue Mar 17, 2015 9:22 am

Re: New test version

Post by Admin »

Here is the next version: https://dl.dropboxusercontent.com/u/173 ... t2020E.rar
  • Controls in the edit event section of the event editor are do not indicate they're disabled during playback- Still to be investigated
  • Rendering of.gig sound files cause incorrect and demonic sounding results - fixed
  • Deleting all events based on a search for "Any Value" on everything may cause only a fraction of found events to delete - fixed
  • Attempting to delete all events based on a search for "Any Note Value" produces an error message - fixed
  • This MIDI file causes soundfonts to not switch over during playback- not yet fixed. The file must be split into more tracks.
  • Clicking “MIDI Input” can cause the program’s interface to turn white and various other GUI glitches- fixed
  • Attempting to playback a MIDI file through an external MIDI device that doesn't work causes the program's interface to turn white and hang- cannot reproduce this. Any suggestions?
  • Note activity doesn't appear in MIDI input mode - fixed
  • Clicking virtual keys with twice cause notes to start releasing while being held down - fixed
  • Playing a midi file right after deleting a batch of notes cause an error message after pressing stop - cannot reproduce this
  • Switching to a sample rate of 96000hz or higher in between playback causes missing and infinately sustained notes - fixed
In this version I have separated the live input engine from the midi file playback engine. I have kind of brought in the engine from SyFonOne. Only kind of as SyFonOne does not support VST instruments, VST Fx busses or track layers. So the engine is not the same.

The midi input port is polled at about 50 times per second. Raising it to 100 times should be easy and possibly help a little bit.

Concerning the dialog boxes ... - I have added Cancel to a few more of them, as per your suggestion.

The tempo scaling bug is is still not yet fixed. I might choose to leave it until later.

I think you should disable the spacebar-to-stop shortcut during "playing to file" - done.


TheTrustedComputer had some thoughts, of which I have been able to reproduce and fix only one:

2) "Deleting all or selected notes" button deletes EVERY MIDI event instead of note on and off events

These two are missing features:
6) Cannot edit some MIDI events like the pitch-bend events via MIDI event editor tab.
and
8) Implement MIDI controller events that are listed as "NOT USED."
I will leave them until later.
I will probably NEVER have support for all 100+ MIDI controller events partly because many of them lacks a clear specification, for example, what would you expect Breath (#2 for coarse level) or Effect #1 (#12, coarse) to do? I am all ears.
Post Reply