1.5.0.0 Changelog
General
Windows 11 ARM users: Important! Midinous auto-installs BMIDI when it is first opened but apparently Windows 11 systems built on ARM don't automatically trigger the install of the driver. If you encounter an issue where the MIDI functions don't start, you may have to install the BMIDI driver yourself through the 3rd Party Installers folder in the install directory. Go to Midinous in your Steam library, right click, go to "Manage > Browse Local Files" to find the directory. Run the BMIDI installer found there.
Added a "Hide Labels" button to the toolbox allowing you to turn off labels if there are a lot of them, or if you simply don't want to see them
Added better context to log messages. They will be displayed with a prefix of WARNING, ERROR, or INFO and removed the need for log_error and log_full. everything will now go into the log.txt file. The other two log files will be deleted when starting Midinous
Feedback system has been made more robust and secure
Save format has been changed to be actual JSON. The advantage of this is easier consumption in utilities and actual recognized JSON. The disadvantage is that save files opened in 1.5 won't be able to be opened in old versions of the program. If you wish to back up your saves, please do so before opening them in the new version.
Options format has also changed to be actual JSON. However please note this means settings had to reset. Hopefully this will be the last time.
Removed the "Toolbox" label as I felt this was redundant, and it allowed for more room for controls
Fixes
Fixed Insen and Two-semitone Tritone scales having incorrect intervals
Fixed scale and beat division selector data not loading when opening documents
Fixed email feedback system not working
Fixed being able to set the group number buttons, effectively overwriting the ability to change Point Type when Place Mode is active
Fixed LED input color mixing and display. LEDs' colors can now be configured separately from the input color and everything will be mixed at the end of the chain
Fixed a crash related to having a CC point that was a start point and a muted point at the same time
Fixed a crash related to an internal object race condition. This wasn't clear to the user but has been fixed.
Fixed an issue where traveler injection wasn't working while the sequence was playing
Fixed an issue where the clipboard would be filled with nothing if no points were selected. Now it will preserve the last copy group
Fixed an issue where the logic network was not resetting once the sequece stopped. Functionality has also been added to reset the logic network while the sequence is stopped.
Fixed an issue where the Probability logic for Note Points wasn't working properly
Fixed an issue where probability wasn't showing up in the tooltip when hovering over a Note Point
Fixed an issue where window focus would break the tool selection until another tool was selected
Fixed a visual inconsistency with the size of the tooltip window when hovering over Points
Big Changes
Localization! Thanks to the generous community of users around the globe, Midinous is now partially translated into the following languages:
Arabic
German
English
Finnish
French
Greek
Italian
Korean
Dutch
Polish
Portuguese
Russian
Slovakian
Spanish
Swedish
Turkish
Ukrainian
Don't see your language above or does something look off? Join the localization team through the Official Midinous Discord Server and help to localize Midinous! As I receive help from localizers, more elements of the UI will be supported with the available languages.Note: Some elements of the UI might look strange while translated. I tried my best to accommodate the difference in size of text elements but your experience may vary.
New Stuff
Internal synth changes!
Synth settings have moved to their own tab in the options area
Each synth voice (by channel) now has a polyphony of 16, instead of there only being 16 total voices. This is to better represent the changes below
New wave shapes! 'Wavetables' are sets of data read in to make complex wave shapes. The selection of additional wavetables available currently are:
FM Bass
Blancmange
Weierstrass
Elliptical
CatenaryWavetable data files '.wtd' are an internal format of floating point values between -1 and 1 over a single period of a wave shape. These can be found in the new 'data/wavetables' folder in the install directory. I have written a custom script to make .wtd formatted files, which you can use to replace the available wavetable shapes in the program, and replace the provided "User 1" and "User 2" waveshapes. You can find that script here
I also took the liberty to convert all of the existing wave shapes to wavetables as well, and this has led to a much faster audio engine because the program doesn't have to do as much math to render out a wave (no calculation of each sample of a wave)!
New basic linear envelope features for the internal synth
Control Attack, Decay, Sustain, and Release (ADSR) values for each of the 16 internal voices
Attack: How fast the synth will rise in volume once a Point activates
Decay: How fast the synth will lower to the sustain volume
Sustain: At what volume the synth will hold until Release
Release: How fast the synth will lower in volume to 0 after the Sustain period
Added rudimentary control for mouse buttons, allowing you to change which mouse button is used for panning (for example). These options were moved to the Bindings tab in the options area
New objects! Switch, Counter, and Terminator
Gates, or Logic Gates, are now their own placeable type and no longer includes LEDs
LEDs now are their own placeable type rather than being a type that needs to be configured through the Logic interface
Switches flip between on and off when hit with a logic 'High' signal. They will only toggle again when the input goes 'Low' after being 'High'.
Counters have a specified number property and send a logic 'High' signal pulse when hit with that number of logic signals. They will only count up when the input goes 'Low' after being 'High'
Terminators will allow only a certain number of travelers to pass through them before stopping the passage of travelers altogether (can be configured to 0 to always do this). A terminator with a 0 value functions the same way as a muted Point at the end of a chain.
Note: Counters and Switches are exclusive to the logic network while terminators are exclusive to the traveler (signal) network.
Audio Buffer: Any audio played during a sequence when "Internal Synth" is on will now save to a .wav file in the save_WAV folder found in the user directory. Much like the save_MIDI directory, only the last 5 plays of any sequence (by name) will be kept. The maximum size of the file is 1GB, giving you about 3 hours of recording time @ 44.1kHz sample rate. The audio files are 16 bit mono PCM wav, and the sample rate is dependent on what audio device you have selected in the options menu.
Well, here we are. Midinous' features are now complete. It's pretty incredible that, after 4 years, people are still enjoying the software and offering useful feedback to make it better. I'm extremely grateful to everyone for buying Midinous; you're the reason I'm able to support myself. Since Midinous is now feature-complete, I will completely focus on making Midinous as stable as possible on the systems I'm currently supporting so that Midinous will be stalwart into the future. Maintenance and bug fixes won't stop and all future updates will come to you for free.
Now I have to give you the less-than-good news: Apple has continually been a roadblock in my development and I have found it harder and harder to keep up with the changing landscape. At some point in the near future Apple will stop supporting OpenGL (the graphics back-end for Midinous) and replace support for their technology called Metal. At that time, I will no longer be able to support Midinous on MacOS. So, I've made the decision to discontinue support for future MacOS systems. I won't be buying another Apple machine to develop on. I'll support Midinous as long as I'm able with the Mac system I currently have. Updates are so much easier to push for Linux and Windows systems and the development tax I incur working with Apple machines drives me crazy. That's one of the reasons this update is so big, a final gift to Mac folks because there really won't be any new features after this for any system. At any rate, I wanted to let everyone know my plans now so that it wasn't a surprise when Apple makes their moves towards Metal.
I think Midinous is in a great place right now -- the beta has been running just fine and I've received a lot of good feedback so I thought it was time to "flip the switch" and give you the gift of Midinous 1.5! My life has been pretty chaotic in the past year or so, which is the reason updates have been so slow. However, the code base is so vastly different than last update that things just kept getting added and the update kept getting bigger.
The manual has yet to be updated. Lots of things have changed and I figured it was more important to get the content out before I got the guide up-to-date. But it will be updated soon!
If you have issues or questions please join the Discord where you can ask away. I also read the Steam discussions and answer emails.
As always, never stop creating. - Jae ♥
Changed files in this update