Changes 7.3.84 -> 7.4.76: * Instruments: Fix current instrument changing automatically when playing song and switching between blocks. This was only a bug in the offical binary releases of Radium 7.3.84. * Help: Minor fix * About: Include Faust version in the about window. * Mac/ARM: Fix deadlock happening when showing assertion reporter. * Gui: Fix crash when exiting program and waiting for a plugins to finish running. * JUCE: 7.0.3 -> 7.0.11 * Sequencer: Don't throw error if pasting automation from the clipboard where the two first nodes had the same time values. Changes 7.2.89 -> 7.3.84: * MacOS: Don't crash when loading files with certain non-ascii characters (e.g. Japanese) in their filename. (Possibly only a problem in very recent versions of MacOS.) * Demo songs: New song called "Night comes" by Nay. * MacOS: Workaround for strange trackpad behavior causing two-finger-touching a seqblock not always working. * Instrument: Remove the "locked instrument" concept. (Yustin / Kmatheussen) * Instrument: Never automatically change instrument when playing song when the cursor is moved to a new editor track. (Yustin / Kmatheussen) * Instrument: Replace the "locked" checkbox with a "select" button. * GUI: Remember window positions and so forth between sessions. (Akimaze) * Instruments Clarify what the "set new name" option does. * Sequencer: Enable "Delete all selected" also when only one seqblock is selected. * Sequencer: Remove the "Delete" popup menu entry since it was too similar to "Delete current". (It only differered for the behavior of assigned keybindings.) * Automatically add extension to preset names if missing. (Akimaze) * Faust: Use linear velocity->gain conversion for very low velocities so that gain can reach zero. * Audio: Fix pops/scratches/clicks for quite silent sounds in the graph that were volume-boosted up later in the DSP graph. (Even the "Demo song" demo song suffered from this.) * Build: Add option to use qwebengine instead of qtwebkit. (qwebengine has some shortcomings, but it can be convenient to use to avoid having to compile up qtwebkit.) * Editor: Fixed coordinate calculation when dropping a file. (Akimaze) * GUI: Option to use the alt key as a horizontal scroll modifier (in sequencer and mixer). (Akimaze) * Faust: Update Faust 2.54.9 -> 2.70.3. (Yustin) Changes 7.2.87 -> 7.2.89: * Demo song: "Locrans Shop" made by Trumpetrespas. * Editor: Add "Drums" to the "(click me)" menu. * Fluidsynth: Replaced the default soundfont Orgue.sf2 with FluidR3_GM_drums.sf2. FluidR3_GM is made by Frank Wen. Trumpetrespas stripped it down to only include drums. * Audio: Fix LV2 plugins (bug introduced in 7.2.87). * Build: Fix having to run "make packages" twice/etc. Changes 7.1.92 -> 7.2.87: * Macos: Always enable incremental GC when running ARM. May improve scrolling performance in the editor. * Sequencer: Fix "Delete" entry in seqblock popup menu. * Build: Update bdw-gc from 7.4.16 to 8.2.4. * Macos: Fix the ZL1 key again. * Macos: Add support for LV2 plugins. * Startup/Mac: Fix long startup time on Macos. * OpenGL: Fix laggy editor interface after moving the main window to a screen with a different refresh rate. * GUI: Paint thin black border around all checkboxes. * GUI: Make the color of Mute buttons lighter if background color is too similar to the default mute color. * Preferences: Option to turn off checking for abnormal signals. Might shave off a few CPU cycles. * Add support for aarch64 CPUs, i.e. 64 bit ARM. * Remote control: Disable access from other computers by default, i.e. only allow requests from localhost. Access from other computers can be enabled in preferences if needed. * GUI/Preferences: Fix program not remembering "CPU friendly audio meter updates" between sessions. * Demo songs: "Poptikus" by Nil Geissweiller / A-Lin (Europe). All instruments in this song are made with the FaustDev instrument. * Build: Upgrade QScintilla from 2.10.8 to 2.14.0. * Build: Fix build with gcc >= 11 and clang >= 15. * Build: Various patches from Arch Linux. * Build: Fix for building faust on Manjaro Linux. * API: controlPortOpenForRemoteConnections, setControlPortOpenForRemoteConnections, getCheckAbnormalSignals, setCheckAbnormalSignals, gui_colorDistance Changes 7.1.90 -> 7.1.92: * Editor: Include the main editor-popup-menu into the bottom of the track-header popup menu. * Edit: Button to "reverse song" (i.e. reverse all blocks). * Edit: Fix the functions to reverse notes. They weren't very good before. * GUI: Highlight tab elements when mouse hovers above. * GUI: Add JUCE version to the About-window. * GUI: Increase default height of message window somewhat. * MIDI learn: Fix incremental mode when recording automation to editor. * API: backwardsSong. Changes 7.1.89 -> 7.1.90: * Editor: Fix sligthly wrong memory handling. Might have led to crashes sometimes after copying a range that contains stops, but only after the second time or later, and probably only in very rare cases. Bug introduced in V6.6.77. * Midi Learn: Rough implementation of "incremental mode". The feature is likely to require some tweaking though. * Sequencer: Make the song tempo automation popup menu less confusing. * Sequencer: Fix gfx garbage in uppermost pixel row when song tempo automation is visible. * Editor: Fix a possible, but if so, probably extremely rare, crash when creating undo for range. The bug seems to have always been there. * Internal: Fix memory leak if trying to allocate very large memory blocks in realtime code. * GUI: Attempt to fix Qt sometimes translating strings. (That's not supposed to happen since Radium is an English-only program.) * Linux: Turn off crash reporter if radium couldn't start because of missing AM pitch shift plugin during startup. Only for custom builds though. * Soundfile saver: Fix pressing "Save" if Qt has decided to translate the text "Save" to another language. Qt is not supposed to translate anything, but reportedly it has. * Internal: Fix a bug in a function that divides two ratio numbers. The bug could in theory have caused all kinds of errors, but probably not. * GUI: Decrease memory garbage collection time somewhat. * API: instrumentEffectMidiLearnIsIncremental, setInstrumentEffectMidiLearnIsIncremental. Changes 7.1.88 -> 7.1.89: * Demo songs: Added "Test Automation" made by mward25. * Sequencer: Fix moving seqblocks (and probably other things) not working when sequencer is inside the mixer and the mixer is displayed in its own window. * Ladspa plugins: More detailed progress message during program initialization. May help track down why it sometimes takes so long time on Windows. Changes 7.1.87 -> 7.1.88 * Instrument menu: Add "Assign to current editor track" option. * Editor: Fix double-playing notes when scrolling up and down repeatedly on the same line and possibly other situations. * Sample requesters: Also show files with mixed lower and upper case in file suffix, e.g. "sample.Wav" * Sampler: Fix XI instruments not displayed in the embedded file browser. Changes 7.1.86 -> 7.1.87 * NSM: Fix if "getenv" returns #f instead of empty string. * Scheme: Fix converting character to string, which suddenly stopped working. * Editor: Fix moving first velocity node, which sometimes behaved very strange. * Editor: Fix holding shift not working to circumvent other notes limiting where a can be placed. * Sequencer: Fix clicking the seqtrack number creating an undo. * GUI: Reduce default maximum number of menu elements that can be shown at once, from 200 to 100. 200 might fill up the screen and sometimes even freeze the program, at least if using fvwm. * Fix tooltip for sequencer button in mixer. (akimaze) * Fix compilation on systems with newer binutils dev files (yzzyx) Changes 7.0.01 -> 7.1.86 * Macos: Don't warn during startup if operating system is too new to have been tested. * Crashreporter: Make it clearer that a plugin most likely caused the crash if a plugin was processing when the crash happened. * Macos: Compile with clang 15. * Macos: Update LLVM from 10.0.1 to 15.0.6. * JUCE: Update from 7.0.2 to 7.0.3. * Upgrade faust 2.37.3 -> 2.54.9. Changes 7.0.00 -> 7.0.01: * Windows: Updated Qt to 5.15.7. * Windows: Compile with GCC 11, and updated all included dlls. * Windows: Fix crashreporter not including source files and line numbers. Use SymGetModuleInfo64 and friends instead of libbfd. * Manual: Remove some external links that could make the web browser crash. (qtwebkit must be patched manually to prevent it from trying to load plugins, it's easier just removing links to external web pages. * S7: Updated 10.0 / 9-Dec-2021. Changes 6.9.99 -> 7.0.00: * Qt: Updated Qt to 5.15.6 on Windows and Mac. * Qt: Updated Qt to qtbase-kde (5.15.6++) on Linux. * JUCE: Update JUCE from 6.1.6 to 7.0.2: * VST3 plugins should work better on Linux. * LV2 plugins are supported. (Only enabled on Linux for now.) * GUI: Significantly less CPU when drawing text. * GUI: Use new logo designed by Andrzej "akimaze" KilijaƄski. * Instruments/Editor: New "Window" called "Preset browser" to quickly try out and organize instrument presets. See https://github.com/kmatheussen/radium/pull/1383 for more info. Show it by Selecting Help -> Beat features -> Preset browser. (akimaze) * Mac: Replace the "Radium reset.app" with a "Radium reset.command" clickable shell script since the "Radium reset.app" app didn't always work on Macos Sierra or later. * Load: Don't ask for plugin file when loading song and plugin is not available. * Mac: Update startup warning message. The biggest problem on Mac seems to be issues with the keyboard now, not with OpenGL. * Editor: Fix Left Alt + Up. For many release this function has been deleting previous note if that note ended on the current line. * Editor: Fix backspace. For many release this function has been deleting previous note if that note ended on the current line. * Export: Don't display assertion reporter when exporting single block. (akimaze) * VST/VL2: Fix "LSP Plugins" and other plugins not returning the real size before window is visible. (akimaze) * VST/AU/LV2: Fix deadlock sometimes happening if deleting and creating VST/AU/LV2 plugins very fast. * GUI: Append "..." to the name of all menu entries and buttons that opens a new GUI (except if the name starts with "show " or similar). * API: * New: getPresedBrowserFrame, stringSplit, getAllSettings, instrumentIsVisible. * Add optional argument "is_visible" to createAudioInstrument, createAudioInstrumentFromPreset, and createAudioInstrumentFromDescription. Changes 6.9.98 -> 6.9.99: * Editor: Make it possible to add keybinding for all menu entries in the "(click me)" track header menu, including opening the "(click me)" menu itself. It's still not possible to configure keybinding for currently used instruments though, but it's far from straight forward how to such keybindings would work. * GUI: Create different set of keybindings when opening the "From instrument/effect" menu depending on what the instrument is used for. For instance, when opening the menu from the "(click me)" menu, you also want to let the keybindings assign the instrument to the current track, not just create the instrument. * Timing: Fix rare crash that reportedly can happen when drawing up the sequencer after inserting lines in the editor, and possibly other situations. Bug seems to have been introduced in V6.9.86. * GUI: Add entries to also select from the list of most frequently used instruments in the various insert-instrument menus (in addition to select from plugin manager/preset/etc.) * Editor: Fix painting correct background for the velocity nodes related to whether the nodes are current or not. Bug probably introduced in V6.9.80. Changes 6.9.97 -> 6.9.98: * Build: Upgraded Qt from 5.15.2 to 5.15.3. * Build: Upgraded lots of system libraries for all three platforms. * Windows: Include a general README.txt file. * Windows 32bit: Include the FaustDev instrument. By mistake, the FaustDev instrument had not been included before now. * Song properties/Instruments/Editor: Add options to simulate pitch changes by sending out discrete glissando notes. Enabled by default in new songs for instruments that don't support changing pitch of playing notes. * Editor: Fix some harmless but annoying error messages sometimes popping up right after loading a song. * Audio: Fix notes not stopping for some instrument when changing the pitch of a currently playing note. * JUCE: Upgrade from 6.1.4 to 6.1.6 * Build: Fix compiling with clang 13. * Faust: Update to faust 2.37.3 * Editor: Don't set random sample for all selected instruments when pressing SHIFT+R. This keybinding belongs in the mixer only. * Instruments: Remember highest instance number from last time when loading songs. The instance number is used when autocreating instrument names. * Build: Fix shebangs (bandthedoge) * JUCE: Don't enable jassert in RELEASE mode (fixes crashes in VST3 plugins on linux.) * Editor/Sequencer: Paint nodes correctly when they are selected. * Editor/Sequencer: Paint thicker borders on high DPI screens. Changes 6.9.96 -> 6.9.97: * Linux: Removed libglib-2.0.so from the Linux binaries since it sometimes caused 3rd party plugins to fail loading. (Caused by conflicting libraries) * Linux: Update included system library files. * GUI: Fix making Shift + Right mouse button reset mute and solo in the sequencer. * Plugin scanner: Fix displaying error messages on Linux and Windows. * JUCE: Update JUCE to 6.1.4. This might fix various issues with VST3 on Linux and other things. * Plugins: Fix crash when selecting the "Set ..." option in the effect popup menus. * GUI: Lots of high DPI fixes. The whole program should look descent on high DPI screens now. * Audio preferences window: Support high DPI screens. (Probably not working on macOS though...) * Plugins: Support high DPI screens for the GUI for plugins. (Probably not working on macOS though...) * Keyboard: Workaround to fix space and return keys not always working (especially on newer and faster computers). * Startup: Fix custom python code added in the keybinding configuration file sometimes not working (especially on newer and faster computer). * Demo songs: Fix sweeping filter automation in the main demo song. * GUI: Lots of mouse handling improvements. * GUI: Make the "ZL1" key (i.e. the key one step to the left of "Z" on a QWERTY keyboard) behave the same way as pressing Shift + Right mouse button. * GUI: Make the mouse "Back button" (for mice having this button) behave the same way as pressing Shift + Right mouse button. * Menus: If a function has more than one shortcut, display the shortest of those shortcuts in popup menus. * GUI: Improve various popup menus. * Instruments: Don't create a new undo entry when resetting an effect and the effect already had the default value. * Linux: Fix scheme listener not always starting unless running on Ubuntu 18. * Preferences/Audio: Add option to not use JACK even when JACK is running. * Audio: Fix possible problems when initializing JUCE audio. * Playlist: Don't show error message if pressing the delete key in an empty playlist. * Editor: Make it possible to assign keybindings to the "New Sample Player" and "New MIDI Instrument" options in track header menu. * LADSPA/Windows: Another attempt at preventing windows from scanning the included ladspa plugins during startup. It doesn't seem to always work though. The built-in virus scanner in Windows seems to be extremely aggressive. The LADSPA files are never opened or read during initialization. * Demo song: Fix low pass filter automation. * Editor: In the pianoroll header, fix "A" button not always behaving quite correctly. * Audio: New song properties option for muting output of the 5 system buses when a plugin is bypassed. By default this option is ON for new songs and OFF for old songs (to keep kompatibility). * Manual: Add recipe to the Mixer FAQ on how to create a sidechain compressor. * Manual: Add how to set volume higher than 6db in the mixer FAQ. * Editor: In the "(click me)" menu, display currently used audio instruments before currently used MIDI instruments. * Edit: Also expand/shrink end pitch value when expanding/shrinking pitch. * Edit: Fix expand/shrink pitch. Last release wrongly assumed end pitch always had a legal value. * Plugin Info box: Inform when a mono LADSPA plugin has been automatically transformed into a stereo plugin. * API: * New: setMuteSystemBusesWhenBypassed, muteSystemBusesWhenBypassed, setPianorollRange, simulateDeleteMouseButton, gui_rerunLastMouseEvent, hasEventConnectionUnderMouse, hasAudioConnectionUnderMouse, getEventConnectionUnderMouseSourceInstrument, getEventConnectionUnderMouseDestInstrument, getAudioConnectionUnderMouseSourceInstrument, getAudioConnectionUnderMouseDestInstrument, gui_getGfxScale. * minimizeBlockTracks: Optional argument "force". Changes 6.9.94 -> 6.9.96: * Editor: Make pitch expand/shrink also work on pitch changes, not just on the main pitch of notes. * Editor: Shorten the main popup menu a little bit. * Editor: Fix editing the value of a pitch change. I.e. left alt + return when cursor is placed on a pitch change for a note. * Playlist: Clean up popup menus a little bit. * Playlist: Make it possible to configure the color of the border of current entries. * Playlist: Split the concept of current blocklist position and the concept of current block, making it convenient to change playlist while playing song. I.e. current block is not always the same as the current blocklist position anymore. * Playlist: Clean up various things. * Editor: Fix possible glitch in sound when cutting the length of a note while playing. * Playlist: Make "C" keybinding change color of highlighted block or audiofile if mouse pointer is currently pointing inside a block or an audiofile, also in the blocks browser in the playlist for instance. * Playlist: Light up playlist entries when mouse is above. * Playlist: Select current seqblock under mouse when mouse is above a playlist entry. This is practical when assigning keybinding to e.g. change block color. * Playlist: Add popup menu option to set current seqtrack. * Sequencer: Fix some unnecessary jumpingaroundness when moving seqtracks up and down. * Sequencer: Fix changing timing mode unintentionally when changing seqtrack order. * Sequencer: Don't create undo when changing seqtrack order but ends up with the same order as before. * Linux: Fix space and return key not working, for some reason, on Ubuntu 20 and probably other distributions. * Sequencer: Don't show error message when trying to swap last seqtrack with next seqtrack. * Sequencer: Fix dragging seqtrack number up and down when there are invisible seqtracks. * Modular mixer: add the "Mixer" submenu to the bottom of the effects popup menu. * Mixer: Clean up the various "Insert plugin" menus. * Editor: Clean up the top of the "(click me)" menu. * Editor: Add the timing tracks popup menu submenu to the bottom of the bars/beats popup menu. * Modular mixer: Fix module positioning when loading .mrec files. * Ladspa: Include the name of the audio input and output ports in the info box. * Sampler: Fix integer overflow problem in code to generate waveforms. This fixes (rare) situations with no waveforms in the editor * Mixer: Add "Create new bus" option to the top of the list of buses you can send to when selecting "Insert send". * Mixer: Add "New bus" option to the main popup menu in the modular mixer. * Mixer: Tweak the "New sound object" / "New audio instrument" menu. * Sequencer: Change "Set name" to "Rename" in the popup menus. * Playlist: Fix block names not being updated when editor blocks are renamed, and other situations. * New song: Hide signature track, tempo automation track, and swing track. * Editor: Automatically (and continously) resize all tracks to fill all available space for clean projects. * API: * New: getSeqtrackUuid, setCurrEditorBlockUnderMouseForSequencer, getCurrEditorBlockUnderMouseForSequencer, setCurrSampleUnderMouseForSequencer, getCurrSampleUnderMouseForSequencer, getCurrBlocklistPos, setCurrBlocklistPos. * setUsingSequencerTiming gets optional argument 'make_undo'. Changes 6.9.91 -> 6.9.94: * Instruments: Reorganize the "Insert new sound object" / "New audio instrument" menu. * Playlist: Give keyboard focus to the sequencer instead of the editor when the mouse is inside the playlist. * Sequencer: Minimize sequencer height when maximizing window or showing full-screen. * GUI: Try to fix sequencer sometimes not being fully minimized right after startup. * Windows: Partially fix importing MIDI files, i.e. smaller files are imported perfectly now. However, larger MIDI files seems to only be partially imported on Windows. The problem does not seem to be present on Linux and macOS. * GUI: When showing sequencer, make sure the mixer is visible first if sequencer is inside the mixer. * GUI: Fix keyboard focus when showing sequencer. * GUI: Don't show mixer at program startup. * MIDI: Give more information when warning about possibly creating a recursive connection when connecting an instrument to a MIDI output port. Before it could look like the program was stuck in an infinite loop when importing MIDI files. * Sequencer: Clean up popup menus a little bit. * Mixer strips: Clean up popup menus a little bit. * Sequencer: Make sure first seqtrack is the current seqtrack after loading an older song. Before this commit, a hidden seqtrack bus was set as the current seqtrack. * Modular mixer: Let the "C2" button apply to all buses, not just the 5 effect buses. * Instrument effect popup menu: Replace the "keybindings for.." sub menu with entries that actually changes the value. This value can instead be right-clicked to change keybinding. Redundant functionality though, but it looks cleaner. * Modular mixer: Include "mixer" elements in a "mixer" sub menu for the popup menu. * Modular mixer: Snap connections to modules when being created. * Modular mixer: Put connection lines on top of all other graphical elements when being created. * Modular mixer: Fix hovered connection color (it was hardcoded to a bluish color). * Mixer: Make event connections red. (The old color looked too much like the audio connection color, and yellow (used before that again) looks too much like white which is used to show a current event going through the connection.) * Modular mixer: Fix possible division by zero sometimes happening when using middle button to drag. * Modular mixer: Redesign GUI of the modules: * Don't overlap volume sliders with the mute/solo/bypass buttons. * Modular mixer: Switch back to displaying simple peaks. * Modular mixer: Use the instrument color for the background color of the M/S/B buttons. * Modular mixer: Use black background color for the volume sliders. * Modular mixer: Write dB value inside the volume sliders. * Swap upper and bottom half of the modules. I.e. paint text and note indicator above slider and buttons. * Less rounded and a little bit thinner borders. * Limit the volume sliders between -40dB and +6dB. Before, it was between -40dB and +35dB, which is usually a too big range. * Make non-linear scaling between effect value and slider positions, similarly to the mapping in the mixer strips. (i.e. we have approximately equal room between -6dB and 6dB and between -35dB and -6dB now). * Adjust audio port colors. * Light up elements below the mouse pointer. * Don't draw audio input/output ports when they're not used, not visible, or doesn't exist. * Alternatively move module by left-dragging the name instead of using the right-button. * When right-clicking the volume slider, mute, solo, or bypass, show the instrument effect popup menu instead of the module popup menu. * Manual: Document the FX/Velocity subtrack. * Manual: Some minor improvements here and there. * Help: Open help windows in external browser if the built-in browser is not able to show the manual (i.e. compiled against a too old version of qtwebkit). * API: * Renamed: instrumentIsSeqtrackBus -> instrumentIsBus * New: gui_webCanShowManual, getInstruments, getMidiInstruments, getAudioInstruments, getBuses Changes 6.9.90 -> 6.9.91: * Macos: Improve startup message. * Internal: Minor improvements. * Help: Fix the various help buttons and menu entries not showing correct web page if user had manually changed web page on the assigned window (help windows are cached to open quicker the second time). Changes 6.9.89 -> 6.9.90: * Internal: Reorganize code protecting s7 gc variables a little bit. Might have fixed some potential problems. * Internal: Preallocate a little bit of memory for vectors. Also remove some thread assertion code from non-debug builds. Might improve performance a little bit. * Internal: Make sure memory allocated by the RT memory allocator is always aligned at maximum. This could theoretically increase performance. Changes 6.9.88 -> 6.9.89: * Editor: Fix crash when quantitizing notes. Bug introduced in 6.9.80. * Windows32: Fix import MOD. * Macos: Open Help windows in an external browser since the manual now uses javascript-features not supported by QtWebkit 5.9. * Manual: Include search field + various other improvements. * Faust: Fix possible performance problem for the interpreter backend. * API: * gui_web: Handle local files with queries. * gui_web: Only accept Escape key if currently searching. (Previously it hindered all other usage of the Escape key by web pages.) Changes 6.9.86 -> 6.9.88: * Editor/Instrument: Enable sample-seek by default. * Macos: Runs under Macos 11. * Windows: Antivirus programs should never scan LADSPA plugins during startup anymore. * JUCE: Don't allocate memory in realtime code for VST3 plugins when setting parameter values. * Editor: Fix "Rec" not being removed immediately after stopping to record MIDI input. * Linux: Fix JUCE thread issues which might have caused glitches in sound when using VST plugins. * JUCE: Upgrade to V6.0.8. Most important change is probably support for VST3 plugins on Linux. Changes 6.9.82 -> 6.9.86: * Audio: Try not to open any audio input device by default. Sometimes this screws up the output sound. * Audio: Try to use a default buffer size of 1024 when initializing the audio device. Earlier the audio device was sometimes initialized with an incompatible block size. * Sequencer: Fix inserting several audio files at once when selecting "Insert audio file(s)" from the popup menu. For a few releases now, inserting several audio files inserted the new audio files into the wrong sequencer tracks. * Sequencer: Also set seqtrack-under-mouse when changing current seqtrack. * Sequencer: Fix moving several seqblocks at once when there are hidden seqtracks. * Sequencer: Light up seqtrack names, both in seqtrack headers and in the "Tracks" tab, when mouse is above. * Sequencer: Light up the editable path name field in the "Files" tab when mouse is above. * Sequencer: Light up seqtrack currently under mouse. * Sequencer: Fix keybindings not always working on current seqtrack pointed to by the mouse. * Sequencer: Paint orange border around current seqblock in the sequencer navigators. * Sequencer: Fix possible weird behavior when moving more than one seqblock and one or more of those seqblocks were deleted because they were moved to a seqtrack of the wrong type. * GUI: Make all sliders in the editor/mixer/sequencer to light up when mouse is above the slider. * Mixer: Make the volume text and peak text light up when mouse is above. * Editor: Convert various node assertions to fire in debug builds only. * Editor: Fix moving cursor left when the cursor is positioned on the leftmost centtext subtrack and the swing subtrack is visible. * Editor: Fix transposing selected notes in the pianoroll when using left meta + u/d. * Editor: Improve logic for whether to show the centtext subtrack or not. * Editor: Convert pitches to TimeData. * The most notable change is that any editing is heard immediately if playing block or song at the same time. * Using less CPU cache. CPU usage might be notably lower after notes themselves have been converted to the new data structure. * Necessary for future work such as replacing OpenGL with Vulkan. * Editor: Fix transpose velocity. * Build: Fix compiling for LLVM12 (Teteros) * Editor: Let the window that shows the no-range-or-selection error show buttons to open the manual instead of explaining directly how to edit range and selection. * Editor: Make sure editor graphics is updated when pressing left alt + return. * API: setCurrSeqtrackUnderMouse Changes 6.9.81 -> 6.9.82: * Editor: Don't show assertion window when changing the number of lines in a block causes a note to be shortened. Bug introduced in 6.9.80 Changes 6.9.80 -> 6.9.81: * Load: Fix program freeze if loading a song with a VST/AU plugin from the command line. Was probably only a problem on Linux. * VST/AU: Enable all audio channels of VST/AU plugins when the plugin is initiated since some plugins don't enable all channels by default. For instance, the U-he Runciter plugin only enables one of its channels. In the future there should be an option to select bus layout for plugins * Editor: Fix inserting a new note below another note in a non-polyphonic matter, i.e. so that the end of the first note stops where the second note starts. This could in some situations fail spectacularly. Bug introduced in 6.9.80 Changes 6.9.75 -> 6.9.80: * Windows/Editor: Another workaround to fix garbled fonts sometimes happening in the editor right after startup. * Editor: Changed the behavior when pressing DEL on a veltext entry so that it behaves the same way as when deleting a velocity node with the mouse. * Manual: Minor updates. * Sequencer: Make it optional in preferences whether changing current seqtrack also changes current editor block. Also disable this option by default, before it was enabled. * Sequencer: Add option in preferences whether mouse wheel up/down starts/stops playing or scrolls up/down seqtracks. * Sequencer: New option in preferences to select whether to autoselect the seqtrack which is currently below the mouse pointer. In addition, turn this option OFF by default (before this behavior was ON). * Mixer: Change the "Connected to main pipe" option in the popup menus to "Connected to main bus". * Preferences/colors: Add slider to adjust the amount of gradient colors of various filled rectangles. * GUI: Various tweaks to color shading. * Preferences/colors: Fix setting correct default values for the saturation and brightness sliders when pressing "Reset". * Sequencer: New option in preferences to select whether to autoselect block currently under the mouse pointer. In addition, turn this option OFF by default (before this behavior was ON). * Load: Add workaround for loading songs saved with Radium older than 6.9.76. Before that there was a bug that caused no volume change to be played if there were only two velocity nodes for a note and the last node had value 0 (i.e. plain decrescendo where not played). * GUI: Made the green audio peak color greener. * Mixer: Paint a handler for the volume sliders to better see current value. * Colors: Adjusted check box colors a little bit. * Modulator: Fix division by zero if min and max is equal. (This caused illegal floating points to wander around in the system). * Audio: Assert that the value is a legal floating point when setting plugin parameters. * Editor: Convert note velocities to the new data structure: * The most notable change is that any editing is heard immediately if playing block or song at the same time. * Using less CPU cache. CPU usage might be notably lower after notes themselves have been converted to the new data structure. * Coincidentally fixed a bug that caused no volume change to be heard if there were only two velocity nodes for a note and the last node had value 0 (i.e. plain decrescendos were not played). Also add a workaround for this bug so that loading old songs still sound the same. * Necessary for future work such as replacing OpenGL with Vulkan. * Editor: Don't delete note when deleting the last velocity node and there are pitch changes unless there are only two velocity nodes. * Loading: Fix showing correct line numbers when loading song fails. * Internal: Various improvements to the RT memory allocator. * API: * New: autoselectEditorBlockUnderMouse, setAutoselectEditorBlockUnderMouse, getAmountOfGradient, setAmountOfGradient, autoselectSeqtrackUnderMouse, setAutoselectSeqtrackUnderMouse, autoselectEditorBlockWhenChangingSeqtrack, setAutoselectEditorBlockWhenChangingSeqtrack, sequencerMouseScrollWheelStartsStopsPlaying, setSequencerMouseScrollWheelStartsStopsPlaying. * Change last argument (gradient) for gui_filledBox from boolean to int, and add 13 different types of gradients to choose from. Changes 6.9.74 -> 6.9.75: * GUI: Tweak default background color of the editor and the modular mixer. * Audio/MIDI: Fix erroneous error message ("RT_free failed") possibly being displayed when sending and receing MIDI from VST plugins. Bug probably introduced around 6.9.66. * Sequencer: Warn about non-linear mapping if loading an older song that has Crossover automation for the sampler instrument. * Editor: Warn about non-linear mapping if loading an older song that has Crossover automation for the sampler instrument. * Mixer: Made it possible to configure the background color of the modular mixer separately. * Sampler instrument: Fix loading songs with custom loops. * API: Fix wrong error message possibly being displayed when sending/receiving MIDI. Changes 6.9.72 -> 6.9.74: * GUI: Made it possible to configure all label colors. Before this, it was hardcoded to light gray. * Sequencer: Made it possible to configure the editor seqtrack header backgound color separately. Before, it just used the "Sequencer background" color. * Sampler instrument: Made the crossfade slider exponential so that it'll be possible to set accurate small values. * Sequencer: Paint name of current editor seqblock in white color also in the navigator widgets. * GUI: Adjust default colors a little bit. * Editor: Fix assertion reporter popping up when changing number of tracks in "block properties" while playing. * GUI: Paint gradient background color for various text. * Editor: Tweak tempo multiplier slider graphics a little bit. Also make the colors for the slider configurable. * Playlist: Use same colors as in the sequencer and paint a border around current entries instead of using a different background color. Also paint a small border around non-current entries. * Sample instrument/Fluidsynth instrument: Make sure the sample browser is wide enough to show all text of normal-sized filenames. * GUI: Make all buttons have the "Buttons" color. * GUI: Make group boxes easier to see. * Sampler instrument: Support loop crossfade when using custom loop start/end points. * Sampler instrument: New effect "Loop window". * Internal: Change main timer interval from 5ms to 15ms. This might lighten up CPU usage a little bit. Changes 6.9.71 -> 6.9.72: * Sequencer: Add a "Duplicate seqblock and block" option to the editor seqblock popup menu. * Mixer: Make current mixer slot color red. * Mixer: Make the sound object ports more visible. * Mixer: Improved sound object port graphics. * Colors: Made it possible to configure the color of the current slot. * Colors: Made the audio port color in the mixer configurable. * Colors: Make it possible to configure the out-grayed color in the editor when a custom widget has keyboard focus. * Colors: Make it possible to configure dialog help text color. * Menus: Fix selecting "Show/Hide Mixer" and "Show/Hide Sequencer" without using shortcuts. * Editor: Fix editing BPM. Bug introduced in 6.8.71. Changes 6.9.69 -> 6.9.71: * Linux: Fix importing MOD files in the binaries. (Probably broken in 6.7.76.) * Sampler instrument / Fluidsynth instrument: Made soundfile text color a little bit darker. * Editor: Display "Automatically set pianoroll range" in the status bar when the mouse pointer is above an "A" button in the track headers. * Sampler instrument: Fix sample browser stealing keyboard focus when the current instrument is changed to an instrument that had keyboard focus inside the sample browser the last time it was used. * Editor: Don't show assertion reporter in release mode when note structure is slightly corrupt. * Sampler instrument: Fix illegal samples being played if loading an audio file with less than 32 samples, or a sample loop is less than 32 samples. Fixes playing chip tune MOD songs for instance. Bug introduced in 6.5.81 * Sequencer: If soundfile is shorter than last time it was used in Radium, also cut seqblock automation so that nodes are not placed after the end of the file (where they can't be edited). * Build: Fix faust llvm build. Should fix #1339 * Sequencer: Give more detailed information if a sound file couldn't be opened. * Sequencer: Handle properly if an audio file is physically replaced with a file with different number of channels while the program is running. Changes 6.9.67 -> 6.9.69: * Windows: Fix showing current system font when opening the "change system font" requester. * Windows: Fix using "Lato Black" as the default system font. * Editor: Fix hanging notes when recording MIDI and not using Jack. MIDI recording accuracy, though, is slightly worse now when not using jack for audio. This can be compensated by using smaller audio buffers. * Load: Fix assertion window popping up when loading some songs. The assertion was innocent though. Bug introduced in 6.9.63. * Song properties: Remove option to select 2 or 8 channel main pipe. * Song Properties: Add option to set number of audio channels for buses. (between 1 and 99 channels) * Sequencer: Add seqtrack "Visible" checkbox to the seqtrack popup menu. * Sequencer: Remove all audio file options from the Bus seqtrack popup menu. * Sequencer: Disable ability to record audio files into Bus seqtracks. * Audio: Only display used output channels in the audio meters for patch instruments. * Audio meters: Make the default green color lighter. * Audio: Convert "Main Pipe" and the 5 effect buses from pipes to sequencer buses. * Audio: Rename "Main Pipe" to "Main Bus". * Audio: Remove the "Enable piping" effect from sequencer buses. * Audio: Make the "Main Bus" sequencer bus visible by default. The 5 effect buses are not visible by default. * Macos: Fix importing mod files * Internal: Various changes. * API: * New: getInstrumentEffects, setInstrumentEffects, seqtrackIsPermanent, seqtrackIsBus, moveSeqtrack, internalReplacePermanent. * Let appendSeqtrack, appendEditorSeqtrack, appendAudioSeqtrack, and appendBusSeqtrack return the seqtrack number for the newly created seqtrack. * Rename sendSysex -> sendMidiSysex. Changes 6.9.66 -> 6.9.67: * Macos: Fix error about not being able to set realtime priority. Bug introduced in 6.9.63. * API: * New: sendSysex. * Make midi input callbacks also receive syex messages. Changes 6.9.64 -> 6.9.66: * Audio: Fix random data sent out of "System In" instruments when not using jack and the soundcard has less input channels than the "System In" instrument has output channels. * Audio: Fix losing the jack port names of "System in" and "System out" instruments when a song is saved when not running jack. This caused the message "Could not register jack port" when later loading the song using jack. * MIDI: Possible fix for rare situations of hanging notes. * Soundfile renderer: Don't close dialog window if we couldn't save file. * Soundfile renderer: Don't allow overwriting an audio file currently used by the program. * Soundfile renderer: Ask yes/no if trying to overwrite an existing audio file. * Sequencer: Don't show assertion reporter when loading a song with an audio file that has become shorter than last time. Instead just show a note in the message log window. * MIDI: More fine-grained locking and prevent priority inversion when sending midi from main thread. * Audio: Turn off realtime priority when rendering audio file. * API: sendMidiMessage, openMidiOutputPort, closeMidiOutputPort, openMidiInputPort, closeMidiInputPort, closeAllMidiInputPorts, getMidiOutputPortNames, getMidiInputPortNames. Changes 6.9.63 -> 6.9.64: * Windows: Fix possible dropouts if changing audio settings after startup when not using jack. Changes 6.8.71 -> 6.9.63: * Bottom bar: Improve displaying CPU usage. * Bottom bar: Show number of xruns. * Sampler instrument: Fix a bug sometimes causing wrong custom loop points after loading song. Bug seems to have been introduced in 6.7.76. * Audio: Fix rare possible crash when undoing deleting instrument. * Load: Show more progress information when loading songs with many instruments. * About window: Replace "Jack samplerate" with just "Audio". Also show block size in ms. * Audio: Improve Jack shutdown handling. * Audio: Fix program freeze and memory corruption if internal block size is not a multiple of the Juce/Jack block size. * Audio: Use Juce audio to get audio in and out of the program if Jack is not running. * Radium reset: Include checkbox to only reset soundcard configuration. * Radium reset: Disable all options by default. * Preferences GUI: Minor tweaks. * Windows: Fix loading/saving current filerequester path to config for paths with non-ascii characters. * API: openAudioDevicePreferencesDialog, isUsingJack, isUsingJackTransport, getCpuUsage, getNumXruns. Changes 6.7.76 -> 6.8.71: * Scripting: Update S7. * NSM: Never autoconnect jack ports when nsm is active. * Editor/mouse: Fix moving an element after previously moving that element beyond a limit. Before, when moving that element again, the element would automatically jump the same number of pixels in the opposite direction first. (The fix was only necessary on Linux and Windows.) * Modulators: Don't break chronological order when adding or removing a modulator. * Mixer: Keep crologocial order for the plugin favourites. * Fonts: Display currently used font in font requester when changing editor font or system font. * Fonts: Fix saving custom editor font to settings. * Editor/cursor: Try to move to the same subtrack when using Ctrl + J. * Editor/cursor: Make sure cursor is visible after changing zoom value. * Editor/cursor: Make sure the complete current track is visible when scrolling left/right and there's enough space. Before, we only made sure the complete current subtrack was visible. * Editor/cursor: Fix showing full subtrack when moving cursor to a subtrack that is outside the visible area. * Editor/cursor: Fix cursor sometimes moving to the wrong place when moving left or right in the timing tracks. * Editor/cursor: Fix cursor moving to the same subtrack when moving cursor to the left or right track. * Editor/FX: Convert FX (i.e. effect automation in the editor) to the new data structure: * Better performance (should be more notable in later releases though). * Changes are heard immediately and player never has to be paused. * Necessary for future plans. * Editor/FX: Fix popup menu for adding an already used FX to a track. * Editor/FX: When creating new FX, make sure the initial length is equal to visible line length (i.e. take LZ into account). * API: * New: setCurrentTrack, getCurrentTrack, getCurrentSubtrack, getTrackVisible, canCursorMoveToTrack, getLeftmostCursorTrack. * Make -2 the default subtrack value for setCurrentTrack. Changes 6.7.75 -> 6.7.76: * Windows: Fix import MOD when the username contains non-ascii characters. * Windows: Fix displaying filename with non-ascii characters in the progress window when importing MOD files. * Audio: Don't show error about not being able to open soundfont file when failed loading a sound file (we already show a general message about not being able to open the file). a file doesn't exist. * Sequencer: Fix error messages popping up after pressing the Esc key when prompted to manually write new path in the file browser. * Windows: Fix displaying paths with non-ascii characters in the file browser in the right-side sequencer tabs. * Editor: Add options to set high priority for the OpenGL render thread and the OpenGL drawer thread. * Preferences: Remove the OpenGL "Safe mode" option. * Preferences: Move the "Vertical blank" OpenGL option into an "advanced" tab (since you normally don't want to touch this option). * Preferences: Move the "OpenGL" tab to the right of the "GUI" tab. * API: Add "message_is_base64" option to openProgressWindow Changes 6.7.74 -> 6.7.75: * Release to fix not all changes in being included in v6.7.74. Version number was wrong too. Changes 6.7.72 -> 6.7.74: * Audio: Disable lots of debug outputs to the terminal when modifying the audio graph. (Debug and Delease mode were switched.) This also might fix some audio glitches. * Windows: Fix garbled font rendering sometimes happening in the editor. Bug introduced in v6.7.69. (The problem existed before 6.7.69 too, but not as often). * Internal: Fix a memory corruption introduced in v6.6.77. The bug probably only manifested in debug builds though, and not in any releases. * Internal: Fix semi-rare memory leak when showing a system error message. * NSM: Fix error message popping up after startup. * Editor: Fix transposing MIDI 7 bit automation when pressing Left Alt + U or Left Alt + D and the cursor was placed inside an fxtext subtrack. * MIDI: Fix crash when starting to play in the middle of a song at a position where there is MIDI automation in the editor. * Build: Update libgig from 3.3.0 to 4.2.0. Fixes crash when loading some soundfonts. Changes 6.7.71 -> 6.7.72: * Editor: Fix notes not being stopped when adding a stop note. Bug introduced in 6.6.77. Changes 6.7.70 -> 6.7.71: * Audio meters: Fix update interval. In 6.7.70 it was by mistake updated each 5ms which is too often. Changes 6.7.69 -> 6.7.70: * Instruments: Fix editing keybinding in the instrument effects popup menu. * Help: Add option in preferences to let the help windows be a standalone window. * Plugin manager: Don't make the plugin manager window modal. Fixes inactive messages window after scanning plugins. * API: helpWindowIsChildOfMainWindow, setHelpWindowIsChildOfMainWindow . Changes 6.6.78 -> 6.7.69: * GUI: Fix audio meters often not being updated each frame, even when there is enough CPU time. * LADSPA: Remove TAP plugins from the regular menus. * Macos: Show text box with info about the state of OpenGL during startup. * Disk: Automatically add ".rad" suffix when saving song. * Editor: Disable the bar/beat options for current track when current track is a timing track. * Settings: Include "Radium reset" program to reset user settings. * Manual: Make sure the same font is used on all platforms. Most importantly this fixes really bad text rendering on Windows. * API: getTrackTypeName. Changes 6.6.77 -> 6.7.68: * Faust: Upgrade Faust from 2.27.2-stable to 20201227-dev. * OpenGL: Make sure editor is always correct size after startup. * Linux: The Radium binaries now requires glibc 2.27 or newer. The binaries should work on the following Linux distributions (and newer): Arch Linux (current), Debian 10, Fedora 27, Manjaro 17, Mint 19, MX Linux 19, openSuse Tumbleweed, Redhat/Centos 8, Slackware (current), and Ubuntu 18. * MacOS: Radium now requires macOS 10.13 or newer. * Build: Upgrade Qt to 5.15.2. * Faust: Update FAUST package from 20191222-dev to 2.27.2-stable. (Teteros) * Linux: Show stronger warning about the Novueau driver during startup. The Nouveau driver is likely to freeze your computer if running Radium. Changes 6.5.86 -> 6.6.77: * Macos: Include updated LADSPA plugins. * Windows/Macos: Include a new version of qjackctl that doesn't set sample rate and period size unless they're explicitly set to custom values. Might fix problems people have starting Jack on Windows. * Windows/Macos: Include a new program called "qjackctl_reset" that resets qjackctl-settings back to default. Can be useful to make Jack run (again). * Windows: Update documentation for installing the ASIO Jack driver (it's not a part of Jack anymore). * Settings: Make it impossible to corrupt the config file. * NSM: Don't autoconnect ports when NSM is active. * Settings: Fix writing if the config file (for some reason) have become an empty file. * Internal: New data structure for storing editor data. The new data structur supports reading and writing from multiple threads without blocking. So far only the note-stops have been converted to the new data structure, but eventually everything should be converted. Then we will see better realtime behavior and better performance in general because of less CPU cache hits. This is also preparation work for replacing OpenGL with Vulkan. Changes 6.5.85 -> 6.5.86: * Audio: Fix loading and saving plugins that have effect names with lineshifts. Changes 6.5.84 -> 6.5.85: * GUI: Improve Qt recursion detection. Hopefully there won't be false positives on macos now. Changes 6.5.83 -> 6.5.84: * GUI: Don't crash when pressing the "S" button in the mixer and the sequencer is in full mode. * GUI: General fix to prevent program from crashing if going into an endless recursive loop. * Sequencer: Remember current seqtrack when undoing and redoing. * Sequencer: Remove flickering when undoing and redoing. * Build: Fix compiling Pd using gcc/clang 10+ (Teteros). * Mixer strips: Fix width of the arrow separating non-bus and bus strips. Changes 6.5.82 -> 6.5.83: * Mixer strips: Set max width of a strip. * Mixer strips: Pack strips to the left if the strips can't fill all available horizontal space. Instead of spreading them out evenly, that is. * Sequencer: Keep track on/off and fade data when replacing block or audiofile in seqblock. * Sampler instrument: Fix playing reverse sample in non-looping mode. * Plugins: Fixes displaying correct number of channels for VST2 plugins in the plugin manager. Changes 6.5.81 -> 6.5.82: * Audio: Fix more than half of VST2 plugins being loaded as mono plugins, even when they are not. (The fix uses code written by falkTX.) * Sequencer: Fix memory leak in automation painter. * Sampler instrument: Display sustain value as dB. Changes 6.5.79 -> 6.5.81: * Mixer: Change function used when assigning keybinding to "Generate new color" in the popup menu. Before: generateNewInstrumentColor. Now: generateNewColorForAllSelectedInstruments. * Editor: Don't pause player when scrolling up or down when current editor-block is not playing. * Editor: Never let player change editor-block when a block is editor-locked. * Editor: Tweak keybindings for general transposing. Now they only work when the editor has keyboard focus. * Sequencer: Fix horizontal alignment for the name of seqtracks when the names are too large for the assigned space. * Sampler instrument: Make sample-seek work with looping. * Sampler instrument: Fix crossfade when the start of the loop is higher than 0. * Sampler instrument: Add "AHDSR on/off" effect. * Sampler instrument: Reorganize effect order a little bit. * Sampler instrument: Fix ping-pong loop looping between loop start/end and not between the start/end of the sample. * Sampler instrument: Make it possible to define custom start/end loop points. * API: keepOldLoopWhenLoadingNewSample, setKeepOldLoopWhenLoadingNewSample, useSameLoopFramesWhenLoadingNewSample, setUseSameLoopFramesWhenLoadingNewSample. Changes 6.5.78 -> 6.5.79: * GUI: Fix crash when pressing the "Full" button in the instrument widget while the sequencer is inside the mixer. * Instruments widget: Adjust width of the filter are and the output area. Changes 6.5.77 -> 6.5.78: * Audio: Show warning if loading an old song that indexes modulator effects by number instead of by name since wrong effects are most likley modulated. Also inform that the workaround is to load and save the song in Radium V5.9.44. * Demo songs: Fix wrong effects being modulated in "Concrete Vox" and "Elf". * Mixer: Fix updating instrument sliders after changing A/B. (The effects themselves were changed, but not the sliders.) * Mixer: Index A/B instrument effects on disk by effect name and not by effect number. This prevents A/B settings from being incompatible again in future versions of the program. Changes 6.5.76 -> 6.5.77: * Mixer: When changing A/B, apply instrument state even when number of effects are different. * Sampler instrument: Optimize applying AHDSR envelope. Might make a notable difference in CPU usage. Changes 6.5.74 -> 6.5.76: * Presets: Fix memory corruption in preset filename (i.e. .rec/.mrec files). Preset filename is shown in GUI and saved to disk, so this bug could cause corrupted .rad files. Bug probably introduced in 6.5.72. * Sequencer: Paint a thin blue line around waveforms. * Sequencer: Change "Insert audio file" to "Insert audio file(s)". If selecting several audio files when using this function, the program will put all selected files into their own newly created audio seqtracks. * Sequencer: Fix rare (probably) crash when undoing full sequencer state and topmost seqtrack was not the first seqtrack. * Sequencer: Fix wall-of-text error messages popping up in the message window when scrolling in the "Sounds" tab on the right side of the sequencer. * Sequencer: Disable the "Insert current audiofile" popup menu entry if there are no used audiofiles in the program. * Soundfile saver: Don't create soundfiles for instruments that has no outputs, buses, pipes, and Click instruments if metronome is turned off. * Soundfile saver: Fix saving multiple files, one for each instrument. Bug probably introduced in 6.5.72. * Scheduler: Fix rare assertion message popping up. Probably caused by a rounding error. * Instrument widget: Add pitch shift slider. Options to apply pitch to: 1. No channels 2. Only even-numbered channels 3. Only odd-numbered channels 4. All channels 5. All channels, but invert the pitch ratio of odd-numbered channels. * Audio: Double the time it takes to fade in/out system effects. * Mixer: Make it possible to assign keybindings to all entries in the "Insert sound object" popup menu. * API: * New: setNativeInstrumentEffect * Add optional argument "several_files" to gui_fileRequester Changes 6.5.73 -> 6.5.74: * Audio: Remove some unnecessary audio buffers that were used when processing Ladspa plugins. Might decrease CPU usage by using less CPU cache for audio data. (Note that badly written Ladspa plugins could misbehave after this change.) * Audio: Fix audio only in left channel for mono Ladspa plugins where plugin info was cached to avoid having to open the plugin during program startup. Bug introduced in 6.5.72 Changes 6.5.72 -> 6.5.73: * Mixer: Don't crash if changing A/B while creating a connection. * API: * Fix documentation for getInstrumentEffect and getNativeInstrumentEffect. * New: getStoredNativeInstrumentEffect. Changes 6.4.77 -> 6.5.72: * Windows: Fix borderless mixer window. Bug introduced in 6.4.76. * Mixer: Fix remembering window position. * Sampler instrument: Add entries to edit keybindings to the popup menu of the "R" button. * Audio: Add entries to the instrument effect popup menu for adding keybinding to change effect * GUI: Increase performance a little bit for effect sliders and other things. * Instrument widget: Fix immediately updating graphics of solo and mute buttons when changing solo. * Mixer: Add "Insert plugin" and "Connetion enabled" entries to the connection popup menu. * Instruments: Remove the "T" (through) button for MIDI instruments (served no purpose). * Audio: Cache ladspa plugin info so that they don't have to be loaded during program startup. Only info for included ladspa plugins are cached for now. This fixes very long startup time on windows when realtime virus scanning is enabled, but even startup times on Linux (and probably MacOS) is notably shorter. * Audio: Generally improve CPU usage by being more aggresive about not mixing audio when the output of a sound object is silent. * Audio: Increase audio level allowed to autosuspend a sound object. May lower CPU usage in some situations. * Windows: Remove some unnecessary info from crashreporter message. * Audio: Increase number of frames to fade out/in from 1024 to 2048 when changing mute on/off and various other things. * Audio: Don't recalculate latencies on the fly when a sound object is muted, auto-suspended, volume set to 0, and possibly other situations. Although constantly running mimumum latencies uses less CPU, doing this can also cause audible artifacts. E.g. if a plugin reports a latency of 2048 frames, we always compensate for a latency of 2048 frames in parallel running sound objects in the audio graph, even when the plugin makes no sound. * Modulators/preset: Fix modulator connections when loading .mrec files. * Mixer: Fix undo when creating new sound object from preset file by using keybinding. * Mixer: Fix assertion window popping up when creating new sound object from preset file by using keybinding. * Mixer: Make it configurable which A/B settings to apply. Click the button with a settings icon to configure. The options are: * audio connections * event connections * volume * panning * mute/solo/bypass * system effects * instrument effects * instrument states * mixer strips configuration * remember current instrument * modulator connections. * system volume Only audio connections, event connections, volume, panning, "mute solo bypass", and "remember current instrument" are enabled by default in new songs. * Sequencer: Fix wrong editor seqblock positions after undoing changing block tempos. * Mixer: Update connection line gfx immediately after changing solo for an instrument. * GUI: Fix Return and Enter keys working in tables. Bug introduced in last release . * Plugins: When loading song, don't try to set illegal program number if program number on disk is a negative number or higher than the number of programs provded the plugin. Fixes crash in at least one AU plugin. * Audio: Don't send events though (i.e. when "T" is enabled), when an instrument is implicitly muted and "Implicitly mute MIDI the same way as audio" is enabled. * Audio: Fix updating implicit mute/solo when removing a connection. * MIDI: Add the option "Implicitly mute MIDI the same way as audio" to song properties. I.e. when soloing, we also mute MIDI in implicitly muted instruments. This option is enabled by default for new songs, and disabled by default for old songs (to make sure they continue to sound the same). * Audio: Make transition from one A/B setting to another much smoother. Now solo, connections, and instrument effects are all changed at the same time. * Audio: Fix latency compensation being wrong in some (very) rare cases when recording from system input. Happened sometimes when there were event connections in the audio graph. * Preferences: Make it clearer what latencies are used in the "Latency compensation when recording from system input" option. * MIDI: Compensate for latency when playing notes. By default it only compensates for "System out" input-latency. * Preferences: Changed tab order a little bit. * Preferences: Moved various things from the "Audio" tab to the "Instruments" tab. * Instrument widget: Support right-clicking the A/B-buttons and the GUI button. * Sequencer: Less experimental default granulation parameters. * Mixer: Remember current instrument in a/b. * Instrument widget: Support right-clicking the "Replace" and "Load" buttons to configure keybindings. * FaustDev: Fix missing info from the info window. * Instrument widgets: Don't display multi-presets when asked to load/replace preset. * Disk: Don't put program into an endless message loop when loading an erroneous .rad/.rec/etc. file. * Instrument widget: Add "prev preset" and "next preset" buttons to quickly switch to previous or next preset in the directory where the instrument was loaded from (if loaded from preset file). If instrument was not loaded from a preset file, select prev/next preset from default or last used directory instead. * Instruments: Save preset filename to disk if instrument was loaded from a preset file. * Audio: Name VST/AU programs and not presets. "Program" is the common name, plus that "preset" can be confused with radium presets. * Instruments widget: Remove the program number- widget. Incorporate the number into the program name-button instead. * Instruments widget: Add "prev program" and "next program" buttons. Assign keybindings by right-clicking the buttons. * Instruments widget: Immediately update autosuspend button graphics when changing autosuspending type. * Audio: Change instruments to not send out events (i.e notes, MIDI messages, etc.) when they are muted. Same with bypass. Old songs behave as before, but this can be changed in the Song Properties. * GUI: Draw an SVG image for the various "reset ab"- buttons. Before this, a question mark was drawn instead of the curly arrow utf-8 character when running on windows. * Editor: Add option to select current block in the popup menu for the padlock-checkbox in the lower left corner. * Sequencer: Remove graphical garbage from the row of pixels placed between the seqtrack headers and the area to the right of the headers. * Editor: Fix various error messages popping up when switching current block while moving a pianonote. * API: * New: getNumInstrumentPrograms, getCurrInstrumentProgram, setCurrInstrumentProgram, setInstrumentProgramName, getInstrumentProgramName, getDirPath, getPathWithoutDir, getInstrumentPresetPath, getInstrumentPreset, selectInstrumentConfigNum, resetInstrumentConfigNum, getCurrInstrumentConfigNum, instrumentConfigNumIsUsed, getMidiInstrumentLatencyType, setMidiInstrumentLatencyType, getCustomMidiInstrumentLatency, setCustomMidiInstrumentLatency, includeAudioConnectionsInMixerConfig, setIncludeAudioConnectionsInMixerConfig, includeEventConnectionsInMixerConfig, setIncludeEventConnectionsInMixerConfig, includeVolumeInMixerConfig, setIncludeVolumeInMixerConfig, includePanningInMixerConfig, setIncludePanningInMixerConfig, includeMuteSoloBypassInMixerConfig, setIncludeMuteSoloBypassInMixerConfig, includeSystemEffectsInMixerConfig, setIncludeSystemEffectsInMixerConfig, includeInstrumentEffectsInMixerConfig, setIncludeInstrumentEffectsInMixerConfig, includeInstrumentStatesInMixerConfig, setIncludeInstrumentStatesInMixerConfig, includeMixerStripsConfigurationInMixerConfig, setIncludeMixerStripsConfigurationInMixerConfig, includeRememberCurrentInstrumentInMixerConfig, setIncludeRememberCurrentInstrumentInMixerConfig, includeModulatorConnectionsInMixerConfig, setIncludeModulatorConnectionsInMixerConfig, includeSystemVolumeInMixerConfig, setIncludeSystemVolumeInMixerConfig, instrumentEffectExists, getInstrumentEffectType. * Deleted: setInstrumentIsImplicitlyMuted, setInstrumentIsImplicitlySoloed Changes 6.4.76 -> 6.4.77: * Autobackup: Don't create autobackup for demo songs. * Instruments: Fix rare crash (only seen on osx) when deleting a Sampler instrument that has a GUI open. * Internal: Various general checks and assertions to avoid crashes when deleting audio instrument. * MIDI: Fix import MIDI file. Note that some MIDI files are still not loaded when using Windows. This will hopefully be fixed in the next release. Changes 6.3.84 -> 6.4.76: * MacOS: More fixes for the sequencer graphics not always being updated after resizing. * Windows: Fix incorrect error message sometimes popping up about wrong number of bytes written to disk. * Keybindings: Add GUI to edit keybindings. Select "Edit keybindings" in the Help menu to open. * Mac/Editor: Fix mouse pointer sometimes behaving weirdly if moving outside the edges while editing. (Just turned off window edge-handling for mac.) * FaustDev: Improve line number margin width in the text editor. * Demo songs: Clean up mixer object positions in the Romance song. * FaustDev: Use fixed-width (mono-sized) font in the code editor. * Audio: Fix inaccurate latency values when the sampler player or seqtrack plugin has audio inputs. Since audio is not normally sent through these two instruments (the input connectors are mainly used for recording audio only), we don't usually want input latency added to the output latency. * Sequencer: Show time under mouse cursor in statusbar when mouse is in the time area and nothing else is currently shown in the statusbar. * Mixer: Add popup menu for connections. * Mixer strips: Fix the "Delete plugin ..." option in the popup menu. * Instruments: Add preferences-option to enable Sample Seek / MIDI Chase by default when creating a new instrument. * Manual: Update documentation about sample seek and MIDI chase. (Tooltip for the "S" button updated as well.) * Instruments: Fix showing current instrument when undoing/redoing creating MIDI instrument. * Mixer strips: Always show the "Set current instrument" entry below the "Force as current instrument" checkbox in the popup menu. * Sequencer: Fix graphics not updating immediately after undoing stretching seqblock. * Audio: Add latency compensation when recording from input connections in the sequencer and in the sampler instrument. Automatically determined by default, but it's also possible to set a custom value. * Audio: Compensate for soundcard input/output latency when recording from system input. Implemented both for recording in the sequencer, and for recording in the sampler instrument. * Jack: Fix connecting audio input and output for "System in" and "System out" instruments when there are both physical MIDI ports and physical audio ports. * Jack: Show message during startup if connecting system input ports failed. * Jack: Fix auto-connecting Jack ports when there both physical MIDI ports and physical audio ports. * Jack: Fix not always working to set name of Jack input ports. * GUI: Add option to put the sequencer in the bottom of the mixer instead of in the lower tabs in main window. * Sequencer: Fix shift-right-clicking multiple seqblocks. * Sequencer: Fix Shift + rightclick to delete seqblock. Bug probably introduced in 5.9.99. * Sequencer: Fix various situations where the graphics was not updated. * API: * Renamed: mainMixerIsInWindow->mainMixerInWindow, switchMixerIsInWindow->switchMainMixerInWindow, instrumentWidgetIsInMixer->instrumentInMixer, setInstrumentWidgetInMixer->setInstrumentInMixer, switchInstrumentWidgetInMixer->switchInstrumentInMixer. * New: sequencerInMixer, setSequencerInMixer, switchSequencerInMixer, sequencerInMainTabs, configureSequencerWidget, gui_getMixerYSplitter, getRecordingLatencyFromSystemInputIsAutomaticallyDetermined, setRecordingLatencyFromSystemInputIsAutomaticallyDetermined, getCustomRecordingLatencyFromSystemInput, setCustomRecordingLatencyFromSystemInput, setSeqtrackRecordCompensateLatency, getSeqtrackRecordCompensateLatency, enableSampleSeekByDefault, setEnableSampleSeekByDefault, gui_editor, gui_editorLoadFile, gui_editorSetFile, gui_editorSave, gui_editorFind, gui_editorFindNext, gui_editorAddTextChangedCallback * writeToFile: Change return type from int to bool. (Returns false if writing failed.) Changes 6.3.83 -> 6.3.84: * Editor: Fix assertion window popping up if trying to delete a MIDI-added note while recording MIDI. * Windows: Fix rare crash in portaudio when probing WDMKS audio drivers. Fix for both Jack and QJackCtl. Changes 6.3.82 -> 6.3.83: * Sequencer: Fix popup menus for fade/speed/stretch * Sequencer: Add "Help" entry to the main sequencer popup menu * Editor: Add "Help Pianoroll" entry to the bottom of the pianoroll popup menus Changes 6.2.91 -> 6.3.82: * Disk: Fix load song (bug introduced in 5.2.91) Changes 6.1.99 -> 6.2.91: * Macos: Fix editing keybindings by right-clicking a GUI element. * MacOS: Necessary to kill qjackctl as well when killing jack. * Windows: Fix right-clicking a menu entry in the main menus. * Manual: Update information about Quantitizing FX in the editor. * Linux: Fix loading song with spaces from the command line. * API: rightclickPopupMenuEntry Changes 6.0.99 -> 6.1.99: * Editor: Fix crash in quantization function Changes 5.9.99 -> 6.0.99: * Audio: Fix illegal parameters for some LADSPA plugins in some situations. (Caused by "log 0".) * Windows: Fix the left windows qualifier key not working when doing mouse operations. * Editor: Paint velocity text for velocities that are not the first or the last of a note in a separate color. * Editor: Paint last velocity text for a note in a separate color. * GUI: Add hex value information to the instrument effect popup menu. * Shutdown: Fix semi-rare crash during shutdown when painting the sequencer. * Linux: Show popup info box when finished compiling. * MacOS: Add option in Preferences to swap Ctrl and Cmd. * MacOS: Let Left Cmd key always behave as Left Ctrl since not all macs have a left ctrl key, and left cmd key is not used for anything in radium. * OpenGL: Ensure crashreporter is not shown when OpenGL can not start. * Audio: Update recursive graph error message. * Manual: Update mixer documentation. * MacOS: Fix so that Ctrl-left-clicking does not behave as right-clicking. * Mixer: Fix object positions being screwed up when moving several objects while pressing ctrl. * Mixer: Add more zoom options to the popup menus. * GUI: Fix quirkiness when opening sub menus with keyboard. * Build: Fix building on gcc8. * Mac: Change mouse-qualifier keys to be similar to Linux and Windows. * Sequencer: Fix "M" checkbox not updating in the "Tracks" right-side tab when mute state is changed for an editor seqtrack. * S7: Roll back to V8.16 / 2020-3-2. * Sequencer: Fix seqblock automation sometimes lightning up when mouse is inside the right-side tabs. * Mixer strips: Fix displaying whether instrument strip is selected or not. * Mixer strips: Ctrl-click a strip to select/deselect instrument. * GUI: Let the instrument widget share keyboard focus with the mixer. * Mixer strips: Speed up redrawing changing current mixer strip. * Build: Fix build for gcc 9. * Audio: Fix various race conditions when changing current instrument. * Mixer: Paint name of current mixer object and current mixer strip in white color. * Mixer: Paint border around current mixer instrument, not around current instrument. * Mixer: Introduce concept of current mixer instrument. * Mxier: Change various functions that by default operated on the current instrument to work on the current mixer instrument instead. * Audio: Change default send/receive name from empty to "default" in the Send/Receive instruments. * Editor: Fix "Copy" and "Cut" not working from the pianoroll popup menu when note is not selected. * Edit: Improve pitch shrink/expand requester text. * Sequencer: Generate unique editor block name when selecting "clone block". * Build: Fix FAUST HTTPDServer compile. (Teteros) * Build: Fix Fluidsynth linking. (Teteros) * Editor: When changing second-last veltext value of a note, change end velocity end as well if it was equal to the second-last value. * API: * New: getCurrentInstrumentUnderMouse, setCurrentInstrumentUnderMouse, mousePointerCurrentlyPointsAtInstrument, getCurrMixerInstruments, addCurrentInstrumentChangedCallback, removeCurrentInstrumentChangedCallback, addCurrentInstrumentUnderMouseChangedCallback, removeCurrentInstrumentUnderMouseChangedCallback, setInstrumentIsSelected, switchInstrumentIsSelected, swapCtrlAndCmd, setSwapCtrlAndCmd. * Removed: getExtendedSelectedInstruments, control2Pressed, alt2Pressed. * Make current block the default argument for addUndoBlock. * Changed various default values from getCurrentInstrument() to getCurrentInstrumentUnderMouse(). Changes 5.9.98 -> 5.9.99: * GUI: Make it possible to edit keybinding for most popup menu entries. * GUI: Make it possible to edit keybinding for most main menu entries. * GUI: Display keybindings in a different color in the menu entries. * Manual: Lots of improvements. * Audio: Option to turn off latency compensation. May be useful when recording audio. * Mixer: When switching mute/solo/bypass for several selected instruments, switch each one individually. * Edit: New function "replace with fixed velocities". * General: Reduced memory usage. * MIDI learn: Fix loading/saving song with parameters learning from event-connections. Note that loading old song still don't work (due to a necessary format change), but after relearning loading should work. * Modular Mixer: Fix setting the volume of all selected sound objects at once. * Pd: Fix assertion popping up in debug mode when sending effect value. * Midi learn: Fix rare crash. * Pd: Increase number of input and output channels from 2 to 16. * Editor: Minor improvement to the track header popup menu * Edit: Immediately give keyboard focus to editor when mouse enters the edit tab. * GUI: Immediately give keyboard focus to widget under mouse. * Editor: Fix graphics not updating immediately after pasting subtrack or timing track. For instance if pasting swing, fx, or BPM. * Editor: Various new entries (clear/cut/insert/delete/mark/etc.) to the bar/beat popup menus. * Editor: Remember range positions when undoing and redoing. * Editor: Optimize undo. * Editor: Let the Delete key delete beat or bar if hovered by mouse. * Menus: Fix delete / stop notes / delete velocity. * Editor: Removed QWERTY_A keybinding (alternative to pressing DEL). Probably pressed most by accident. * Editor: Don't hide indicator graphics when opening popup menu. * Editor: Mark range when clicking in the beats track. * Editor: Tweak range color. Increase saturation. * Editor: Draw transparent green color above bar or beat above all tracks when mouse is above a bar or a beat in the bar/beat track. * Editor: Draw current bar or beat number in a different color when hovered. * Editor: Display name of timing tracks and so forth in status bar when hovered. I.e. the tracks to the left of the note tracks. * Sequencer: Make it possible to move seqblocks with right mouse button too. (The brain might sometimes wants to do that since you move objects with right button in the mixer.) * fix * Mixer strips: Change color slightly for the slider on/off button when hovered. * Mixer strips: Fix paint mute/solo buttons when hovered. * Instruments: Add "Insert send" entry to the instrument popup menu. * Instruments: Add "Forced as current instrument" checkbox to the instrument popup menu options. * Mixer: Don't unset selected instruments when setting current instrument. * Mixer: Set newly created instrument as the only selected instrument after creating new instrument. * Mixer: Automatically select instrument when hovering over an object. * GUI: Possible optimization * Mixer strips: Automatically change current instrument when hovering, except when current instrument is locked. * Mixer strips: Fix sometimes displaying wrong number of rows if a bus is set to be displayed as a plugin in a mixer strip. * Sequencer: Add "Forced as current block" checkbox to the editor seqblock popup menu. * Editor: Add padlock-checkbox in lower left corner to prevent program from automatically changing current block. * Editor: Drag the world when dragging using middle mouse button. * Sequencer: Drag the world when dragging using middle mouse button. * GUI: Make sure editor always becomes visible when pressing F5 and sequencer is in Full mode. * GUI: Make sure mixer always becomes visible when pressing F7 and sequencer is in Full mode. * GUI: Make sure editor gets keyboard focus when pressing F5 and sequencer is in Full mode. * GUI: Make sure mixer gets keyboard focus when pressing F7 and sequencer is in Full mode. * Mixer strips: Various fixes to popup menus. * Modular mixer: Rewrite all popup menus. * Instruments: Add "Load random sample", "Connect to main pipe", "Insert plugin", "Mute", "Solo", and "Bypass" entries to the instrument popup menu. * Instruments: Write in the status bar if solo/mute/bypass under mouse cursor has been turned on/off by automation. * Instruments: Clean up various solo/mute/bypass behaviors.* Mixer: Fix mouse cursor not changing shape when doing things. Bug probably introduced when switching to qt 5. * Mixer: Drag the world when dragging using middle mouse button. * Audio: Fix some strange behaviors when muting and unmuting System out" and other sink objects. * GUI: Tweak button size. * Editor: Paint automation indicator arrow (i.e. the long vertical and horizontal lines) in the same color as they are pointing to. E.g. indicator arrows are painted in automation color or velocity color depending on whether we are editing automation or velocity. * Mixer: New general main popup menu. To add a new sound object, now select "Insert new sound object" from the new general main popup menu. * GUI: When pressing F5 and editor is visible but doesn't have keyboard focus, give keyboard focus to editor instead of hiding editor. Same behavior for F7 (mixer) an and F8 (sequencer). * Sequencer: Make it possible to set gain for editor seqblocks as well, not just sample seqblocks. * Mixer: Don't show popup menu after creating selection rectangle with right-mouse button. * Editor: Write the name of the FX instead of "Fx text" in the status bar when moving the cursor to an FX text subtrack. * Mixer: Let double-click switch between wide and non-wide. Before, it was enough to click two times. * Mixer: Add option "Prevent program from switching instrument" to the popup menu of the current instrument. * Instruments: Add "Set current instrument" option to the instrument lock popup menu. * Sequencer: Don't autoscroll seqtracks when using seqtrack header interface. * Instruments: Add a "lock" checkbox in the upper left corner to prevent the program from changing current instrument. * Mixer: Don't create unnecessary undo when trying to create connection between two sound objects that were already connected. * Mixer: Don't delete invisible connection when Shift+rightclicking on top of one. * Mixer: Don't show thick line of invisible connections when mouse cursor is above one. * Mixer: Paint "vu arrows" on the connection lines. * Mixer: Let the connection lines blink when notes are played. * Audio meters: Various fixes and optimizations. * Audio: Fix audio meters updating/decaying at correct speed when CPU is too buzy to update graphics every frame. * Mixer: Fix list of instruments listed up as alternatives for creating send connections. * Mixer: Fix creating recursive connection. Before, interface connection lines in the mixer were created after attempting to create recursive connections, causing all sorts of errors and assertions to pop up. * Mixer: Fix no sound when inserting a Send to a sound object without audio outputs. * Mixer: Reduce CPU usage. * Mixer: Paint arrow on connections in the modular mixer. * Mixer: Let connection both increase in size, and change color, when the sound is higher. * Mixer: Update modular mixer graphics each frame, not each third frame. * Mixer: Speed up the note event led display 3X. * Mixer: Tweak event connection graphics. * Mixer: Light up event connections when events go through them. * Mixer: Paint direction arrows on audio and event connections. * Sequencer: Make sure current seqtrack is always fully visible after changing current seqtrack. * GUI: Automatically unshow sequencer in full mode, if necessary, when pressing F5 to show editor, F6 to show playlist, F7 to show Mixer, and when showing mixer strip for current instrument. * GUI: Automatically unshow sequencer in full mode, if necessary, when pressing . * Sequencer: Save seqblock selected status to disk. * Sequencer: Remember seqblock selected status after finishing moving seqblocks. * Sequencer: Fix ctrl-press to select/deselect single seqblock. * Sequencer: Display seqblock name in the separator texts in the seqblock popup menus. * Sequencer: Display "Seqblocks (selection)" as separator text for the seqblock separator text in the seqblock popup menus when more than one seqblock is selected (for cut/copy/paste/etc). * Sequencer: Fix right-clicking a seqblock two times in a row in such a way that current seqblock wasn't updated. * Sequencer: Always let seqblock under mouse be current seqblock. * Bottom bar: Scale down font size if text doesn't fit in status label. * Audio/Patchbay: Fix screwed up effect names when using more than one type (e.g both using 8x8 and 16x16). * GUI: Fix rare freeze when showing a window. * GUI: Only show warning about a missing color the first time, not every time the color is used. * Startup: fix missing "high_editor" color during startup. * Sequencer: Let selected seqblocks still be selected after moving them. * GUI: Reserve more vertical space for the status bar. * Sequencer: Put esoteric/confusing options into the "Advanced" sub menu in the editor seqblock popup menu. * Sequencer: Add "Replace audio file" options to the audio seqblock popup menu. * Sequencer: Clean up "replace" options in the editor seqblock popup menu. * Sequencer: Make the "Clone editor block(s)" popup menu entry less confusing. * Blocklists: Automatically scroll blocklist (if necessary) after changing current block, to ensure current block is visible. * Sequencer: Let "set seqblock name" and "set seqtrack name" share shortcut (i.e. same function is called for both.) * Internal: Avoid bignums. * Build: Remove qtstyleplugins. * API: Prevent looping and punching from being enabled at the same time. * Sequencer: Add "Set name" to seqtrack popup menu. * Sequencer: Fix seqtrack names not always updating immediately after being changed. * Sequencer: Set current seqtrack to 0 and scroll to the top after loading. * GUI: Fix popup menu layout of already opened menus after changing system font. * Sequencer: Store grid enabled/disabled to song files. * Sequencer: Grid is now disabled by default. * Sequencer: Store the color of audio file seqblocks to disk. * Sequencer: Fix some unnecessary space that sometimes were left in the bottom of the sequencer after increasing height of sequencer. * Sequencer: Make sure current seqtrack is always visible after resizing. * Sequencer: Write "Grid: " instead of "G: " on the grid button * Sequencer: Add "Popup menu for seqtrack #" entry to the bottom of the popup menus for seqblock, seqtrack automation, and seqblock automation. * Editor: Fix mouse speed when editing velocity tempo automation. * Editor: Improve GFX performance a lot when moving mouse, at least on Linux. * Sequencer: Make Windoews + up/down keybindings select prev/next seqtrack. * Sequencer: Fix keybinding displayed for selecting previous/next seqblock. * Sequencer: Only show seqblock entries in the popup menu when right-clicking a seqblock. * Sequencer: Don't show the seqblock entries in the main popup menu. * Sequencer: Add "Insert current audio file" to popup menu. * Sequencer: Rename "Insert existing block" to "Insert block". * Sequencer: Rename "Insert new audio file" to "Insert audio file". * Sequencer: Remove "Insert new block from disk" from the popup menu. * Sequencer: Moved the functionality of "Insert new block" into "Insert block". * Sequencer: Change "Insert audio file" to select from current audio files + option to load from disk, instead of only having to load from disk. * Sequencer: Order audio files alphabetically. * Sequencer: Make sure initial value is within the legal boundaries when creating new automation. * Menus: Fix displaying various keybinding names. E.g. instead of "Left", "LEFTARROW" was displayed. * Sequencer: Fix showing current seqtrack after loading. * Sequencer: Add "Swap with prev seqtrack" to popup menu. * Sequencer: Make it possible to add keybinding for setting seqtrack height by right-clicking the "H" radio buttons. * GUI: Workaround for broken qfiledialog in Qt 5.15. Wrong sizeadjustpolicy for the filetype combo caused extremely wide windows. * Sequencer: Some improvements to the popup menu. * Sequencer: Don't show error message if copying, cutting or deleting selected seqblocks while there is no seqblock directly under mouse cursor. * GUI: Fix background color for the "override keybinding?" table when using Qt 5.15. * GUI: Fix popup menus not being wide enough for menus with long separator texts (workaround for Qt bug). * Editor: Clean up menu to select track for instrument. (F12) * Editor: Remove the keybindings for 1 and 1L1. These splitted / unsplitted lines, which are probably not very useful functions, but they could also be confusing if hitting the keys by mistake. * Editor: Fix Shift + F not always creating new block. * Audio: Show warning window during startup if using Jack 1. Radium is likely to freeze when using Jack 1. * Editor: Make Right Alt + Up/Down work on everything, not just note text, velocity, and fxtext. * Editor: Fix Right Alt + Up/Down not working on fxtext and velocity. * VST: Show warning message when loading the ZamDelay VST plugin. * Internal: Optimize velocity and fx rendering. * Editor: Make transpose functions general so that they work on BPM, swing, fx, velocity, etc. * Update S7 * Editor: Include entries to show help pages for the various timing tracks in the timing popup menu. * Linux: Remove "Edit Menus" from the help menu. * Linux: Let "Edit Keybindings" in the help menu open ~/.radium/keybindings.conf and not keybindings.conf in the Radium binary directory. * Import MIDI: Fix importing songs that have more start-note messages than stop-note messages. * Blocks: Fix undo delete and undo insert block. Before it messed up the block order and/or pauses in the sequencer and playlist. * Menus/Linux: Check the name of the process to kill in the script to prevent X from locking up. Debug-mode only. * GUI: Fix keyboard up/down keys selecting correct prev/next entry right after opening a popup menu. Before it always behaved as if the first entry was selected, even when the mouse hovered an entry in the middle of the popup menu. * Sequencer: Fix vertical seqtrack scrollbar not always working. Bug introduced in 5.9.98. * Build: Support gcc 10. * Pd: Support the ctlin and ctlout Pd objects. * GUI: Use popup-menu code to create the main menus as well. Looks nicer and it works to right-click to configure keybindings. * GUI: Tweak menu graphics. * Sequencer: Name the sequencer timing part of the popup menu to "Timing mode" (previously unnamed). * MIDI: Don't apply channel to MIDI system messages (0xf0->0xff) when using track channel for MIDI input. * Jack sanity checker: Ensure that the physical ports that we connect to are Audio ports (not MIDI ports or anything else.) * Jack: Don't ask user if he wants to kill jack if creating test-connections failed because they already existed. * GUI: In the change-keybinding-window, set the default values for the editor/mixer/sequencer focus buttons to what is currently used, if a keybinding already existed for the command. * Crashreporter: Remove Arch linux namedropping. The package is decent now. * Build: Fixed install instructions * Build: Fix "make clean" failing * Editor: Reorganize popup menu entries under "Clipboard (track ...)". Not all entries were clipboard entries. * Sequencer: Fix Shift + rightclick to delete seqtrack. (It deleted current seqtrack instead of the seqtrack under mouse.) * Linux: Only use included libxcb if the system-version of libxcb is too old or doesn't exist. * Editor: Add "Cut", "Delete all selected notes", and "Delete this note" to the pianonote popup menu. * Editor: Made copy/cut/delete operate on the current note in the popup menu instead of the selected notes, if current note is not selected. * Editor: Add "Pianoroll visible" to the pianonote popup menu. * Editor: If right-clicking in the pianoroll without clicking on a pianonote, and cursor is not moved, make to options copy/cut/delete/paste/pianoroll options visible in the popup menu. * Internal: Check that "declare-variable" variables have actually been declared after starting up. * Editor: Add "Copy" option to pianonote popup menu. * minor fix for prev. commit * Editor: Don't unhighlight pianonote when right-clicking it. * Editor: Add "Selected" option to the pianonote popup menu. * Editor: Make Ctrl + X cut selected notes in the pianoroll. * Editor: Make Ctrl + C copy selected notes in the pianoroll. * Editor: Make Ctrl + V paste into pianoroll. * Editor: Keybinding to copy block is now CTRL+SHIFT+C. * Editor: Keybinding to paste block is now CTRL+SHIFT+V. * Mixer: Mouse pointer doesn't have to be inside the mixer when copying/cutting mixer objects. * Sequencer: Mouse pointer doesn't have to be inside the mixer when copying and cutting seqblocks. * Audio: Possible to create recursive audio graphs by using new sound objects "Send" and "Receive". * Build: Fix running Radium after running ./install.sh. * Build: Inform about the files install.sh and bin/packages/README when running "make install". * Build: Display total compilation time when finished. * Jack: If killing jack during startup, display what's happening in the progress window. * Startup: Hide progress window before displaying final message. * Editor: Display "ghost note" in piano roll. * General: Support NSM. (session manager system used in Linux.) * macOS/Linux: Make Radium quit in a clean way when receiving SIGTERM. * Editor: Fix assertion window popping up when assigning track to an audio instrument without inputs or outputs. * Edit: Make all "Range" operations operate on the selected notes in the pianoroll if current block has no range. * Edit: Don't create undo when nothing was quantitized or transposed. * Startup: Don't show crash reporter if program failed to start OpenGL. * Edit: Add "Microtonal" checkbox to "Randomize pitch". Tt always created microtonal pitches before. * Mixer: Fix minor memory leak. * Linux/Macosx: Fix compiling with newer bdf.h * Sequencer: Fix program sometimes crashing in debug mode when finalizing a seqblock or seqtrack. * API: * New: gui_addAfterDeletedCallback, setRange, createOscServer, closeOscServer, getOscProtocolFromUrl, addOscMethod, closeOscMethod, sendOscMessage, sendOscMessageFrom, addDirtyStatusChangeCallback, removeDirtyStatusChangeCallback, getPid, getArgv0, nsmHasInited, waitUntilNsmHasInited, nsmIsActive, getNsmClientId, supportsSwitchNsmCapability, setSupportsSwitchNsmCapability, dirExists, createDir, setCurrentPianoGhostNote, cancelCurrentPianoGhostNote, hasCurrentPianoGhostNoteStart, getCurrentPianoGhostNoteTracknum, getCurrentPianoGhostNoteStart, getCurrentPianoGhostNoteEnd, getCurrentPianoGhostNoteValue, copySelectedPianonotes, cutSelectedPianonotes, deleteSelectedPianonotes, pastePianonotes, addPopupMenuClosedCallback, removePopupMenuClosedCallback, getCurrentPianonote, forceDeleteSeqtrack, editorHasKeyboardFocus, mixerHasKeyboardFocus, sequencerHasKeyboardFocus, addMenuMenu2, addToProgramLog, exportSong, importSong, clearSong, showBpmTextHelpWindow, showLpbTextHelpWindow, showSignatureTextHelpWindow, showLzTrackHelpWindow, showTempoAutomationTrackHelpWindow, setTrackSwings, generalTransposeEntryDown, generalTransposeEntryUp, generalTransposeTrackDown, generalTransposeTrackUp, generalTransposeRangeDown, generalTransposeRangeUp, generalTransposeBlockDown, generalTransposeBlockUp, setInstrumentColor, gui_getMouseX, gui_getMouseY, requestWString, base64StringIs8bitCompatible, setCurrentInstrumentLocked, isCurrentInstrumentLocked, switchSetCurrentInstrumentLocked, showHideFocusEditor, showHideFocusSequencer, mixerIsVisible, showHideFocusMixer, getCurrMixerSlotX, getCurrMixerSlotY, showHideInstrumentGui, getInstrumentSoloFromStorage, getInstrumentMuteFromStorage, getInstrumentBypassFromStorage, allowAutomaticallyChangingCurrentBlock, setAllowAutomaticallyChangingCurrentBlock, switchAllowAutomaticallyChangingCurrentBlock, gui_getCurrMouseButton, switchSetInstrumentAlwaysReceiveMidiInput, switchWideInstrumentStrip, getPlaceFromRealline, getReallineY1, getReallineY2, getTempoVisualizerTracknum, getBpmTracknum, getLpbTracknum, getSignatureTracknum, getLinenumTracknum, getBeatTracknum, getSwingTracknum, getTempoAutomationTracknum, getReallineFromY, getTopRealline, getBotRealline, getBeatBarBorderX, setCurrentBar, setCurrentBeat, getCurrentBar, getCurrentBeat, cancelCurrentBeat, getBeatAtRealline, getBeats, getBeatStart, getBeatEnd, getBarStart, getBarEnd, insertLines2, deleteLines2, getBeatAtPlace, hasBeat, pasteRange2, cutRange2, copyRange2, clearRange, clearRange2, hasRangeInClipboard, nsmNewSong, nsmSave, nsmDuplicate, nsmOpen, nsmQuit, newOrClearSong, saveAsOrExportSong, loadOrImportSong, gui_drawSvg * Deleted: showFXHelpWindow, getFxrangenodePlace, getFxrangenodeValue, getFxrangenodeLogtype, getFxrangeName, getNumFxrangenodes, getNumFxsInRange * Optional argument "ignore_nsm" for saveAs, load, newSong, saveWithEmbeddedSamples, and saveWithoutEmbeddedSamples. * Python: Support for the "Place" type. * Remove optional argument "force_delete" from deleteSeqtrack. * Don't allow sending negative place as argument for addNote to InsertNote. It's not a valid place and program isn't able to handle it either. * Remove the default arguments for end_line, end_counter, and end_dividor since none of them were legal. * Renamed getAllTrackSwings to getTrackSwings * generateNewInstrumentColor: Let default argument for "instrument_id" be the current instrument. * Change order of arguments for setSeqtrackMinHeightType and setSeqtrackMaxHeightType. * Let current seqtrack be the default seqtrack argument for getSeqtrackMinHeightType, setSeqtrackMinHeightType, getSeqtrackMaxHeightType, and setSeqtrackMaxHeightType. * Add optional argument "paint_on_top" to api_addPaintCallback. * Add optional arguments "forgiving" and "only_inside_timeline" to getCurrSeqtrackUnderMouse. * Fix getCurrSeqtrackUnderMouse. * setShowBarsAndBeatsSequencerLane: Automatically show time sequencer lane instead of throwing error. * setShowTimeSequencerLane: Automatically show bars and beats sequencer lane instead of throwing error. * configBlock: Add optional argument "blocknum" * removeSchedule: Release callback immediately. Minor memory usage improvement. * autoscrollSeqtracks: Add optional argument "make_fully_visible". * Fix canAudioConnect. It only returned false if it would create a recursive audio connection, not even taking event connections into account. * Add optional argument "bool change_curr_instrument" to setCurrSeqtrack. * Add optional argument "bool only_change_if_unlocked" to setCurrentInstrument. * Minor fixes to getInstrumentBypass, setInstrumentBypass, and getInstrumentSoloed. * deleteInstrument/showInstrumentGUI/hideInstrumentGUI: Give default values to all arguments so they can be used as keybindings. * Add optional arguments blocknum and windownum to getTrackSliderX1/X2/Y1/Y2. * Add optional argument only_select_if_allowed_to_automatically_change to selectBlock. * requestLoadInstrumentPreset/saveInstrumentPreset/showInstrumentInfo: Give default values to all arguments so they can be used for keybinding. * Fix getRangeEndTrack and setRange. * Fix getBeatAtPlace * Add optional argument "rangetype" to cutRange, copyRange, pasteRange, getNumTracksInRange, and getRangeLength. * Fix gui_textWidth causing all later calls to paintEvent to fail if gui_textWidth was not called from a paint callback and guinum is 0 or bigger. * Let "createIllegalFilepath()" be the default argument for loadSong. * API: Show error message if trying to call saveAs, load, or newSong in NSM-mode. * Fix crash in setTrackSwings if providing two swings on the same position. Changes 5.9.96 -> 5.9.98: * Windows: Some adjustments to make the 32 bits version run longer without running out of memory. More work needed here. * Windows: Fix false positive malware detection in various VP software. Was mainly a problem with the 32 bit version of Radium. * MacOS: Fix mouse hovering in the editor not working since 5.9.86. * Internal: Update S7 * Editor: Moving a selected note in the pianoroll causes all other pianonotes to be moved as well. Same when moving the start/end/node of a pianonote. * Editor: Press Ctrl to select/unselect notes in the pianoroll. * Editor: Press Ctrl and drag mouse to create note selection rectangle in the pianoroll. * Internal: Upgrade JUCE from 5.4.3 to 5.4.7. * Linux: The old custom patches for the ALSA MIDI code in JUCE is still used, so there will be no change in the port naming scheme, or bad performance, even with the new version of JUCE. * VST/AU: Eliminate use of an unnecessary input/output buffer. May reduce CPU cache hits if using many VST/AU plugins. * Song properties: Extend the "Send global swing tempo to plugins and jack transport" text to include modulators, metronome, and jack tracksport as well. * Editor: Don't move FX if cursor is placed on a chancetext or centtext subtrack when pressing backspace or alt+backspace. * Editor: Make backspace and alt+backspace only operate on current FX if cursor is placed on an FX text subtrack. * Editor: Only create undo when pressing backspace or alt + backspace result in a change. * Editor: Make it possible to input rational and decimal numbers for shift+return. * Editor: Use ratios instead of floats for calculation when pressing backspace and alt+backspace. This fixes situations where rounding errors caused notes and other events to sometimes be placed right below the start of a line. * Internal: Various assertions that float and double numbers are valid. * Build: Compile with -Wfloat-equal. * OpenGL: If OpenGL crashes during startup, write explicitly that there's something wrong with the computer, to emphasize that it's not a bug in Radium. (One of the most common cause of crashes is people using the very unstable Nouveau graphics card driver for Nvidia cards on Linux.) * Build: Print source file name in green color. * Build: Display compilation time for each file. * Sequencer: Fix some minor issues when painting the sequencer and navigator bars. * Editor: Fix editor not being updated immediately after selecting paste block from the menus. * Disk: Fixes loading and saving songs with lineshift in the instrument names. * Editor: Make the tempo graph thicker, i.e. the timing track under "Grid". Also adjust color. * Swing: * Editor: Fix mouse cursor not changing shape to split-horizontal when cursor is above a place when it's possible to change width of track, and the next track has swing-text visible. * Editor: Fix undoing track swing. * Editor: Make backspace and alt+backspace work on track-swing if cursor is placed on a swing subtrack. * Editor: Let the tempo graph display tempo of current track. Relevant when using track swings. * Player: Fix extreme swing values, and probably extreme values of other tempo types as well, which could cause inaccurate timing, assertions, and perhaps crashes. * Editor: Fix line cursor jumping to the wrong line when stopping to play. * Editor: Fix track swings not being taken into account when starting and stopping to play * Editor: Take track-swing into account when displaying waveforms. * Sequencer: Make it optional whether to display track-swinging beats in editor tracks in editor seqblocks. * Sequencer: Make it optional whether to use block-swing when displaying beats in the timeline. * Sequencer: Make it optional whether to use block-swing for the grid. * Editor: Don't set current track to track 0 when undoing/redoing and cursor was positioned on a timing track when creating the undo. * Editor: Fix loosing BPM "glide" state when undoing, redoing, copying, pasting, and cutting. * GUI: Fix accidentally pressing Ctrl+Z in the terminal after moving a pianonote outside the boundaries of a pianoroll, making it seem like Radium had frozen. What actually happened was that the mouse pointer was forcefully moved outside the the main Radium window. * Build: Fix various null-dereference gcc 8 warnings. * Build: Fix building using Debian Buster 10.2. (another sh -> bash fix). * GUI: Fix memory corruption if first message displayed in the status bar is exactly 10 characters long. * Preferences: Add line/beat/bar opacity options to the "Editor"-tab. * Editor: Fix subtracting 250 from bar and beat opacities before rendering. * Editor: Fix dragging vertical scrollbar up and down. Broken in 5.9.96. * Editor: Fix mouse wheel not always working in the editor. * Manual: Various updates, mainly to the editor. * API: * sendKeyEvent, optimizedBuild, gui_postKeyEvent, getNoteNum, hasSelectedNotes, showPianorollSelectionRectangle, hidePianorollSelectionRectangle, getAllNotes. Changes 5.9.95 -> 5.9.96: * Sequencer/Editor: When moving the sequencer cursor, only scroll the current editor block up or down if the sequencer cursor in the current seqtrack is above the current editor block. * Manual: Update Swing page a little bit. * Instruments: Add four FaustDev example instruments to the instrument menu. (Saw, Square, Sine, and Triangle.) * Mixer strips: Fix new plugin automatically being set as the new current instrument after selecting "Insert plugin". That was not supposed to happen. * Sampler instrument: Fix recording sample to disk when instrument name contains very special characters. * Menus: Remove "Import XM" from the File menu. It is not working well enough to be put there. * Import MOD: Ignore a couple of errors in order to load more MOD files. * Import MOD: Hide the volume sliders from the track headers in the editor to makes the pan values more visible. * Sequencer: Made it possible to configure the color of the current list entry border. * Preferences: Remove a couple of unused colors. * Sequencer: Fix color for current seqtrack border. (It used color for current mixer strip border instead.) * Editor: Don't hardcode alpha value of the border of pianoroll note colors. Changes 5.9.93 -> 5.9.95: * Editor: Make sure the pianoroll of the first track is always visible after pressing Shift + left and the cursor ends up in one of the timing tracks. * GUI: Add a "Visible" checkbox to the popup menus of the editor, the mixer, and the sequencer. * Export soundfile: Make it impossible trying to create a FLAC file with 32 bits or float format since those are not supported by FLAC. * Plugins: Just ignore loading plugin cache from disk if hash version on file is newer than is currently supported in the program. * Plugins: Save plugin cache in hashmap V3 format so that older versions of Radium can still be used after scanning new plugins. (All versions of Radium between 5.9.90 and 5.9.93 will probably be marked unstable soon because of this.) * Instruments: Fix undoing delete instrument. This operation was not always able to load the old audiofile for the sampler and fluidsynth instrument. * Instruments: Fix instrument-list windows. Broken in 5.9.90. * Instruments: Fix VST plugins not always showing up in the popup menus before they are scanned. * Editor: When moving notes in the piano roll, play new note if pitch is changed for an instruments that doesn't support changing the pitch of an already playing note. * Windows: Fixed various problems if using non-ascii filenames and dirnames. * Editor: Fix popup menu option for grabbing keybinding for "Rename instrument". * Build: Add new build-type DEBUG_FAST, which is the same as DEBUG + O2/O3. * VST/AU: Fix plugins not deleted properly when exiting. * API: * New: editorIsVisible, showEditor, hideEditor, copyFilepathToClipboard, getClipboardFilepath, createIllegalFilepath, isIllegalFilepath, isLegalFilepath, getBase64FromFilepath, getFilepathFromBase64, putSettingsF, getSettingsF. * Use a custom "filepath" type to store filenames and dirnames. * Fix loadSong and saveAs sometimes causing autobackups and saving not working. Was only a problem when calling these functions from Python. Changes 5.9.92 -> 5.9.93: * Editor: Fix cut and paste range. Changes 5.9.91 -> 5.9.92: * Windows: Fix Jack if running in a directory with non-ascii characters. Changes 5.9.90 -> 5.9.91: * Menus: Remove lots of entries from "Editor View" that are also available in relevant popup menus. * Build: Remove some -Werror flags from non-debug build. * API/internal: Change type from int64_t to file_t for files. * Internal: Let "instrument_t" be a struct to avoid accidentally mixing types. * Mixer: Fix the "Configure color" option in the popup menu. * API: createIllegalFile, isIllegalFile Changes 5.9.88 -> 5.9.90: * Windows: Show progress window much earlier when starting the program. * Sampler instrument: Fix GUI graphics not updating immediately when dragging sliders if GUI was opened by the second time or later. * Sampler instrument: Fix memory corruption when opening a sampler instrument GUI for the second time. In Radium 5.9.88 this memory corruption started to crash the program. * Editor: Popup menus for timing tracks. * Import MOD: Decrease time it takes to import MOD file with lots of tempo changes. * Scripting: Update S7 to latest version. * Editor: Fix very small font for the labels in the upper right when the swing track is not visible. * Editor: Fix error message "getTrackX2: No track X" sometimes popping up, especially after importing MOD file. * Sequencer: Fix some shortcuts in the seqtracks config popup menu. * Internal/GUI: Fix a bug in the raw mouse cycle handling in the internal widget system. * FaustDev: Fix block diagrams not being drawn when using the LLVM backend. Bug introduced in 5.9.88. * Editor/OpenGL: Replace use of spinlock with mutex. This might fix some freezing in the editor when it's redrawn. * Sequencer: Add popup menu to the timing lane headers area. * Keybindings: Fix grabbing keybinding when navigating popup menus with the keyboard. * Editor: Add support for grabbing keybinding to the entries in the track header popup menu. * GUI: Fix entries in sub menues not always being highligthed. * Sequencer: Add support for grabbing keybinding for the various grid functions in the grid button popup menu. * Keybindings: Fix "Remove keybinding" when a previous keybinding has been added with other focus qualifiers than the default ones. * Keybindings: Fix sometimes not detecting when overriding a keybinding. * Mixer: Add support for grabbing keybindings for rotating the mixer to the popup menu of the mixer direction button. * GUI: Add alpha to text color of disabled buttons and check boxes. * GUI: Fix various buttons and checkboxes still being highlighted after releasing mouse button. * Keybindings: Remove "EDIT SHIFT_L F5" keybinding to unzoom. * Mixer: Options in the popup menu to edit various zoom keybindings. * Keybindings: Add "Help keybindings" option to the bottom of all popup menus to grab keybindings. * Help: Variuos fixes for the keybindings help page. * Sequencer: Light up background color of the seqtrack numbers when hovered or moved. * GUI: Fix buttons and checkboxes not always stops being highlighted after mouse pointer has been moved somewhere else. * Mixer: Fix keyboard focus when un-windowing mixer. * GUI: Add support for grabbing keybinding to the popup menu of all buttons and check boxes in the mixer, editor, sequencer, and playlist. * Instrument widget: Save half/full status to disk. * Instrument widget: Fix font size for effect sliders not always being correct when widget is half or full size. * Instrument widget: Various clean-ups for the half/full size buttons. * API: * New: setCurrMixerConfigNum, resetMixerConfigNum, setMainMixerInWindow, mainMixerIsInWindow, switchMixerIsInWindow, switchInstrumentWidgetInMixer, setShowCpuUsageInMixer, getShowCpuUsageInMixer, switchShowCpuUsageInMixer, setVisibleMixerConnections, getVisibleMixerConnections, switchVisibleMixerConnections, setVisibleMixerBusConnections, getVisibleMixerBusConnections, switchVisibleMixerBusConnections, mixerConfigNumIsUsed, resetEditorZoom, resetMixerZoom, resetSequencerZoom, setSwingEnabled, getSwingEnabled, switchSwingEnabled, setPianorollAutoRange, switchRecordAccuratelyFromMidi, playlistUp, playlistDown, switchSequencerGridEnabled, switchTrackPanOnOff, switchTrackVolumeOnOff, setSequencerInFullMode, sequencerInFullMode, switchSequencerInFullMode, hasInstrumentForTrack, isLegalInstrument, createIllegalInstrument, getAudioInstrumentNum, getMainPipeInstrument, switchDrunkVelocityOnOff, editorFollowsPlayCursor, switchEditorFollowsPlayCursor, insertEditorSeqtrack, insertAudioSeqtrack, insertBusSeqtrack, appendEditorSeqtrack, appendAudioSeqtrack, appendBusSeqtrack, setBPMs, setSwingTrackVisible, setSignatureTrackVisible, setLpbTrackVisible, setBpmTrackVisible, setReltempoTrackVisible, showHideLinenumbers. * Removed: undoTrackPanOnOff, undoTrackVolumeOnOff. * Update documentation for zoom and unzoom. * Fix playlistInsert. * Use a custom "instrument" type instead of int64_t to store instrument id. * Change order of arguments for gui_setVertRatioInMixerStrips. * Let the default guinum argument for gui_getVertRatioInMixerStrips and gui_setVertRatioInMixerStrips be -1 (main mixer strips gui). * Change order of arguments for gui_setNumRowsInMixerStrips. * Let the default guinum argument for gui_getNumRowsInMixerStrips and gui_setNumRowsInMixerStrips be -1 (main mixer strips gui). * Fix state of current seqblock and seqtrack if calling deleteSeqtrack directly instead of pressing the "-" button in the sequencer. * Add optional argument "bool force_insert/force_delete" to insertSeqtrack and deleteSeqtrack. The argument is false by default. If false, program will ask user "are you sure?" if calling the function causes song to switch from editor timing mode to sequencer timing mode. * Fix function names for addBPM3 and addLPB3. Changes 5.9.86 -> 5.9.88: * Startup: Make sure a proper error message is shown if the custom color configuration file is not valid. * Windows: Fix editor text sometimes being garbled after startup. Bug has probably always been there, but hasn't been notable until very recently. * Windows: Fix writing keybinding configuration to disk after grabbing keybinding. * Internal: Use radium::Timer instead of QTimer for the main timer. Might lower idle CPU usage on Linux a little bit. * Internal: Improve GC performance. * Faust: Update faust to master-dev-2019-12-22 (between V2.21.0 and 2.21.1). This update fixes interpreter backend not working properly for instruments using prerendered tables and other things ("os.osc" is the most prominent example not working before when used in an instrument). * Keybindings: Make MOUSE_* and FOCUS_* qualifers OR-ed, and not AND-ed. AND-ing for these makes no sense since you can never have more than one widget focused, or the mouse to be directly above more than one widget at the same time. * Keybindings: Add close button to the keybinding grab gui. * Keybindings: Add checkboxes for selecting focus for editor, mixer, and sequencer to the keybinding grab gui. * Keybindings: Display more detailed information about current keybinding(s) in the "override?" window. * Sequencer: Right-click the seqtrack settings radio-buttons to edit keybinding. * API: cancelGrabKeybinding Changes 5.9.85 -> 5.9.86: * macOS: Don't display startup warning window anymore if running 10.14. * macOS: Officially support 10.15, but display a warning during startup that it hasn't been much tested yet. * macOS: Include a QJackCtl app in the binaries since neither the "Jack Pilot" nor QjackCtl binaries included with jack works very well in 10.15. * macOS: New workarounds to prevent Apple's OpenGL library from crashing when resizing (especially in 10.14 and 10.15). Unfortunately, this causes a little bit of flickering when resizing, plus longer time to resize, but it's better than crashing. * GUI: Fix crash when ensuring that a visible widget always has keyboard focus. The crash could for instance be triggered by pressing the tab key 4 times in a row. Bug was introduced in 5.9.85. Changes 5.9.83 -> 5.9.85: * Mixer strips: Fix the replace plugin entry in the popup menu. * Scripting: Update S7 scheme interpreter. * Keyboard: Change keyboard focus to a visible widget when the widget currently having keyboard focus is hidden. * Menus: Move the Zoom entries from "Editor View" to "Windows". * Keybindings: Let keypad +, -, * and Ctrl +, - zoom in/out/reset in the mixer and sequencer as well, not just the editor. * Sequencer: Fix seqtrack header height when there is only one seqtrack. * Playlist: Put back the "Hide" entry to the popup menu (disappeared when playlist was rewritten). * Mixer strips: Fix the "Wide" and "Enabled" checkboxes in the popup menu of the current instrument mixer strip. * MIDI: Fix modulator gui for MIDI CC targets * MIDI: Fix saving/loading/undo/redo CC slider modulation. * Editor: Tweak vertical scroll bar position. * Editor: Middle-align text of labels and input widgets in the upper left. * Editor: Automatically scale font size of the upper left labels to make sure "Swing" is always completely visible. * Help: Some minor updates. * Editor: Fix error message popping up if changing track width of track while playing song and current block is changed. * Editor: Fix editor sometimes not responding after pressing the "F" button in the sequencer twice, and possibly other situations. * Editor: Clearer and better looking interface for the track headers. * Editor: Show audio meters in the track headers. * Instrument widget: Fix font type in the MIDI instrument widget. * Editor: Fix pianoroll notes snapping to the next grid line instead of the current 50% of the time. Was usually not noticable except when trying to move the end position to the end of the block, which wasn't possible without pressing Ctrl. * GUI: Various gfx tweaks. * Preferences: Put the colors into sub sections and adjust order. * Instrument widget: Show full path in tooltip and status bar when mouse cursor is positioned above a settings button in the sample browser. * Sequencer: Show path in tooltip and status bar when mouse cursor is positioned above a settings button in the file browser. * Playlist: Tweak button positions. * GUI: Fix gradient behavior when painting checkboxes. * Mixer: Fix high CPU usage when mixer strips are visible. * Instruments: Fix memory leak. * Fix unnecessary assertion sometimes popping up when checking OpenGL on Windows. * Sequencer: Fix seqtrack slider not working in some semi-rare situations. * Menus: Remove duplicate "Silence!" entries. * API: * setPianorollLowKey: Set default value of 'blocknum' to -1. * setPianorollHighKey: Set default value of 'blocknum' to -1. * gui_verticalAudioMeter: Ignore note event painting if "note_event_instrument_id" is set to -2. * gui_addVerticalAudioMeter: Ignore note event painting if "note_event_instrument_id" is set to -2. * Better error messages for various instrument functions. * Change "zoom" and "unzoom" to zoom / reset zoom the part (editor/mixer/sequencer) that has keyboard focus, not just the editor. * Removed: getTrackPanOnOffX1, getTrackPanOnOffY1, getTrackPanOnOffX2, getTrackPanOnOffY2, getTrackVolumeOnOffX1, getTrackVolumeOnOffY1, getTrackVolumeOnOffX2, getTrackVolumeOnOffY2, getTrackPanSliderX1, getTrackPanSliderY1, getTrackPanSliderX2, getTrackPanSliderY2, getTrackVolumeSliderX1, getTrackVolumeSliderY1, getTrackVolumeSliderX2, getTrackVolumeSliderY2. * New: setBestGuessKeyboardFocus Changes 5.9.81 -> 5.9.83: * GUI: Increase default system font height from 8 to 10 on Linux and Windows, and from 12 to 14 on macOS. * Preferences: Clean up color order a little bit. * GUI: Adjust colors. * Build: Remove the k_cext and oscx pd externals from libpds since some linkers refuse to link object files using mktemp. * Sampler instrument: Fix Noise and error messages when playing non-looped samples using a non-cubic resampler (Bug introduced in 5.9.41(!)). * GUI: Make scroll bar colors configurable. * GUI: Make colors of all buttons and checkboxes configurable. * GUI: New appearance for buttons and checkboxes. * Instrument widget: Adjust some fonts and layouts. * Playlist: Don't show error message if pressing "Insert" and there are no audio files. * Instrument widget: Fix being able to deselect both the A and the B a/b buttons. * Modular mixer: Always show bus connections when "C2" is enabled. Earlier they weren't shown unless "C1" was also enabled. * Sequencer: Auto-scroll to make current seqtrack visible when pressing up/down key. * Sequencer: Make Page up/down scroll up/down 4 seqtracks. * Instrument widget: Fix width of the "Controls visible" checkbox. * Sequencer: Add vertical scrollbar for seqtracks. * Sequencer: Fix various minor issues when seqtracks are hidden. * Sequencer GUI: Various minor tweaks and bug fixes. * GUI: Light up buttons and check boxes when hovered by the mouse. * Preferences: Improve help text for the "Update waveforms during playback" button. * Sequencer: Fix mouse pointer shape not always being of the correct type. * GUI: Fix bottom bar widgets often not using all available vertical space. * Midi messages instrument: Fix CC for "Balance". It sent out CC 9 instead of CC 8. * Midi messages instrument: Order all effect sliders by CC. * Midi messages instrument: Add missing CC effects. * Build: Fix building with qt 5.13. * API: * setTopmostVisibleSeqtrack: Ignore operation if seqtrack is not visible. * setCurrSeqtrack: Add optional argument "bool auto_scroll_to_make_seqtrack_visible",. * New functions: getStringLength, getSequencerLeftPartButtonsY1, getLowestPossibleTopmostVisibleSeqtrack, getSeqtrackBorderWidth, setCurrSeqtrackDown, setCurrSeqtrackUp, autoscrollSeqtracks, getGcMemoryUsage. Changes 5.9.79 -> 5.9.81: * Sequencer/Mixer: Made default Bus color bluish instead of greenish to make it easier to see mute status. * Sequencer: Tweak borders a little bit. * Linux: Possible fix for unnecessary CPU usage. * Sequencer: Write "H0", "H1", "H2", or "H3" instead of just "H" for the track height buttons. * Sequencer: Let mouse wheel scroll 3 entries up or down. Earlier it only scrolled 1. * Playlist: Fix wobbly text when moving vertical scrollbar. * Sequencer: New "Tracks" tab to quickly configure visibility, mute, solo, record, and height of all seqtracks. * Sequencer: Change the name of the "Browser" tab to "Files". * Sequencer: Various GUI optimizations and minor fixes. * Mixer: Various GUI optimizations and minor fixes. * Sequencer: Quickly change height of a track by scrolling mouse wheel on top of the "H" button. * Sequencer: Fix current seqtrack sometimes changing in non-logical ways when clicking inside the right-side tabs. * Sequencer: Fix first letter not being readable for the current editor block in the "Blocks" tab * Sequencer: Fix first letter not being readable for the audio file in the "Sounds" tab. * Sequencer: Fix error messages popping up if right-clicking a seqtrack number. * General: Fix potential memory leak in sequencer. * API: * New: setSeqtrackVisible, getSeqtrackVisible, gui_supportsCallbacks, getLowestVisibleSeqtrack, resetSeqtrackConfig, setCurrSeqtrackConfigNum, getCurrSeqtrackConfigNum, seqtrackConfigIsUsed, setSeqtracksVisible. * Add optional argument "throw_error_if_seqtrack_is_not_for_audio" to seqtrackIsRecording. Changes 5.9.77 -> 5.9.79: * Sequencer: Let all new audio seqtracks have the same initial color. This color is configurable. * Sequencer: Fix making auto-crossfades when changing interior values for a seqblock. * Audio: Fix export soundfile when jack transport is enabled. * Sequencer: Tweak colors for bpms, signatures, and markers. * Sequencer: Change default keybinding to split audio file from CTRL + S to S. S is a more common operation, and this also fixes keybinding clash with saving file (which was very unfortunate). * Sequencer: Change default keybinding to switch Solo from S to Shift + S. * Mixer: Add a default keybinding Shift + S to switch solo of the selected instruments. * Sequencer: Made the seqblock boxes lighter by default (fade/interior/speed/stretch), and also made these colors configurable. * Sequencer: Paint horizontal and vertical indicator lines when moving automation nodes. * Sequencer: Paint horizontal lines across all tracks and lanes when mouse pointer is above a movable object, to better show where the objects are placed in time. * Sequencer: Always paint a thin horizontal line under the mouse pointer to show grid and to better visualize where objects are placed in time. * Sequencer: Optimize drawing cursors. * API: getSeqAutomationColor, getSeqblockAutomationColor, setSeqIndicator, cancelSeqIndicator, seqIndicatorEnabled, getSeqIndicatorXPos, getSeqIndicatorY, getSeqIndicatorType, getSeqblockColor. Changes 5.9.76 -> 5.9.77: * Mixer: Fix crash during startup if instrument widget was positioned inside mixer. (Bug introduced in 5.9.76). * Sequencer: Don't pause player when moving a seqblock while playing block. * Build: Make Faust compile with LLVM9. (Teteros) * Editor: When overriding a note from MIDI input, also change the velocity when "Always use velocity from MIDI..." is enabled. * Sequencer: Make sure seqtrack instrument is always deleted/created when corresponding seqtrack is deleted/created, and vice versa. (Fix for undo/redo creating/deleting seqtrack and seqtrack instrument). * Sequencer: More intelligent algorithm to create names for seqtrack buses. * Load/New: Fix assertion window sometimes popping up because main pipe instrument doesn't exist. (Bug introduced in 5.9.76). Changes 5.9.74 -> 5.9.76: * Editor: Only change the tempo multiplier value of the initial block when dragging the tempo multiplier slider. This also fixes undo. * Undo: Don't start at undo level 5 when loading song. * Mixer: Also delete corresponding seqtrack if deleting a seqtrack instrument. (Earlier, the instrument was just recreated immediately right after being deleted.) * Build: Fix building faust when the INCLUDE_FAUSTDEV_BUT_NOT_LLVM environment variable is set. * Mixer: Change default color for the border of current mixer strip from green to white. * General: Make sure there is always a current instrument. * Bottom bar: Fix tooltip for the standard velocity slider. * Mixer: Let arrow keys change current instrument. * Editor: Play notes in other tracks as well when "Edit lines" is 0 and we add a note. * Menus: Add "Set Edit Lines 6/7/8" to Editor Edit -> Note. * Editor: Let CTRL_L + 1L1 set "Edit Lines" to 0. * Editor: Change keybinding for Switch Scroll Play from CTRL_L + 1L1 to SHIFT_L + 1L1. * Editor: Show velocity text and fx text on line under, if free, to avoid "xxx" entries. * Editor: Remove the default ALT_L + T and CTRL_L + T keybindings. (The function "switchTrackNoteShowType" isn't very useful anymore.) * API: * New: setCurrentInstrumentLeft, setCurrentInstrumentRight, setCurrentInstrumentUp, setCurrentInstrumentDown, mainMixerIsModular, setMainMixerIsModular, switchMainMixerIsModular, gui_getGlobalX, gui_getGlobalY, gui_getMainMixerGui, gui_getMainMixerStripsGui, gui_getMixerStripsGuiInActiveWindow, gui_isActiveWindow. * Add optional arguments 'blocknum' and 'windownum' to undoReltempo and setReltempo. Changes 5.9.72 -> 5.9.74: * Editor: Fix rare crash when adding selecting "New FX". * Sequencer: Let CTRL + S be the default keybinding to split audio file. The old keybinding ("S") was recently overridden by the seqtrack solo on/off keybinding. * Sequencer: Let "split audio" split by sequencer grid if sequencer grid is enabled. * Sequencer: Fix error messages popping up when moving seqblock to a new seqtrack. * Sequencer: Fix error messages popping up when splitting audio file. * Sequencer: Fix error message showing up after loading if current seqtrack is for audio files. * Help: Minor fixes. * Sequencer: Paint white seqblock names in the block browser and the audio file browser. * Playlist: Make sure current entry is always visible. * GUI: Make sure scrollbar position is always legal. Changes 5.9.71 -> 5.9.72: * Playlist: Fix background color for current entry. * Editor: Add option in the Preferences GUI to disable updating waveforms during playback. * Build: Check that Qt is at least V5.10 before starting to compile. * Sequencer: Fix saving editor seqtrack volume and mute to disk. * GUI: Ensure new windows are placed on the same screen as the main window. Changes 5.9.69 -> 5.9.71: * Editor: Fix displaying sample filenames with non-ascii characters when current seqtrack is for audio files. * Sequencer: Fix displaying window title for track on/off-window when opened the first time. * GUI: Don't apply scrollbar state to vertical list area when scrollbar is not visible. * Scripting: Update S7. * Playlist: Rewritten: * Somewhat nicer graphics * The assertion window should not popup anymore in various situations. * Sequencer: Bind C key to change color for all selected seqblocks. * GUI: Make scrollbars look slightly better. * GUI: Don't show scrollbars if everything fits. * Scripting: Make linter check arguments for some types when calling global functions. * Scripting: Add signatures for the ra: functions. * Scripting: Make linter check arguments for local functions, not only global functions. * Sequencer: Let the keybinding F + SHIFT_L append block, R + CTRL_L to delete block, and I + CTRL_L to insert block. The same keybindings are in the editor. Added because the sequencer has a block browser. * Scripting: Arity-check calls to functions defined by lambda* and define*, not only lambda and define. * Audio: Let Shift + Ctrl + M switch metronome on/off. * API: * New: switchMetronome, gui_isDoubleClicking, getTimeStringFromFrames, getCurrPlaylistPos, setCurrPlaylistPos, lockCurrPlaylistPosToCurrSeqblock, getPlaylistPosTime, getPlaylistPosForSeqblock, generateNewColorForAllSelectedSeqblocks. * Change setSeqblockName and getSeqblockName to take seqblockid as argument instead of seqblocknum+seqtracknum. * Let -1 (current position) be the default argument for "pos" in createSampleSeqblock. * setSeqblockName takes base64 string by default. * getSeqblockName now returns base64 string. * gui_setWindowTitle takes optional argument 'name_is_base64'. Argument is false by default. Changes 5.9.67 -> 5.9.69: * Playlist: Fix a crash that could happen in various situations, for instance when creating a new seqtrack. * Menus: Fix the "Set Default Colors 1/2" entries under "Edit". * Mixer: Paint gray border around mixer strips for instruments that are selected. * Sequencer: Make Alt + left/right key move cursor to prev/next mark. * Sequencer: Make left/right key move cursor 1 second back/forward. (This keybinding will be changed later to jump 1 bar bacward/forward.) * Sequencer: Make Shift + left/right key move cursor 10 seconds back/forward. (This keybinding will be changed later to jump 4 bars backward/forward) change later.) * Sequencer: Make Win/Meta/Meta + left/right key select previous / next seqblock in current seqtrack. * Sequencer: Make Alt + 1 move cursor to mark 1, Alt + 2 move cursor to mark 2, and so forth. * Sequencer: Make 1L1 move cursor to start. * Menus: Name the EXTRA_R key "Right Meta" (linux) and "Right Win" (windows), not "Menu". * Sequencer: Bind the "M" key to switch mute for the current seqtrack. * Sequencer: Bind the "S" key to switch solo for the current seqtrack * GUI: Make sure implicit mute/solo status is always updated. * Audio: Make sure undo is never created for solo/bypass when undo for solo/bypass is disabled. * Sequencer: Fix assertion window popping up when moving more than one seqblock. * Scripting: Fix error message sometimes being screwed up. * Instruments: Create undo when changing instrument color(s). * Mixer: Bind "C" key to change color for all selected sound objects. * Mixer: Paint red border around selected instruments instead of making them bluish. * Mixer: If an object is both current and selected, paint purple border color (i.e. mix current color and selected color). * Audio: Make switch solo/mute/bypass for selected instruments operate on the current instrument if no instrument is selected. * Audio: Make setting random sample for all selected instruments operate on the current instrument if no instrument is selected. * Mixer: Bind the "B" key to switch bypass. * Mixer: Bind the "S" key to switch solo. * Mixer: Bind the "M" key to switch mute. * API: * New functions: getInstrumentSolo, getInstrumentMute, getInstrumentBypass, switchInstrumentSolo, switchInstrumentMute, switchInstrumentBypass, getExtendedSelectedInstruments, generateNewInstrumentColor, generateNewColorForAllSelectedInstruments, getSeqtrackMute, setSeqtrackMute, switchSeqtrackMute, getSeqtrackSolo, setSeqtrackSolo, switchSeqtrackSolo, incSongPos, jumpToSequencerMark, jumpPrevSequencerMark, and jumpNextSequencerMark. * Use current seqtrack if seqtracknum is set to -1. * Switch argument order for setInstrumentSolo, setInstrumentMute, setInstrumentBypass, setInstrumentIsImplicitlyMuted, and setInstrumentIsImplicitlySoloed. * In getInstrumentSolo, getInstrumentMute, getInstrumentBypass, setInstrumentSolo, setInstrumentMute, setInstrumentBypass, switchInstrumentSolo, switchInstrumentMute, and switchInstrumentBypass, set default value for the "instrument_id" parameter to -1. * Fix getHtmlFromText function which screwed up lineshifts and empty lines. Changes 5.9.65 -> 5.9.67: * Load: Fix probable memory corruption. Seems to rarely have had any consequences though. * Windows: Fix crashreporter. Probably broken since Radium 5.9.61. * Mixer: Pressing the Delete key deletes all selected mixer objects. * Scripting: Optionally check S7 scheme code for unknown symbols and wrong number of arguments before evaluating. Call errorCheckEvalScheme to enable. (Always enabled in debug mode) * Edit: Fix missing warning about overriding keybinding. Probably broken around 5.9.60. * Scripting: Improve S7 error display. * GUI: Never display a solo-ed instrument as implicitly muted. * GUI: Fix right shift not always working for playing current block. For instance after using a popup menu. * Mixer: Possible fix for hanging mixer-direction popup menu. * Instrument widget: Possible fix for hanging auto-suspend popup menu. * Sequencer: Fix wrong seqblock being set as current seqblock after adding a new seqblock from the seqblock browser. * Editor: Fix track paste and track cut not updating swing when selected from the popup menu. * Editor Add "Clear track" option to the main menus under "Editor Edit" -> "Track", and to the track popup menu. * Editor: Add Left Alt + Delete as keybinding for clearing track. * Editor: Fix various situations that could make illegal cursor position. * Internal: Optimize hash tables a little bit * Editor: Fix undo in "Cut track" in the track popup menu. * Scripting: Update S7 * API: * New: deleteAllNotesAndStopsInTrack, deleteAllStopsInTrack, metronomeEnabled, clearTrack, errorCheckEvalScheme, setErrorCheckEvalScheme, getTextFromHtml * Make undo in deleteAllNotesInTrack * Make undo in clearTrackFX * Document when isLeftMousePressed, isRightMousePressed, and isMiddleMousePressed works. * Remove the surrounding p-tags from the result of calling getHtmlFromText. Changes 5.9.64 -> 5.9.65: * Mixer: Fix quirky behavior in send-sliders when trying to set new value after undoing or redoing. * Modular Mixer: When deleting a sound object with exactly one input connection, transfer the output connection settings to the parent sound object. This behaviour is similar to what happens when deleting a plugin in a mixer strip. * New song template: Remove chorus and reverb sends from the "Click" instrument. * Mixer: Fix bus send values sometimes being set to -inf dB or 0dB in various situations. * Mixer strips: Fix error messages sometimes popping up in 5.9.64 when inserting / removing plugins. * Mixer strips: Fix slow gfx update in 5.9.64 when editing bus send sliders. * Mixer strips: Display automation/modulation values again for the bus send sliders, which disappeared in 5.9.64. * Mixer strips: Include the "Effect:" section in the popup menu for bus send sliders. * Instrument widget: Optimize graphical updates. * API: Various improvements for debugging scheme code. Changes 5.9.62 -> 5.9.64: * Mixer: Fix bug not making it possible to show mixer strips for plugins. * Metronome: Don't play extra sounds when playing block. Fix for bug introduced in 5.9.62. * Editor: Avoid jumping cursor when stopping to play. * Player: Fix selecting correct current seqblock and current block after stopping to play. * Audio: Make Solo behave more generally. For instance, setting solo for a bus only makes the buses mute, not all instruments. * Mixer/Sequencer: Display non-filled yellow border around solo buttons for implicitly soloed instruments. * Jack: Don't crash, and don't show assertion window if saving state or setting port name when jack port could not be registered. * About window: Include control port number. * Message window: Fix quotations * Audio Removed all bus on/off effects. Instead, audio connections are created / deleted. This improves CPU usage by around 5% and cleans up the code a bit. * Mixer: Added "C2" button to show/hide bus connections. (Hidden by default.) * Editor: Add "Edit" entries to the track popup menu. * Editor: Make resize faster, and reduce chance of seing framed black editor while resizing. * Internal: Updated S7. * Editor: Fix minor graphical glitches when a block is played in more than one seqtrack. * Sequencer: When setting cursor position when not playing, set current seqblock to the one under the cursor of the current seqtrack, if there is one. * Sequencer: Fix single-click in the timeline to set cursor position (red cursor). * Sequencer: When pressing Ctrl+C and no seqblocks are selected, copy the current seqblock and not the seqblock under mouse pointer. * Sequencer: Remember current seqblock when changing seqtrack. * Editor: Not necesarry to place the mouse cursor inside the editor when copying and pasting blocks. * Init: Don't show assertion reporter window when a scheme function is redefined. It's enough showing the warning window. * API: * New: showEditQuantitizeTab, showEditTransposeTab, showEditRandomizeTab, showEditVariousTab, canAudioConnect, setInstrumentIsImplicitlyMuted, instrumentIsImplicitlySoloed, setInstrumentIsImplicitlySoloed, atLeastOneInstrumentHasSolo * Removed instrumentIsBusDescendant. * Fix selectPrevPlaylistBlock and selectNextPlaylistBlock when playing song. Broken in 5.9.62. * Don't pretty-print backtrace code. Takes up too much space. Changes 5.9.61 -> 5.9.62: * Sequencer: Fix bar and beat numbers in the sequencer timeline. * Edit: Functions to randomize octaves. * Scheme: Improve backtrace display. * Edit: Fix right-clicking a button to change keybinding for it. Fix for bug introduced in 5.9.60. * Sequencer: When changing current seqblock, also change current block if seqblock holds editor block. * Sequencer: When changing current seqtrack, also change current seqblock. * Sequencer: Make left arrow key select previous seqblock and right arrow key select next seqblock. * Build: Updated S7. * Sequencer: Remember current seqblock when undoing/redoing, and also save to disk. * Playlist: Is visible during startup by default. * Sequencer: Let delete key delete current seqblock. * Sequencer: When current seqblock is deleted, let next seqblock be current seqblock, or previous if there is no next. * Sequencer: Paint name of current block with a white pen instead of painting a blue border around the seqblocks. * Playlist/Sequencer: Bind current playlist element and current seqblock. * API: * New: selectPrevSeqblock, selectNextSeqblock * Update grid button graphics when calling setSequencerGridEnabled. * Add dynvec_t type, and convert most functions storing arrays in dyn_t to use dynvec_t instead. Changes 5.9.60 -> 5.9.61: * Build: Compile ladspa-plugins without debug symbols to lower startup time if realtime virus scanning is enabled. * Windows: Update Qt to V5.12.3. (macOS: Qt was updated to V5.12.3 in Radium 5.9.60. Linux: Qt is still at V5.12.2.) * Windows/Linux: Compile Radium with gcc 8.3.0. (Upgraded from gcc 7.4.0.) * GUI: Only hardcode F11 to switch full screen for windows which takes care of keyboard events themselves. For instance the help windows. * Linux: Fix undefined behavior when setting a window to not be full screen. * Edit: Functions to distribute notes evenly in range, track, or block. * Sequencer: Display correct bar numbers. (Bug introduced in 5.9.60.) * GUI: Fix memory leak in popup menus * Mixer: Only make one undo entry for "solo all selected/etc." in the popup menu. * Mixer: Add "bypass/unbypass all selected" entries to the popup menu. * Build: compilation fixes for gcc9. * Mixer: Add function "switch-solo-for-selected-instruments" * Sequencer: Fix some minor graphical garbage in the lower-left buttons. * GUI: Fix crash that sometimes happened when clicking slighly outside a popup menu entry. (Bug introduced in 5.9.60) * Log: Log all clicks on popup menu entries. * API: setSoloForInstruments, setMuteForInstruments, setBypassForInstruments, switchSoloForSelectedInstruments, switchMuteForSelectedInstruments (Lydkraft), switchBypassForSelectedInstruments (Lydkraft). Changes 5.9.52 -> 5.9.60: * Editor: Don't update graphics during playback if "enable_editor_rerendering_during_playback = false" is included in the config file. * Editor: Let grid follow graphical line, not tracker line. I.e. don't ignore LZ when using grid. * Keybindings: Let up/down key move select previous or next seqtrack when sequencer has keyboard focus. * OSX: More workaround for graphics not updating after resizing editor. * Windows: Fix paths being screwed up when directory separators are converted to backslashes. Might fix some Python issues. * Manual: Various improvements. * GUI: Improve keybinding display in the main menus, popup menus, and the edit tab * Sequencer: Drag seqtrack number to change seqtrack order. (The numbers inside the circles) * Linux: When running Radium under gdb, close popup menu if it has been open for 40 seconds and kill Radium if a popup menu has been open for at least 50 seconds. This to avoid freezing X if program crashes under gdb while a popup menu is open. * New song: Make default color of the main pipe blue * Sequencer: Rename the lower left buttons. * Mixer: Add "1:3", "1:1", and "3:1: radio buttons to the main mixer header and to the mixer popup menus. * GUI: Set all bus instrument colors to "Default Bus color" (a configurable color) when starting up. * Sequencer: Introduce "Bus" seqtracks. Bus seqtracks are audio seqtracks that pipes input by default. The colors of seqtrack buses are also set to "Default Bus color". * Audio: Add "Pipe input" option to audio seqtrack instruments. * Sequencer: Minor optimization for the audio file player. * Editor: Fix metronome not making any sounds between seqblocks in editor timing mode. * Sequencer: Display slightly less erroneous bars and beats between seqblocks in the timeline when the duration of the last bar of the previous played block wasn't a full bar. * Initialization: More messages during startup about what's happening. * Editor: When creating new a note, pitch, fx, velocity, or tempo with mouse, always let that note/pitch/fx/velocity/tempo start at the beginning of the line the mouse cursor is placed in, not on the next line if mouse cursor was placed below half-way into the line. (blackhole89) * Editor: Fix new piano-notes being rounded to the nearest note (whether it's up or down). Before, it was always round down to the nearest note. * Audio: Fix audio meter graphical update when an instrument changes number of visible channels. * GUI: Fix clicking radio buttons in popup menues when clicking the entry outside the circle. * Sequencer: Double-click a marker to loop between that marker and the next. * Editor: Show red border around current column inside the cursor (the color is configurable). * Editor: Show border around current track. The border has the same color as the keyboard focus border color, and is also shown only if the editor has keyboard focus. * Sequencer: Include last marker when calculating song duration. * Sequencer: Use all leftmost space when there is only one seqtrack. (There is no current seqtrack border when there is only one seqtrack.) * Internal: Update S7 scheme. * Menus: Only display "Ctrl" when both left or right control is assigned to a command. Same for alt and shift. * Menus: Automatically display several entries when more than one keybinding is assigned to a command. * Startup: Fix keybindings sometimes not working on windows. At least I'm pretty sure it's working now. * GUI: Speed up opening popup menues. (Content is cached now.) * Playlist: Fix crashes that could happen when inserting audio file. * Edit: Make sure all text is shown in the "Randomly delete notes" and the "Lightly shuffle pitches" sliders. * Keybindings: Redefine almost all keybindings so that they only work when having relevant keyboard focus. * GUI: Separate keyboard focus for the editor, the mixer, and the sequencer. Press Ctrl+F5, Ctrl+F7, and Ctrl+F8 to change keyboard focus between the editor, the mixer, and the sequencer. * Internal: Display error message when there is an error while finding right keybinding code to execute when a key is pressed. * Shut down: Fix crash iwhen program could't start up. * Linux: Update URL to nvidia driver * Sequencer: Add a "Copy filename to system clipboard" entry to the audio seqblock popup menu. * Fluidsynth: Fix erroneously display of sample/bank/preset in the instrument GUI. * Editor: Update tooltip for "Edit Lines" ("EL") in the bottom bar. * Editor: Fix note not stopping to play when releasing computer keyboard key after adding a note. * Editor: Fix note being played when adding notes and "Edit Lines" has a value larger than 0. * Audio: Improve CPU usage of fading in and out. * Audio: Improve CPU usage of the granulator a little bit. * Editor: Make resizing look more professional by covering up some flickering. It's probably not possible to make perfect though, because of OpenGL. * Audio: Minor optimization to the multicore scheduler. * Load/Save: Remember last used directory when loading/saving song * GUI: Fix a division by zero when rendering editor track header. Probably makes no difference in graphics, but might make it run faster. * Audio: Add a little bit of release to the Click instruments to avoid noise when unpressing the click button in the bottom bar. * Audio: Written new algorithm for smoothing delay. Should improve CPU usage significantly overall. * FaustDev: Add support for the interpreter backend. * FaustDev: Compile Radium with the option WITHOUT_LLVM_IN_FAUST_DEV to only include the interpreter backend. (Avoids linking with the LLVM libraries.) * FaustDev: Make compilation faster. * Build: Fix compiling with clang 8.0. * API: * New: copyWtextToClipboard, getClipboardWtext, copyTextToClipboard, getClipboardText, gui_getSequencerFrameGui, setEditorKeyboardFocus, setMixerKeyboardFocus, setSequencerKeyboardFocus, gui_setLayoutStretch, gui_getVertRatioInMixerStrips, gui_setVertRatioInMixerStrips, addKeybinding, getKeybindingsFromCommand, instrumentIsSeqtrackBus. * Removed: getKeybindingFromCommand. * Renamed: setKeybinding -> addKeybindingToConfFile, removeKeybinding -> removeKeybindingFromConfFile. * Documentation: Remove erroneous comments for openFileForReading and readLineFromFile. These functions are implemented. * Add optional start and end arguments to setSeqLooping. * Add optional "is_bus" argument to appendSeqtrack and insertSeqtrack * gui_createMixerStrips ha as new optional argument "vert_ratio" (is 1/1 by default). * swapSeqtracks doesn't create undo anymore. Changes 5.9.51 -> 5.9.52: * OSX: Workaround for sequencer graphics not being updating in 10.14 when moving the "dragger" (i.e. the "=" button in the top left corner of the sequencer). * Editor: Fix cursor line sometimes being placed in wrong position after resizing. * OSX: Workaround for crash in Apple's OpenGL library that sometimes happened when starting up, and when resizing editor. (The workaround is to pause graphics rendering for a short while after resizing). This bug was especially noticable on macOS 10.14. * Internal: Add compile time option to run OpenGL in the main thread instead of it's own thread. Didn't fix the OSX crashes though. * Editor: Reduce flickering when resizing. * Keybindings: Don't crash and don't show assertion reporter if there is something wrong with the keybinding configuration. * Keybindings: Show error message in message window when pressing a key and the keybinding failed to run. * OSX: Don't crash if trying to run Radium without first installing jack. Changes 5.9.50 -> 5.9.51: * Sequencer: Don't crash after selecting Cancel when asked for replacement of missing audio file. * Sequencer: Don't accept replacement audio file if the base names of the two filenames differ. This is a quick right-before-the-release hack to avoid a crash that can happen if the two files have different lengths. Needs proper solution later. * Song properties: Change the text "Send global swing tempo to plugins" to "Send global swing tempo to plugins and jack transport". * Song properties: Change the text "Audio files" to "Audio files in Sample player and Fluidsynth". * GUI: Increase default block saturation to 1.0 * GUI: Increase default instrument saturation to 0.67. * GUI: Add options to set instrument saturation and brightness for the editor only. May want a less saturated background color in the editor. * Internal: Include the samplereader and ratio tests into "make test". * Internal: Fix "make test". * Internal: Run "make test" in the build script for creating new releases. "make test" does catch the bug below, but running it wasn't automated. * Internal: Fix crash when moving several seqblocks in some situations. The bug was general though, so it might have caused other problems as well. The bug was introduced in 5.9.48, so all releases between 5.9.48 and 5.9.51 will be marked unstable. * Audio: Fix the problems with latency compensation in 5.9.50. The bug had actually always been there, but hopefully it had not been audible before 5.9.50. * Load: Fix crash when loading old songs, approximately around 4.2.0 or older. Not sure when this bug was introduced. * Audio: Some minor optimizations of CPU usage. * API: getInstrumentBrightnessInEditor, setInstrumentBrightnessInEditor, getInstrumentSaturationInEditor, setInstrumentSaturationInEditor. Changes 5.9.49 -> 5.9.50: * Audio: Make internal block size configurable. CPU usage is reduced significantly when the internal block size is increased. * Jack: Show error message if changing jack block size during runtime. * Audio: Reorganized the audio engine in order to significantly reduce CPU usage when there's many sound objects. * Audio: Remove the "Recalculate latency on the fly..." option since it is not necessary anymore. * Editor: Don't move cursor when stopping to play block and jack transport is enabled. This fix also turns off the ability for another program to set current editor block and line when not playing. * Audio: Share output buffers between instruments to decrease cache misses. Significantly reduces CPU usage when there's many instruments. * Sampler instrument: Fix displaying empty waveforms in the editor (very rarely though) when automating pitch or stretch. * API: Removed doAlwaysRunBuses, setAlwaysRunBuses Changes 5.9.48 -> 5.9.49: * System: Updated Qt to 5.12.2. * GUI: Color tweaks. * System: Add missing Qt5Webkit library for QT5 build. (Teteros) * Sample player: Move the "Granulate" checkbox to the top of the next column. * Instrument: Adjust displaying ratio text in the compressor. Changes 5.9.46 -> 5.9.48: * Linux: Patch the included WebKit library so that it doesn't load browser plugins. Visiting the Wikipedia LFO page (linked to in the manual) could make Radium crash if user had installed a buggy plugin, or a plugin linking to Qt. * Sequencer: When pressing Space while playing, just stop playing, and don't move cursor back. When pressing Space while NOT playing, first move cursor back to last place we started playing from, and then start playing. * GUI: Remove the text "CPU:" from the bottom bar. * GUI: In the bottom bar, make the status bar and the volume slider always have the same width. * Editor: When edit is OFF, and we are playing notes on the computer keyboard, send the notes to the current instrument and not to the instrument for the current track. * Instruments: For older songs (approx. a year), fix note duplicator values being set to default values if undoing Reset or Random. Also fixes A/B usage and possibly other things. These are more fixes for the old note duplicator Chance bug which unfortunately caused old songs to have wrong values in them. * Init: Make sure custom initialization code (in keybindings.conf) doesn't run until program has started up. Program could crash during startup because of this. * Playlist: Fix wrong content showing up when a different seqtrack was selected while playlist was hidden. * Playlist: Fix selecting prev and next playlist block when playlist isn't visible. * Instruments: Immediately remove "[m]" from instrument slider/checkbox text after removing a modulator from the effect. * Preferences: Add sliders to control brightness and saturation for blocks/audiofiles colors and instrument colors. * Instrument: Fix rare crash that could happen when creating new instrument. * Sequencer: Fix rare crash that could happen when creating new seqtrack. * Audio: Optimize checking if instrument can autosuspend. * GUI: Make tab colors configurable. * Metronome: Fix silent metronome when playing block in sequencer timing mode. * Metronome: Fix stop notes not being sent out in sequencer timing mode. * Metronome: Fix stop notes sometimes not being sent out when starting to play a new block in editor timing mode. * Modular mixer: Draw autosuspended objects in a grayer color than before. * Linux: Decrease CPU usage for VST plugin GUIs. * Windows/OSX: Fix program sometimes hanging when exiting program after using a midi input or output device. * API: getInstrumentBrightness, setInstrumentBrightness, getInstrumentSaturation, setInstrumentSaturation, getBlockBrightness, setBlockBrightness, getBlockSaturation, setBlockSaturation. Changes 5.9.44 -> 5.9.46: * Windows/VST: Add a "DPI" checkbox to the VST plugin header when DPI is not 96, i.e. when either the display is scaled, or a hiDPI monitor is used. When unchecking the DPI checkbox, the plugin GUI will be reopened with a DPI of 96 instead. This will both let Windows do the scaling (causing blury and larger graphics), and in some cases fix bugs caused by plugins not handling a non-standard DPI. You need Windows 10 for this to work. * OpenGL: Remove startup warning that Radium hasn't supported high DPI display for a very long time. It's been a pretty long time now. * Error message window: Position in the middle of the screen. * Progress window: Add a minimize button in the upper right corner. * Mixer: Don't update graphics for the modular mixer when it's not visible. * Mixer strips: Fix note intencity circle only lighting up/down when the main mixer was visible. * GUI: Turn off menu and combobox animation. Screwed up menus on osx when using Qt 5.12. (Think the menu animation actually brought back the same bug that caused me to upgrade Qt from 5.7 to 5.10.) * Mixer: Fix error message sometimes popping up when showing popup menu. * JUCE patch for Linux: Display ALSA MIDI client names as clientName + ": " + portName to avoid mixup for ports with the same port name belonging to different clients. * JUCE patch for Linux: Make sure all ALSA MIDI connections and ALSA MIDI ports are publicly shown (for instance in the qjackctl patchbay). Not showing them only creates confusion. * JUCE patch for Linux: Set realtime priority for the MIDI input thread. * Build: Update Juce from 5.3.2 to 5.4.3. * Linux: Don't read from configuration file when opening a native VST gui. (Race condition that could have caused various trouble.) * Init: Fix 1-10 seconds freeze that sometimes happened during program startup. * Windows/Sequencer: Fix displaying non-ascii characters in the audio file browser. * OSX: Fix file requester not filtering out entries when loading/saving mod/midi/xm/rad. * OSX: Radium requires 10.12 or newer. * Editor: When appending new block, let it have the same number of tracks and lines as the current block. (Same behavior as insert block.) * Instruments: Include the pan and width effects in the wet signal by default. This can be changed in the song properties window. When loading older songs, pan and width is not included in the wet signal, since that could change the sound. * Instruments: Disable the dry/wet slider when instrument is bypassed. * API: * New functions: setIncludePanAndDryInWetSignal, includePanAndDryInWetSignal, appendBase64Strings. * Add optional argument "text_is_base64" to gui_drawText Changes 5.9.43 -> 5.9.44: * Editor: Add undo when selecting "Add automation to current editor track". * Sequencer: Delete block when undoing "Replace With New Block". * Sequencer: Less gradient background color. * Modular mixer: Generate same color for all selected instruments when selecting "Generate new color". * Linux: Don't show warning about MESA when using an AMD GFX card. * Init: Initialize OpenGL much earlier in the startup. Could reduce the chance of crashing OpenGL during startup. * Editor: Fix not playing notes twice when adding a note and "Play notes under the cursor when moving up or down" is enabled. This was supposedly fixed in 5.9.42, but wasn't. * Editor: Turn off autorepeat when pressing left shift while adding notes and "Enable keyboard autorepeat when adding notes in the editor" is disabled. * Instruments: Update slider text immediately when changing "Change value when pressing "random". * Editor: Ensure cursor is visible when moving the horizontal scroll bar. Changes 5.9.42 -> 5.9.43: * Editor: Don't crash when changing on/off for a non-existent track. Changes 5.9.41 -> 5.9.42: * Fluisynth: Update URL to fluidsynth in the info window. * Editor: Don't play notes twice when adding notes and "Play notes under the cursor when moving up or down" is enabled. * Sequencer: Fix graphics rendering between the timing/marker lanes and the opmost visible seqtrack. * MIDI instrument: Fix error message popping up when mouse is above a CC slider or above a note duplicator on/off button. * Instrument widget: Fix wrong fonts in the note duplicator, for the instrument name input widget, and for the sample browser path. * Sampler instrument: Fix modulators when loading songs saved before 5.9.41. Note that songs saved with 5.9.41 (and only that version) will require some editing if modulators had been assigned to effects in the sample player in that version of the program. (5.9.41 is marked as unstable now.) * Instruments: Fix assertion window popping up when selecting "add automation to current editor track" and there was already an automation node for that effect at the current editor position. * Instruments: Don't show assertion window when making states for the Faust Dev and Pd instruments. * Sample instrument: Delete GUI when instrument is deleted. * OSX: Show a different startup warning when running macOS 10.14. Radium has been tested on 10.14 now, but not much, and it sometimes crashes during startup. * fix for prev. commit * Sample player: Fix high CPU usage when the GUI is open. * Audio meters: Ensure meters are really updated every frame. Earlier we updated every 20ms, which is more than the common 16.6ms update period. * Audio meters: Changed the "CPU friendly" option in preferences to update every 3rd frame instead of every 2.4th frame. Probably looks better with a consistant refresh rate. * Sampler instrument: Set default grain overlap value to 3.0 instead of 1.0. * Sampler instrument: Allocate granulator instances from a common pool shared by all sampler instruments. This should both lower memory usage and CPU usage. * Sampler instrument: Added a "fine stretch" slider in addition to the old "coarse stretc" slider. The coarse stretch slider went from -100 to 100 which was a bit hard to control. * Sampler instrument: Added a "gran. volume" slider for doing volume compensation so that the level can be set to approximately the same when enabling/disabling granulation. Note that the default value is set to -6dB, so you need to manually set this value to 0.0dB after loading songs saved with Radium 5.9.41. * Sampler instrument: Don't stretch waveform data in editor when granulation is disabled. * Sampler instrument: Display stretch values between 0.0 and 1.0 as "1.0/xxx" instead of "0.xx". * Sampler instrument: Change scaling method when stretch is below 1.0. Now stretch spans with linear numerator values in the range 100/100 to 1/100 instead of ranging linearly from 1.0 to 0.01. Note that stretch automation will sound different for values below 1.0 for songs saved with Radium 5.9.41. * Startup: Don't draw OpenGL until program is finished initializing. Fixes program sometimes freezing for a few seconds after startup. * Startup: Show mixer strip for current instrument before swapping opengl for the first time. * OSX/crashreporter: Only wait 5 seconds for the OSX diagnostic report file to be created. * Progress window: Optimize performance. * Build: Upgrade libatomic_ops from 7.4.12 to 7.4.14 * Build: Update BDWGC to 7.4.16. Contains an important fix for Windows if running 32 bit Radium in a 64 bit operating system. Changes 5.9.39 -> 5.9.41: * Sequencer: Use a gradient background color. * Instruments: Fix bad bug when undoing/redoing note duplicator voice on/off. Fix for undo/redo and memory corruption. The bug was probably introduced during the last year. * Sampler instrument: Added granulation. Visualization is displayed in the GUI window. * Instruments: Save "Random" state by effect name and not by effect number. Prevents wrong values if loading an instrument that has changed the number of effects, or the effect order, since last time. * Plugins: Show assertion window if saving effect value to hash table with an already used key. * Editor: Let a bottom slider value of 0 mean that the height is set automatically. (In "GFX tweaks") * Import MOD: More progress window messages. * OpenGL: Remove some flickering when resizing. * Editor: Add an "R" checkbox in the bottom left corner. This checkbox replaces the "tracker style" vs. "sequencer style" radio buttons in preferences. * Editor: Made tracker-style recording the default mode. * Sequencer: Improve statusbar messages in the seqtrack headers. * GUI: Ensured the bottom bar of editor, the up/down buttons in playlist, and the horizontal scrollbar in mixer, are aligned. * Mixer: Clean up widget hierarchy and removed a small unnecessary border. * Editor: Reorganized widgets. This might possibly have made graphics faster. * Editor: Re-implemented the bottom bar. * GUI: Less gradient colors for large rectangular areas. * Sequencer: Don't change background color for the current seqtrack header to green. Instead, just make the color brighter. * GUI: Tweaks to painting rectangular border ardound vertical sliders. * OSX: Minor improvement to rendering the mixer graphics. * Mixer: Don't change current instrument when right-clicking in the mixer strip for the current instrument. * Sequencer: Make the copy track on/off popup menu entry texts shorter. * Sequencer: GUI tweaks. * OSX: Fix closing the progress window if Radium crashes. * Jack: Fix checking if jack is running during startup not always reporting correctly. * OSX/Windows: Fix let Left Alt start navigating the main menus. (Probably also a fix for some Linuxes as well.) * GUI: Workaround to avoid bottom bar updating graphics unnecessarily often. * GUI: Remove the Qt bottom bar and replace it with a custom bottom bar which looks sligthly better. * Preferences: Make help text for "tab bar height" clearer. * Audio meters: Fix bug causing all note diode areas to be repainted every frame. * Editor: Enable by default the "Multiply number of lines to scroll by the "Edit Lines" value" option. * Mixer: Only show tooltip for sliders if there wasn't enough space to fit all text. * OpenGL: Wait to swap OpenGL until program is finished initializing. Might fix semi-rare macOS startup crash. Possibly looks better too. * Init: Run a test program during startup to detect if the GFX driver crashes when probing OpenGL. * API: * New: getTrackSliderIsMoving, recordAccuratelyFromMidi, setRecordAccuratelyFromMidi, showProgressWindowMessageIfOpen, progressWindowIsOpen. * Removed: getTrackSliderScrollerX1, getTrackSliderScrollerY1, getTrackSliderScrollerX2, getTrackSliderScrollerY2. * Added optional argument "force_show" to showProgressWindowMessage Changes 5.9.38 -> 5.9.39: * Mixer strip for current instrument: Fix popup menu. * Mixer strip for current instrument: Don't change current instrument when editing. Changes 5.9.36 -> 5.9.38: * Modular mixer: Show statusbar message about creating new connections when mouse is hovering over lower half of name, or hovering over the input/output slot positions. * Modular mixer: Display mute/solo/bypass/volume in statusbar when edited and hovered by mouse. * Mixer: Improve statusbar text for solo and mute. * Sequencer: Don't use different background color for the current seqtrack header if the current seqtrack is for editor blocks. * Mixer: Improve mixer strip popup menu. * Help: Improve mixer help somewhat. * Editor: Pressing shift while editing text (fxtext/bpmtext/etc.) prevents cursor from moving down. * Editor: Pressing shift while pressing the DEL key prevents cursor from moving down. * New song: Turn off the high shelf filter for the reverb. Don't know when +9dB 4500Hz happened, but it seldomly sounds very good. * New song: Explicitly set connection type for the connections. * Mixer: Fix configuration window not being on top of mixer window. * Sequencer: Add a Grid checkbox to the seqtrack header top button bar. Right click this checkbox to change grid type. * Sequencer: Remove the sequencer grid options in the preferences since this grid configuration has been replaced by the Grid checkbox in the seqtracks header. * Sequencer: Fix status bar text for the dragger. * Preferences: rename "Play Cursor" to "Play-cursor". * GUI: Fix placing message windows in the middle of the parent window. * Nag window: Make simpler. * Internal: Improve scheme backtrace display. * Editor: Add undo/redo for setting track on/off. * GUI: Fix popup menus so that when you click, the marked entry is selected, no matter whether the mouse pointer is above a separator or not. Workaround for Qt misbehavior. * Sequencer: Don't enable the "delete seqblock" entry in the popup menu when mouse pointer is not above a seqblock. * Sequencer: Add options "Copy editor track on/off -> seqblock track on/off" and "Copy seqblock track on/off -> editor track on/off" to the seqblock popup menu. Can also be accessed by pressing Ctrl + Page Up / Ctrl + Page Down. * Init: Lower startup time. * Init: Wait until startup is completely finished before closing the progress window. * VST/AU: Add option to disable the virtual MIDI keyboard below native GUIs. * Import MOD: show pattern number in progress bar when sending patterns to radium. * Import MOD: Only open one progress window. * Web browser: Use direct method to zoom. * Mixer: Add options to explicitly change connection type for the sliders in the mixer strip paths. Either "Plugin", "Send", or "Auto". * OSX: Show warning during startup if running macos 10.14 or newer. * Init: Show progress window a little bit earlier in the process. * Help: Clarify that Radium never uses Jack Transport for timing information. * Mixer: When adding plugin or send to a strip, store the connection type (plugin or send) so that the entries don't change role afterwards. For instance, the roles could earlier change when moving sound objects around in the modular mixer. * Remove some debug output from prev. commit. * Mixer: Improve GUI performance a little bit. * Sequencer/Mixer: Various GUI tweaks. * Sequencer/Mixer: Make the color for current seqtrack/mixer strip much brighter. * Mixer: Add status bar text when mouse pointer is above volume slider, audio meter, volume text, peak text, mute button, solo button, and pan slider. * Mixer: Clean up the interface for inserting new plugin and new send. (More cleanups needed though.) * Jack transport: When stopping to play block, don't jump back to sequencer start position. * Menus: Make the dot entries (".") work when clicking on them. * Menus: Make "play song" and so forth only play, not stop if already playing. Vice versa for the stop entries. * Menus: Fix wrong command being executed for all entries having the same menu text, except the last entry. * Help: Added picture of the instrument effect popup menu to the instrument effect popup menu help page. * Jack transport: Fix various issues with playing, stopping, and positioning cursor. * Help: Added info about Jack Transport to the timing documentation. * GUI: Minor scrollarea/scrollbar update tweak. * API: * New: gui_addVisibilityChangeCallback, getAudioConnectionType, setAudioConnectionType, showVirtualMidiKeyboardBelowNativeGUIs, setShowVirtualMidiKeyboardBelowNativeGUIs, copyEditorTrackOnOffToSeqblock, copySeqblockTrackOnOffToEditor, setTrackOn, sequencerGridEnabled, setSequencerGridEnabled, setPaintSequencerGrid. * Deleted: getSeqBlockGridType, setSeqBlockGridType, getSeqAutomationGridType, setSeqAutomationGridType, getSeqTempoGridType, setSeqTempoGridType, getSeqLoopGridType, setSeqLoopGridType. * Add optional argument "connection_type" to createAudioConnection. * Let changeAudioConnections understand ":connection-type" field for connections. Changes 5.9.34 -> 5.9.36: * Mixer: Set current instrument immediately when clicking a plugin or send slider. No need to right-click or select the instrument in other ways. * Jack transport: Fix next beat always being sent instead of current beat in editor timing mode. * Jack transport: Fix beats/bar when using sequencer timing. * Mixer: Removed all resize flickering. Hopefully. * Mixer: Fix graphical garbage that sometimes can be seen between mixer strips. * Mixer: Write number of elements in mixer path below label in non-wide mixer strips. * Mixer: Make GUI more compact by removing some unnecessary spacing between elements and use less corner rounding. * Sequencer: Lighter seqblock header background color. * Startup: Remove splashscreen. Only show progress window during startup. * GUI: Nicer looking and less buggy progress window. * Sequencer: Disallow being able to deselect both time lane and bars+beat lane at the same time. * Import MOD: Don't show markers lane. * Import MOD: Don't show bus mixer strips. * Audio meters: Add slight gradient color. Makes it easier/possible to see number of channels * Sequencer: Fix slightly skewed horizontal mouse movement when mouse cursor goes outside vertical boundaries. * Instruments: Clean up the popup menus a little bit. * Modular mixer: Clean up the popup menus. * Modular mixer: Added "Rename" and "Load Preset" entries to the popup menu. * Instruments: Minor clean-up of the instrument popup menu. * Instruments: Add "Load Preset" and "Save Preset" entries to all popup menues. * GUI: Fix positioning windows in the middle of the parent window. * Sequencer: Fixed some situations where controllers could be wrongly modified, or an error message could pop up, when showing popup menu. * Modular mixer: Add "Bypass" checkbox to the popup menu. * Sequencer: Show audio meter for the output of the last instrument in chain, not the first. Same behaviour as in the mixer. * Sequencer: Don't stop playing song if right-clicking a block in the block browser. * Blocklist: Don't stop playing song if right-clicking a block. * Audio: Fix various issues with undo when changing solo or bypass. * Instrument: Make it optional whether to make undo when pressing a bypass button. (Enabled by default). * Startup: Fix main window sometimes being put in front of the comment window when loading song from the command line. * Mixer: Fix note indicators not lighting up for mixer strips that have plugins in it's path. * Mixer: Paint red background for peak text if peak is above 4db. * Mixer: Adjust painting pan slider a little bit. * Mixer: Minor tweak to solo/mute buttons drawing. * Modular mixer: Adjust object background color a little bit. * Sequencer: Fix timeline sometimes painted with the wrong background color. * Sequencer: Paint timeline background with gradient color. * Sequencer: Fix markers being placed at wrong position when loading song with different samplerate. * Load: Fix assertion window popping when loading any song saved after 5.9.30 with a different samplerate. * Sequencer: Minor optimization for automation. * Sequencer: Fix race condition when automating stretch or speed. * Build: Update s7. * OSX: Put back "Import MOD" into the menus. * Startup: Applied possible fix for super rare startup crash while initing keybindings. * OSX: Never use native file dialog when importing MOD. Workaround to avoid GUI freeze on high sierra. * API: * New functions: doUndoBypass, setUndoBypass * Add optional argument "note_event_instrument_id" to gui_verticalAudioMeter and gui_addVerticalAudioMeter. Changes 5.9.32 -> 5.9.34: * Editor: Fix possible undefined behavior if changing numer of tracks in a block in the blocklist while playing. * OSX: Temporarily disable "Import MOD" from the menus since importing MOD doesn't work on OSX. (Should be fixed in the next release.) * Windows: Fix media keys not being eaten by Radium when used. E.g. pressing the volume up key causes other programs to also increase the volume. * Windows: Fix media keys being interpreted as other keys when handlers for them were disabled in the keyboard configuration. (Seems like media keys doesn't have valid scan codes.) * Editor: Fix copying various data to new track such as Piano roll range and so forth. * Build: Update s7 to latest version. * Build: Update QScintilla to 2.10.8. * Sequencer: Fix bottom of audio meters beiing cut off if ranging below the top of the navigator. * Mixer/Sequencer: Adjust colors in the bottom bars. * Mixer/Editor: Add a mini-sequencer navigator the bottom bars. These navigators support both mouse clicking and mouse wheeling to start/stop playing. * Editor: Fix assertion window popping up if clicking below last line in a note-text sub-track. * Mixer/Sequencer: Remove editor elements from the bottom bars of the sequencer and the mixer. * Sequencer: Draw seqblock names in navigator if enough vertical space. * Pd: Don't allow two controllers with the same name. * Sequencer: Don't stop playing if moving the last seqblock in song to a new seqtrack, and that seqblock was currently playing. * Sequencer/Mixer: Fix resetting solo (didn't update descendant instrument solo values and so forth.) * Sequencer: Add a volume slider to editor seqtracks. * General: Improve undo log. * Sequencer: Fix screwed up seqtrack layout when sequencer is shown. (When pressing F8 twice.) * Sequencer: Add a Mute button to editor seqtracks. * Help: Complete the documentation page for the instrument effect popup menu. * Sequencer: Fix header colors for audio seqblocks and seqblock colors in the navigator. * Keybindings: Pressing Space now switches between playing and not playing (common DAW behavior). While Enter/Return starts playing from the cursor position, Space starts playing from the startplay-cursor position. * Keybindings: Changed the old keybinding for Space to Ctrl+Space and renamed it to "Silence!". * Sequencer: Paint blue line where we started to play ("startplay-cursor"). * Keybindings: Fix python code between asterisks in the configuration file not loading during startup. * Keybindings: Made the Enter and Return keys start/stop playing (common DAW behavior). * Keybindings: Changed the default keybinding for solo/unsolo current editor track from Enter to Alt + Enter. * Keybindings: Changed the default keybinding for adding note (and so forth) from Return alone into Alt + Return. * Player: Fix starting to play from current position, either from the menues or pressing Shift+Alt+Space. It didn't work if current seqtrack was an audio seqtrack. Bug introduced a while ago. * Menus: Add "Navigate 4 menu rows down" and "Navigate 4 menu rows up" entries * Mixer: Show a note indicator led in the audio meters, similar to the ones in the modular mixer. * GUI: Open the "Project menu" when pressing the Left Alt key, similar to standard GUI behavior in Windows. This makes it easier to know whether we start navigating the menus when pressing left alt. * Mixer: Fix peak and volume text not being scaled to fit. * Sequencer: Don't show error messages about illegal navigator handle values since it seems to happen legitimately during playback when the "always show cursor" option is enabled. * Note duplicator: Show effect names and "(right click for options)" in the status bar for all fields when mouse is above a field. * Editor: Fix wrong automation value sometimes (i.e. 50% of the time) being sent to plugin if the same automation is played in two consequtive seqblocks and the first automation plays to block end and the second automation starts at block start. * Note duplicator: Show correct effect name in the status bar when mouse is above the on/off buttons. * Modular mixer: Make the "Solo" and "Mute" entries in the popup menu into checkboxes. * Mixer/Sequencer/Instrument: Right-clicking an effect slider or an effect checkbox resets the effect. * Mixer/Sequencer/Instrument: Make sure all effect sliders and checkboxes show the same popup menu. This also adds the options "Start recording automation in editor", "Add automation to current editor track", "Add automation to current sequencer track", and "Change value when pressing Random" to the sequencer and the mixer. * Mixer: Clean up various popup menus. * Sequencer: Clean up various popup menus in the audio seqtrack headers. * Mixer/Sequencer/Instrument: Cleaned up the instrument effect popup menu. * Instruments: Don't show rare (and false) error message about a missing instrument after creating an instrument, especially after creating a modulator. * Load: decrease time importing MOD and XM files. * Instruments: When undoing the deletion of an instrument, don't make that instrument the current instrument unless it was the current instrument when being deleted. * Modular mixer: When loading an .mrec file, make the first loaded instrument the current instrument, not the last. * Load: Sligtly faster to load track if it contains many instruments. * Sequencer: Fix border around the current file browser entry not being clipped correctly. * Sequencer: Fix slightly wrongly painted graphics for seqtrack name in the seqtrack headers. * Instruments: Support "Random" also for system effects. "Random" is turned off for system effects by default though. * Sequencer: Fix error message popping up when clicking on a seqtrack header pan slider. * Sequencer: Don't accept dropped audio file or block when dropped into the right side tabs. * Sequencer: Make Shift + Right-click delete block in blocklist. * Blocklist GUI: Change blockname text color to black. * Block lists: Add "Rename" option to the popup menus. * Mixer: Fix undo for resetting an insert slider. * Editor: Faster to insert/delete lines while plaing if LZ is less than 1. * Editor: Fix cursor not always positioned at correct line when stopping to play after changing LZ while playing. Also fixes wrong and/or lacking "realline" messages sent to Pd instruments, and possibly other things. * API: * New functions: deletePdController, setInstrumentEffectChangesValueWhenPressingRandom, getInstrumentEffectChangesValueWhenPressingRandom, startRecordingInstrumentAutomationInEditor, playSongFromCurrentSequencerPosition, getLastSongPosStart, setLastSongPosStart, undoSeqtrackNoteGain, setEditorSeqtrackMuted, getEditorSeqtrackMuted. * Add optional argument "textcolor" to gui_line. * Add optional argument "set_as_current" to createAudioInstrument, createAudioInstrumentFromPreset, createAudioInstrumentFromDescription, and cloneAudioInstrument. * Add arguments "include_editor_elements" and "bool include_navigator" to gui_bottomBar Changes 5.9.31 -> 5.9.32: * Mixer: Some minor improvements to the popup menu. * Instruments/Help: Add "Help" option to the bottom of the effect slider/checkbox popup menu. * Sequencer: Fix race condition in all of automation and timing. Bug introduced in 5.9.30. This fixes wrong tempo values sometimes being read, wrong signature values sometimes being read, wrong automation values sometimes being read, wrong song tempo values sometimes being read, and possibly prevent crashes and strange behaviours. Wrong behaviours caused by this bug should have been rare though. * Control: Fix possible crash during shutdown. * Editor: Fix various race conditions when changing number of lines, changing tempo, etc. while playing. This should fix various assertion dialogs popping up in rare circumstanses in conjunction with timing. * Help: Improve the documentation for timing. * GUI: Make sure popup menu entries are never painted in "hovered" color when mouse cursor is not above the entry. For instance, when there were only one entry, that entry was always painted in the hovered color. * Editor: Make the functions to insert and delete lines insert or delete the expected number of lines when LZ is not 1. I.e. when LZ is 2, insert 1/2 line. If LZ is 1/2, insert 2 lines, and so forth. * Editor: Fix cursor position after inserting or removing lines when LZ is not 1. * Internal: Fix a race conditition during startup (probably harmless). This also fixes a rare assertion hit during startup. * Fluidsynth instrument: Update current bookmark when writing directory path manually. * Sampler instrument: Update current bookmark when writing directory path manually. * Sampler instrument: Show message window when a soundfont or directory couldn't be opened. * Sampler instrument: Optimize memory usage. Besides using a lot less memory, it might improve realtime performance as well by causing fewer cache hits. * Instruments: Paint effects with lighter color when mouse is above an effect slider or checkbox. * Instruments: Display "(right-click for options)" in the status bar when mouse is above an effect slider or checkbox. * GUI: Adjust default background color a little bit. (Made it a little bit darker). * GUI: Change default slider colors back to a red->green gradient color instead of the new grayish color that was hard to distinguish from the background. * API * Change types of the "start" and "length" arguments for 'setInstrumentLoopData' from int to int64_t. * Update S7 scheme interpreter. Changes 5.9.30 -> 5.9.31: * Sequencer: Fix wrong seqblock duration of stretched seqblocks when changing tempos of a editor block. * Sequencer: Don't overlap two editor seqblocks when changing tempo of the first block so that the length of it increases. * GUI: Fix main window sometimes being put behind all other windows right after startup. * Instrument: Fix patch widget label colors. Might only have been a problem in debug mode. * Sequencer: Optimize graphics a little bit when editing tempos, signatures, and markers. * Sequencer: Show closed-hand mouse-cursor when moving a vertical scrollbar in the right side tabs. * Sequencer/Windows: Fix strange behavior when releasing mouse button outside current widget. * Sequencer/Windows: Fix browsing directories on a network disks in the file bropwser. * Internal: Fix program crashing when exiting. Have only seen it happen in debug mode on Windows though. * Windows: Fix time positions for notes suddenly jumping to 0 when edited in the piano roll. Probably rare though. Bug introduced in 5.9.21. * Preferences: Change the checkbox for selecting left or right side for current mixer strip into radio buttons . * Preferences: Remove the "Timeline" group from the "Sequencer" tab. Whether to show bars and/or time in the timeline is now a property of the song and not a global option. * API: Removed showBarsInTimeline, setShowBarsInTimeline. Changes 5.9.22 -> 5.9.30: * Sequencer: Scale various line widths with fontsize. * Internal: Fix api-errors not being displayed in the message window. (Bug probably introduced in 5.9.21 or thereabout). * Sequencer: Improve gfx performance when moving the navigator bar. * Sequencer: Fix play cursor sometimes being drawn on top of seqtrack headers. * Sequencer: Always draw the same bar numbers in the "bars and beats" lane.. E.g. don't sometimes draw bar 13-15-17, and sometimes draw 14-16-18, depending on the position of the navigator. Always draw bar 13-15-17. * Sequencer: Improve painting sequencer grid. * Sequencer: Adjust seqblock header colors. * Sequencer: Improve painting the dragger. * GUI: Fix some situations where the alpha channel disappeared from a color. * Sequencer: Position song tempo automation above timeline, not below. * Sequencer: Fix a possible crash (probably rare) that could happen if playing song while swapping two seqtracks. * Sequencer: Force sequencer timing mode when first seqtrack is for audio. * Help: Document timing. * Sequencer: Tweak painting buttons and checkboxes. * Sequencer: Markers. A new sequencer lane called "Markers" can be enabled by right clicking and enable the "Markers" checkbox. Markers are also shown in the sequencer navigator. * Sequencer: Alternative timing system for the sequencer ("sequencer timing"). Instead of using editor blocks in the first seqtrack to define tempo and rhythm, set tempo and rhythm in the new sequencer timing lanes. Select "sequencer timing" by right-clicking in the sequencer and select "Use sequencer timing". * Metronome: Only play metronome ("Click") for timing generated by the first seqtrack. * Instruments: Change the text "green lines" to "yellow lines" in the "T" button tooltip. * Sequencer: Make undo/redo automation atomic. Before this change, some wrong values could be sent to the plugins while undoing/redoing. * Sequencer: Fix possible crash when undoing/redoing sequencer automation and loading song. I've never seen the crash though. * Sequencer: Automatically set block and block position in blocklist and playlist when changing cursor position in sequencer. * GUI: Paint thin black border around buttons. * Sequencer: Paint seqblocks on top of grid, not grid on top of seqblocks. * GUI: Decrease time it takes to resize window and other situations. Fix for regression introduced in Radium 5.9.15. * GUI: Paint most filled rectangles in the sequencer and the mixer with a slight gradient color. * GUI/Internal: minor improvement when mixing two colors. * Preferences: Add tab bar height option to the "GUI" tab. * Sequencer: Add the tabs on the right side: * Block browser * Sound browser * File browser * GUI: Some fixes for drawing text. * Audio: Round displayed CPU percentage to nearest integer. Earlier it was always rounded down. * Soundfilesaver: Fix typing number of channels with the keyboard. * Sequencer: Don't crash if playing audio files with 9 channels or more. * Sample Player instrument: Replace qt scrollbars with radium scrollbars in the sample browser. * Instrument widget: Scale sample font size with system font size. * Mixer: Show minimum and maximum values in the volume requester. * Audio: Fix using LADSPA_PATH environment variable with more than one path. * GUI: Only display single digits for CPU usage in the bottom bar. * Audio: Fix CPU usage being measured inaccurately for single instruments. * Audio/GUI: Slightly improve CPU usage measuring and display. * LADSPA: Show warning if loading a TAP plugin. These plugins should not be trusted. * Audio: Fix CPU spikes in Zita Reverb, probably caused by CPU cache misses. (It's now compiled without the "-vec" Faust option). * Sequencer: Visualize granulation parameters in the audio seqblock GUI when changing parameters. * GUI: Fix automatically breaking lines when drawing text. * Sequencer: Fix memory corruption when inserting soundfiles with more than 2 channels. * Soundfilesaver: Fix writing soundfiles when there is no 2ch "system out" module in song. * Audio: Fix realtime allocation error in some situations when there's lots of grains in granulation. * Internal: Fix showAsyncMessage. Don't risk evaluating argument and so forth. * Build: Add various -W* arguments and fix some potential bugs. * Build: Compile with -flto in release mode. * GUI: Adjust default color for scrollbar. 5.9.22 was very bright. * API: * New functions: gui_filledPolygon, gui_drawPolygon, gui_removeMouseWheelCallback, getFileInfo, iterateDirectory, gui_createFileDragIcon, gui_createBlockDragIcon, gui_setFont, gui_getFont, getParentPath, putSettings, putSettingsW, getSettings, getSettingsW, getSampleBrowserFont, requestWString, getSequencerRightPartEmpty, setSequencerRightPartEmpty, getSequencerRightPartX1, getSequencerRightPartX2, getSequencerRightPartY1, getSequencerRightPartY2, getAudioFilesGeneration, getAudioFiles, getTabBarHeight, setTabBarHeight, getEditorBlocksGeneration, getNumeratorFromRatioString, getDenominatorFromRatioString, createUuid, getSequencerTempos, getAllSequencerTempos, setSequencerTempos, getSequencerSignatures, getAllSequencerSignatures, setSequencerSignatures, getAllSequencerMarkers, setSequencerMarkers, isUsingSequencerTiming, setUsingSequencerTiming, getSequencerTiming, setSequencerTiming, iterateSequencerTime, doPaintVerticalMarkersInSequencer, setPaintVerticalMarkersInSequencer, showBarsAndBeatsSequencerLane, setShowBarsAndBeatsSequencerLane, showTimeSequencerLane, setShowTimeSequencerLane, showTemposSequencerLane, setShowTemposSequencerLane, showSignaturesSequencerLane, setShowSignaturesSequencerLane, showMarkersSequencerLane, setShowMarkersSequencerLane, gui_setAlphaForColor, gui_makeColorLighter, gui_makeColorDarker * gui_textWidth: add optional argument "guinum". Changes 5.9.21 -> 5.9.22: * GUI: Replace all Qt scroll bars with Radium scroll bars. * GUI: Fix scrollbar positions not being updated when using mouse wheel inside a scroll area. * GUI: Fix mouse wheel for scrolling the mixer area. If mouse pointer was on top of a slider, the slider value would change value instead, and other similar things, which was quite confusing. * Sequencer: Don't show the resampler seqblock interface popup menu for editor seqblocks. * Sequencer: Add "Recording options" entry to the audio seqtrack section * General: Reduce gc pause times. * API: * New function: gui_addMouseWheelCallback * Add optional argument "listen_to_mouse_wheel" to gui_scrollArea, gui_verticalScroll, and gui_horizontalScroll. Changes 5.9.20 -> 5.9.21: * Quantitize: Fix crash happening sometimes. Bug introduced in 5.9.8. * Editor: Make changing pianonote end position frame-accurate. * Editor: Make moving pianonote and changing pianonote start position frame-accurate. * Editor/pianoroll: Fix assertion error sometimes popping up when trying to move note below end of block. * S7: Build s7 with debug symbols. * Sequencer: Name the automation entries ("Automation") in the popup menu. * Editor/pianoroll: Make sure mouse pointer is placed in the middle of the newly created note in the x direction, and at the bottom of the newly created note in the y direction. This feels much more natural. * Editor/pianoroll: Make it possible to move new notes upwards, not just change end note position. * Sequencer: Fix assertion window popping up when creating automation and possibly other situations. Bug introduced in 5.9.19 * GUI: Display "Shift + Right Mouse" as keybinding to various popup menu entries used for deleting things. * Scripting: Don't show assertion reporter if a callback returns the wrong type. * Soundfile saver: "Range" -> "Range in current block". * Manual: Some minor fixes. * Menus: Rename "Solo/Mute" to "Editor Solo/Mute". * Menus: Moved "Turn off Solo for all instruments" from the Solo/Mute menu to the "Play menu". * Menus: "Glissando" -> "Glissando between two notes". * Menus: Rename "Block view" to "Editor View" and "Block edit" to "Editor Edit". * Editor: Add "Muted" and "Soloed" to the track popup menu. * GUI: Fix mixer strip for current instrument moving to the left side of the mixer when pressing the "W" button. Bug introduced in 5.9.15. * GUI: Fix minimum height of the main window to grow and grow in size when pressing the "W" button in the mixer. Bug introduced in 5.9.15. * Preferences: Options to let mixer window and sequencer window be independent windows. I.e. that they are not children of the main window, meaning that the main window can be put in front of the mixer or sequencer, the windows possibly get other bar buttons (depending on the OS and window manager), and so forth. * Mouse: Fix gridding working the wrong way in the editor if the object we were moving wasn't already placed on the grid. Bug introduced around 5.9.5. * Mouse: Make gridding frame-accurate. * Editor: Fix moving note end in the note text subtrack. * API: sequencerWindowIsChildOfMainWindow, setSequencerWindowIsChildOfMainWindow, mixerWindowIsChildOfMainWindow, setMixerWindowIsChildOfMainWindow. Changes 5.9.19 -> 5.9.20: * Menus: Cleaned up a little bit. A lot more remains. * Demo song: Remove all pauses and adjust system volume * Sequencer: Ensure editor seqblocks never overlaps after loading song. This fixes assertion error sometimes popping up when reaching the end of a seqblock after loading a song with samplerate mismatch (and possibly other situations). * Sequencer: Fix editor seqblock length when loading old songs where samplerates mismatch. (Most demo songs are saved in the older song format.) * Instruments: Add "Recv. external MIDI" checkboxes to the instrument popup menu. * Instrument list: Option to select whether instruments should receive MIDI from external input. * Preferences: Add option to disable sending MIDI input to current instrument. * MIDI: Make sure the option "use track channel for midi input" is remembered between sessions. * GUI: Adjust preferences layout a little bit. * API: instrumentAlwaysReceiveMidiInput, setInstrumentAlwaysReceiveMidiInput, isSendingMidiInputToCurrentInstrument, setSendMidiInputToCurrentInstrument Changes 5.9.18 -> 5.9.19: * Linux: Build JUCE library optimized for SSE2 and SSE math. Should speed up audio processing, and possibly avoid denomals. (This is probably a regression, but I don't know when it happened.) * Mixer: Don't stutter graphics when changing a "Main Pipe" send-slider value and other non-bus send-sliders values. * Editor: Make MIDI FX enabled by default after creation. Bug introduced in 5.9.18. * Editor: Fix selecting new FX when right-clicking on a different track than the current track, in some situations. * Internal: Make sure execution is stopped when hitting an error, not continued, in various situations. * Editor: Fix error message popping up when hovering mouse over fxtext in a track with MIDI instrument. * Crashreporter: When Radium crashed because of the Nouveau driver, we tell this in the crashreporter, and remove the "SEND" button. * Pd: Fix crash when deleting a controller in some situations. * Mouse: Make sure mouse pointer is always placed at correct position after erasing in the piano roll. * API: Replaced getFxtextEffectNumFromX with getFxtextFxnumFromX. Changes 5.9.16 -> 5.9.18: * Sequencer: Fix error message popping up if moving a seqblock to another seqblock and there isn't enough space between start of song and another seqblock already positioned in the new seqtrack. * Editor: Show editor track popup menu when right-clicking below last line. * Editor: Show editor track popup menu when right-clicking above line 0. * Internal: Improve error message handling. * Internal: Don't show the "stop/continue/etc." dialog when something went wrong. There was never any reason to press any other button than "Stop", and sometimes this dialog itself caused a lot more problems than the error. * Internal: Don't treat mouse events in scheme when another scheme code is running. * Editor: Fix crash/hang in 5.9.16 when moving a seqblock to another seqtrack in some rare situations. * Internal: Delete effect monitors immediately when deleting instrument. * Internal: Made various code that stored several scheme callbacks safer. * GUI: Fix memory leak in popup menus. * Internal: Make gc-protecting s7 objects faster. * Internal: Assert that gc-protecting works correctly. * Editor: Fix shift key not forcing vertical movement when moving blocks. * Editor: Ensure piano roll rubber is hidden if an exception is thrown. * GUI: Make keyboard navigation of popup menus behave same way as the main menus. * GUI: Fix keyboard navigation in sub menus of popup menus. * Editor: Right-clicking inside the note name subtrack will show the track popup menu, not switch between wide and narrow mode. * Editor: Add a "wide/narrow mode" checkbox to the track popup menu. * Add a "2 char note name" checkbox to the track popup menu. * Add help page for editor track FX. * Options to enable/disable individual editor track FX. * Mouse: Fix using Alt to move all nodes (and not Ctrl). Bug introduced in 5.9.16. * Sequencer: Disable the "Granulation parameters" popup menu option when seqblock doesn't hold sample. Error messages were displayed if this option was selected. * GUI: Automatically isplay keybinding for various popup menu entries. * Menus: Add Seqblock functions to the "Clipboard" menu. * Internal: Fix displaying function names in error handler. * Internal: Prevent rare program freeze in error handler. * Editor: Fix bug when pressing alt+shift+right mouse button on a velocity. Could lock up the program when doing that. * Editor: Don't create microtonal notes in the piano roll unless ctrl is pressed. * API: * New functions: showFXTextHelpWindow, getFxEnabled, setFxEnabled, gui_isEnabled, setTrackNoteLength, getTrackNoteLength, trackNoteAreaWidthIsWide, setTrackNoteAreaWidth, getLastHoveredPopupMenuEntry, hoverPopupMenuEntry * Let changeTrackNoteLength take tracknum / blocknum / windownum as arguments instead of just windownum. * Add argument "throw_exception_if_not_found" to removeEffectMonitor Changes 5.9.15 -> 5.9.16: * Updated the manual somewhat. * Sequencer: Update graphics after undoing or redoing fade length. * Instrument widget: Don't create undo entry for the Solo button unless undo for solo is enabled in preferences. * Audio: Add option to create undo entries when clicking a solo button. * Sequencer: Fix error messages popping up after just clicking a seqblock, without moving it. * Sequencer: Make keyboard modifiers consistent by changing the modifier for copying seqblock from Shift to Alt (macosx: Ctrl). This way, Shift can be used to move a seqblock vertically. * Mouse: Use the same keyboard modifier to scroll horizontally as used to limit mouse movement in the x direction. (Windows/Linux: windows key. macOS: Alt) * Mixer/Manual/Faust: When using the mouse scroll wheel to scroll vertically, scroll to the left when scrolling the mouse wheel up, and to the right when scrolling the mouse wheel down. Not the other way around. * Sequencer: Draw seqtrack number in a separeate box, not as part of the seqtrack name. * Sequencer: Fix having to press mouse button two times to make mouse button work right after changing seqtrack name. * Update s7 * API: ensureCleanStateOutsideMouseCycle Changes 5.9.12 -> 5.9.15: * Sequencer: New GUI for the seqblock track on/off window (i.e. the editor seqblock GUI). It basically looks the same, but uses the internal widget system instead of the Qt widget system, so the code is cleaner and is more stable. The new GUI also have colorized buttons using the instrument colors. * Internal: Improved scheme backtrace. * Fix for editor tracks on/off GUI. * Sequencer: Fix updating content of seqblock GUIs after undoing/redoing. * Linux: Fix keyboard modifiers being resetted when reconfiguring widget contents. * Sequencer: Add undo entries when editing editor track on/off in editor seqblock GUIs. * Sequencer: Fix situations where seqblock GUI was closed automatically unnecessarily. * Sequencer: Optimized undo handling in various situations. * Mouse: When clicking on an existing object, wait until mouse pointer has started moving before creating undo entry. * Sequencer: Fix error message sometimes popping up after an audio seqblock GUI had been automatically closed after a seqblock was deleted. * Sequencer: Set sample name as window title for the audio seqblock GUI. * Sequencer: Replaced granulator from sndlib with a custom made granulator. The new granulator uses less CPU (especially for realtime usage), and behaves a bit differently. The new granulator also provides a new "strict no jitter" option. * Sequencer: Display correct dB value in the Gain slider in the audio seqblock GUI. * Sequencer: Fix the "Normalize!" button in the audio seqblock GUI. * Mouse: Fix possible strange behaviors when first pressing left button and then pressing right button without releasing left button first. * Sequencer: Fix error message when right-clicking a pan slider. * DSP: Some minor optimizations. * Sequencer: Fix moving seqblock above the first visible seqtrack and below the last visible seqtrack. * GUI: Fix lower tabs not using all horizontal space when neither the editor nor the mixer were visible in the main window. * Sequencer: Add a "W" button to the top left area. The "W" button move the sequencer into it's own window, similar to the "W" button in the mixer. * Sequencer Add an "F" button next to the "W" button. The "F" button let the sequencer take up all space in the main window. The "F" button works the same way as the "Full" button in the instrument widget. * Sequencer: Change seqtrack header button order from "H R M S" to "R M S H" * Sequencer: Fix graphics update when releasing mouse button after selecting rectangle area. * Sequencer: Start editing seqtrack name when pressing mouse button on the name, not when releasing the mouse button. * GUI: Ensure code that is supposed to run when releasing a mouse button is always executed. (Workaround for Qt design flaw.) * Sequencer: Extend the horizontal borders between seqtracks to begin at the leftmost part of the seqtrack header. * Sequencer: Fix delete seqtrack automation when shift+rightclicking. * Sequencer: Use SplitVCursor as mouse cursor shape for the dragger. * Sequencer: Fix error messages popping up when undoing a split audio seqblock operation. Other things may have been fixed too. * Crashreporter: Replace any occurence of the users user name with "$USERNAME" (literarily) to ensure some more anonymity. * Crashreporter: Include all non-standard characters found in home path and program path. * Crashreporter: Include both home path and program path. * Crashreporter: Fix some crashreports from linux users and some assertion messages not being delivered to me by the server (turns out that exim4 will silently not deliver an email if at least one line is around 800 characters long or more). * API: * New functions: markSeqblockAvailable, unmarkSeqblockAvailable, setVerticalSplitMousePointer, setSequencerInWindow, showHideSequencerInWindow, showSequencer, hideSequencer, sequencerIsVisible, sequencerInWindow, gui_setName, gui_bottomBar, hideUpperPartOfMainWindow, showUpperPartOfMainWindow, upperPartOfMainWindowIsVisible, showHideUpperPartOfMainWindow, setSeqblockGrainStrictNoJitter, getSeqblockGrainStrictNoJitter, undoSeqblock, enableSchemeHistory, disableSchemeHistory. * deleteSeqblock: add optional argument 'notify_listeners'. * deleteSeqblock: take seqblockid as argument instead of seqblocknum+seqtracknum. * Don't show error message if a seqblock-deleted callback have called directly, or triggered a call to, removeSeqblockDeletedCallback. * Let addSeqblockDeletedCallback and removeSeqblockDeletedCallback take callback as the only argument, plus automatically remove the callback if it returned false. Changes 5.9.10 -> 5.9.12: * Sequencer: Fix gfx garbage when moving first or last seqblock automation node. * Sequencer/Navigator: Paint seqblocks being recorded. * Sequencer/Navigator: Paint multiple seqblocks being moved (i.e. orange color) in navigator * Sequencer: Mark the "fixed position for play cursor" option as experimental. * Sequencer: Turn off automatically scroll timeline so that cursor is always visible when playing. The feature can be enabled again under Preferences. * Build: Handle better situation when UIC or MOC failed. * Sequencer: Scroll horizontally so that the cursor is placed 1/4 into the visible area, and not 1/2, when play cursor falls outside the visible area when playing. * Main GUI: Fix jumpy graphics when drawing the main window lower tab names ("Edit" / "Instrument" / "Sequencer") while resizing. * Sequencer: Paint play-cursor in navigator as well. * Sequencer: The height of all seqtracks can now be taller than the height of the sequencer: * Option to set height of a seqtrack. (Use the new "H" button or the "Set size" entry in the popup menu. The default seqtrack height is wet to "2 rows". * Ways to scroll the sequencer vertically: * Use the mouse scroll wheel while pointer is positioned in the seqtrack headers * In the seqblock parts of the sequencer, hold one of the Windows keys (OSX: Alt key) while scrolling the mouse wheel. * Move the navigator up or down. * Sequencer: Include the seqtrack popup menu entries in the header popup menu. * Sequencer: Ask user for confirmation when deleting first seqtrack and the second seqtrack is for audio files. * Sequencer: Add "Swap with next seqtrack" entry to the seqtrack section of the popup menu. * API: swapSeqtracks, getSeqtrackMinHeightType, setSeqtrackMinHeightType, getSeqtrackMaxHeightType, setSeqtrackMaxHeightType, getSeqtracksX1, getSeqtracksX2, getSeqtracksY1, getSeqtracksY2, getTopmostVisibleSeqtrack, setTopmostVisibleSeqtrack, autoscrollSequencerToMakePlaycursorVisible, setAutoscrollSequencerToMakePlaycursorVisible. Changes 5.9.9 -> 5.9.10: * Sequencer: Fix graphics update when editing stretch or speed automation. * Plugins: Fix creating undo when editing a native GUI. * Sequencer: Draw seqblocks properly when seqtrack height is smaller than font height. * Sequencer: Paint seqblock text and border in floating point precision when they are moved (to avoid jumpy text). * Audio file reader: Fixed code that perhaps could have caused buggy behavior when trying to load a non- existent file. * Crashreporter/Linux: Include desktop/window manager info into the report. * Crashreporter: Include all environment variables containing "qt" into the report. * Menus: Add "Test assertion reporter warning" and "Test assertion reporter error" entries to the Help -> Debugging menu. * Linux: Assert during startup that neither of QT_QPA_PLATFORMTHEME, QT_QPA_PLATFORM, nor QT_PLUGIN_PATH are set. * Linux:. Unset the QT_QPA_PLATFORM and QT_PLUGIN_PATH environment variables in the startup script. Perhaps this will fix some strange crashes reported by anonymous users via the crashreporter. * Windows/crashreporter: Fix backtrace when program path contains non-ascii characters. * Windows/sequencer: Fix editing seqblocks for audio files containing non-ascii characters. * Windows/qjackctl: Fix starting the server when program path contains spaces. * Windows: Fix loading audio files containing non-ascii characters into the sequencer. * Windows: Fix problems with Ladspa and rdf when program path contains spaces. * Ladspa: Updated included rdf file for calf. (Lots of calf plugins are not placed in the uncategorized category anymore.) * Sequencer: Remove gap between last seqtrack and navigator. Changes 5.9.8 -> 5.9.9: * Sequencer: Automatically update number of tracks in the track on/off editor when the number of tracks in the block changes. * Sequencer: Automatically close the track on/off editor when seqblock is deleted. * Sequencer: Fix track on/off editor after moving the seqblock before or after another seqblock. * Sequencer: Fix moving several seqblocks at once. (Bug introduced in last release I think.) * Sequencer: Display instrument names for the tracks in the track on/off editor. * Sequencer: Change seqblock in the track on/off editor when changing current seqblock. Earlier, it was changed when the mouse just hovered it. * Sequencer: Set current seqtrack when starting to edit seqtrack automation. * Sequencer: Fix error message sometimes popping up right after opening seqblock audio GUI. * Sequencer: Optimize drawing waveforms. * Sequencer: Optimize drawing seqblock automation. * Sequencer: Fix drawing shadowed waveforms (shown when interior values are set). * Sequencer: Fix drawing seqblock automation outside start and end of a seqblock. * Sequencer: Finished implemented the concept of "current seqblock". The current seqblock has a blue border around it. * Sequencer: Various minor rendering tweaks. * Disk: Improve error messages when disk access fails. * Sequencer: Saving song remembers sequencer visible area. * Sequencer: Undo remembers the sequencer visible area. * Editor: Pressing Escape or closing the window immediately cancels the block properties window. * Editor: Make it possible to set only one track in the block properties window. * API: requestWasCancelled, setCurrSeqblock, getCurrSeqblockId, cancelCurrSeqblock Changes 5.9.5 -> 5.9.8: * Sequencer: Make sure the seqblock below mouse is always the selected one when showing the seqblock popup menu. * Sequencer: Always make it possible to set right interior to 0, even when we use grid. * Sequencer: Update fade values in realtime when changing stretch or speed. * Sequencer: Fix right interior handle text in seqblocks sometimes showing "0.01" even if it was really 0. * Sequencer: If seqblock interior is less than 0.01ms, write "0.01ms" not "0.01s" in the interior handles. * Sequencer: Show seqblock grid when popup menu is open. * Sequencer: Move "Split audio"/"Set gain"/"Normalize" from the "Audio files" section to to the "Audio seqblock" section in the seqblock popup menu. * Sequencer: Fix cancelling "Set gain" from the seqblock popup menu. * Sequencer: Show an are-you-sure dialog if trying to insert an audio seqtrack in first position. (You normally want an editor seqtrack there for grid and timing.) * Sequencer: Paint automation nodes after painting seqtrack borders. * Sequencer: Make it possible to select an automation node even when parts of the node is painted in the neighbouring seqtrack. * Sequencer: Started implementing the concept of "Current seqblock". * Sequencer: Fix various situatons where the song cursor left a trail of graphical garbage. * Preferences: Rename "Sequencer -> Grid -> Loop start/stop" to "Sequencer -> Grid -> Loop/Punch start/stop". * Editor: Cancel the "Apply tempo" operation in the block tempo multiplier popup menu if a BPM entry will become above 999 or below 1. * Editor: Disable the "Reset" and "Apply tempo" entries in the block tempo multiplier popup menu if block tempo multiplier is set to 1.0. * Editor: Rename "Apply tempo" to "Apply tempo (and Reset)" in the block tempo multiplier popup menu. * Audio: Reduce chance of audio overruns when adding or deleting audio connections. * Update s7 * Editor: Write "Current seqtrack is pausing" instead of "Current sequencer track is pausing". * Sequencer/Editor: Immediately write "current sequencer track is pausing" in the editor when changing current seqtrack to a pausing seqtrack. * Sequencer/Editor: Fix setting block multiplier if seqtrack stretch had already been set to a value not equal to 1.0 and block multiplier was not set to 1.0. * Sequencer: Paint grid in a more subtle way. Use thinner lines and a more transparent color. * Save: Don't make automatic backup if user is currently pressing a mouse button. * Load: Fix crash when loading a song saved before the sequencer was added to the program. * Disk: Fix assertion window popping up if loading an older song that had editor range in a block. * Sequencer: Paint current grid type that is currently in use. Earlier only the bar grid was painted. * Sequencer: Don't paint anything to the left of where grid starts, i.e. before the start time of the first block in the first seqtrack. * Sequencer: Same way to find grid for painting grid, painting timeline, and when finding closest position in a grid. Earlier, the different ways could sometimes be noticed/seen. * Editor: Fix some situations where the assertion window popped up when a block was set to play ridiculously fast. * Sequencer: Possible to select current automation node when parts of the nodes are outside the seqblock or seqtrack area. * Soundfilesaver: Change "could sound very differently" to "can sound very different". * Sequencer: Fix selection of current seqblock handle when moving mouse away from a seqblock automation. * Sequencer: Optimize graphics. * Sequencer: Paint seqblock handles on top of the seqblock automation background fill. * Sequencer: Fix automation sometimes being drawn above seqtrack headers. * Sequencer: Fix Seqblock automation outside the interior boundaries not being drawn more opaquely. Bug introduced a few releases ago. * Sequencer: Some smaller changes to the seqblock audio GUI (i.e. "Settings"). * Sequencer: Fixed a few minor bugs when moving an audio seqblock while the seqblock audio GUI is open. * Sequencer: Fixed wrong seqblock sometimes being rendered as being under the mouse while the seqblock is moved by the user. * Sequencer: Don't split audio files at grid by default when pressing the "S" key. If you want to split at grid, use the popup menu instead. * Sequencer: Never split audio file if pressing Ctrl+S while the mouse pointer is inside the sequencer. Ctrl+S should always be for saving song. * Sequencer: Double-clicking a seqblock opens the "enable/disable editor tracks" or the audio seqblock "settings" GUI. * Sequencer: Moved various entries from the "Seqblock----" section to the "Editor seqblock---" section. * Sequencer: Add pitch slider to the audio seqblock GUI. This is more convenient than to both change "speed" and "stretch". * Sequencer: Display inverted value as seqblock speed. This should both feel more natural and be more convenient. E.g 2.0 is double speed and 0.5 is half speed. In addition, if both speed and stretch have the same value, seqblock duration is the same as if both speed and stretch had been set to 1.0. * Manual: Use the word "seqtrack" instead of "sequencer track". * Manual: Document how to record audio. * Manual: Updated information on how to add seqtracks. * Manual: Document resetting automation (shift + alt + right mouse button). * Manual: Fix documentation for "Move all automation nodes". Any alt key should work, not just left alt. * Automation: Let Shift + Alt + right mouse button delete all nodes. * Sequencer: Fix two undo entries being created when deleting a seqblock automation node using shift + right mouse button. * Sequencer: Fix undo entry not being created when deleting first or last node when using the popup menu. * Sequencer: Set node value to default, not 0, when deleting first or last seqblock automation node. * Sequencer: Show instrument name in statusbar when mouse is above a seqtrack automation node. * Sequencer: Draw seqblock interface text in floating point precision when playing song and sequencer cursor is in fixed position. * Sequencer: Add "Show GUI" to the seqtrack automation popup menu. * Sequencer: Add "Move to a different seqtrack" to the seqtrack automation popup menu. * Sequencer: Add "Cut automation", "Copy automation", and "Paste automation" to the seqtrack automation popup menu. * Sequencer: Remove the "Remove (delete all nodes)" option from the seqtrack automation popup menu. Use "Cut automation" instead. * Automation: Consistently use the word "node", not a mix of "node" and "break point". * Sequencer: Fix player not always automatically stopping at song end when there is seqtrack automation (bug introduced maybe a few months ago). * Editor: Fix track headers not being redrawn when clicking the undo/redo buttons in the bottom bar. * API: * New functions: addSeqAutomation2, getMouseFx, getMs, getCurrSeqblockIdUnderMouse, getSequencerGridType. * Throw assertion when it won't work to add callback to a GUI. * Fixed the return value of addSeqAutomation * Changed setCurrSeqblockUnderMouse, getSeqblockStretch, getSeqblockSpeed, getSeqblockStretchSpeed, and getSeqblockResampleRatio to take seqblockid as argument instead of seqblocknum+seqtracknum. * Add optional argument 'use_gfx_if_possible' to seqblockHoldsBlock, seqblockHoldsSample, getSeqblockStretchSpeed, and getSeqblockResampleRatio * Removed the "seqtracknum" argument from getSeqGriddedTime. * Let popupMenu return guinum * Only show the "Ok / Continue" error dialog if we are fairly certain it won't block user interaction, possibly making it impossible to continue using the program. If we are not certain, the message will be shown in the message window instead. Changes 5.9.4 -> 5.9.5: * Update S7. * Sequencer: Fix assertion reporter popping up, and sometimes also crashes, when saving a song that was originally created before audio seqtracks and editor seqtracks were separated. * Sequencer: Fix erratic font size changes for the text in the seqblock handles when the play cursor has been set in fixed position. * Sequencer: Make automatic crossfades optional. * Sequencer: Make sure we are able to move editor seqblocks as close as possible other seqblocks without overlapping. * Sequencer: Set window title of the "Enable/disable editor tracks" window to the name of the editor block the seqblock uses. * Sequencer: Make sure we are able to stretch editor seqblocks as much as possible without overlapping another seqblock. * Manual: Improve Mouse section of the manual a little bit. * Sequencer: Fix undefined behavior (including crashes) that might happen when redrawing. * API: * Added: doAutoCrossfades, setDoAutoCrossfades * Removed: helpWindowToFront, maximizeEditorWindow, minimizeEditorWindow Changes 5.9.0 -> 5.9.4: * Update S7 scheme interpreter. * Sequencer: Make it faster to move and edit seqblocks with stretch or speed automation. * Sequencer: Fix minor memory leak. * Sequencer: New look for the interface for fade in/out, interior, speed, and stretch. The values themselves are also drawn on top of the seqblocks themselves. * Sequencer: Redraw everything when grid type changes. * Sequencer: Only repaint seqblocks holding current editor block when editor is repainted. * Sequencer: Optimize redrawing when selecting seqblocks (i.e. the selection rectange). * Editor/Sequencer: Don't update graphics when changing current instrument and neither the previous nor current current instrument is used in the current editor block. * Sequencer: Make seqblock colors a little bit less lighter, more saturated, and less transparent. * Sequencer: Fix popup menu for the stretch boxes sometimes being activated also after resetting stretch. * Sequencer: Don't set seqblock under mouse as selected (i.e. a greenish color) when right-clicking it. * Sequencer: Set a sensible maximum width of the interface handles. I.e. if a seqblock is 100000 pixels wide, the handles are not 25000 pixels wide, as they were before. * Sequencer: Optimized drawing a little bit. * Manual: Document how to break grid while editing automation. * Sequencer: Paint automation nodes in a less transparent color. * Manual: Documented moving all automation nodes, plus some general improvements to the mouse section * Automation: When pressing the Alt key (OSX: Ctrl key), all break points are moved. Goes for all automation editing in the editor and sequencer. * Sequencer: Add "Reset" and "Add default value node" options to the seqtrack automation popup menu. * Sequencer: Add "Remove (delete all break points)" option to popup menu for seqtrack automation. * Sequencer: Fix slightly off navigator position when dragging the right handle. * Sequencer: Fix stuck navigator. When the right handle was moved as far as possible to the left, the only way out was to zoom out. This has been fixed. * Disk: Include Radium version in .rad files. * Load: Don't show message about having to change note duplicator values because of an earlier bug when loading any of the demo songs. * Modular mixer: Zoom to / from mouse pointer position, not to the middle of the window. * Sequencer: Make sure time at mouse pointer is still the same when zooming in/out using the scroll wheel. I.e. zoom towards the mouse, not towards the middle of the screen. * Audio file recorder: Don't start recording if we failed to open file. * Sequencer: Set default fadeout value for new audio files to 10ms. This value is configurable, and can also be turned off. * Sequencer: Fix fade out for audio files not working very well (it could cause pops) if value was less than around 100ms, plug fix a general tiny lag in volume automation and fade in. * Sequencer: Fix sample reader not providing the last frames of a sound file. Somewhere between 0 and 4096 frames were always skipped. This caused small pops if the sound file wasn't silent the last 85ms or so. * Internal: Wait until sample recorder thread has shut down before exiting. Fixes Qt error message during shut down in debug mode, and possibly other things. * Sequencer: Resampler ratio seqblock automation. * Sequencer: Add left and rigth "speed" seqblock boxes, similar to the "stretch" boxes. * Sequencer: Option to enable/disable seqblock automation to the node popup menu. * Sequencer: Option to enable/disable a seqtrack automation. * Quantitize: Fix "behavior if a note becomes too short after quantization". For some releases, the option "keep original length" was always used no matter what the option was set to. * Mixer: Add "Connect to main pipe" entry to the top of the sound object popup menu if instrument has audio out and it isn't connected to anything. (Very often you want to connect this object to the main pipe.) * Mixer: Rename "Paste sound object(s)" popup menu option to just "Paste". * Mixer: Fix "Paste sound object(s)" popup menu option. It was usually not enabled even when there was sound object(s) in the clipboard. * Editor: If cursor is placed on last line, jump to line 1 if pressing the End key. * Editor: Never scroll to line 1 unless cursor is placed on last line. E.g. if block has 32 lines and cursor is placed on line 16, scroll to line 31 and not line 1 if pressing page down. * Player: Don't play current editor block when releasing left shift key if a mouse button is pressed since the left shift key was pressed. * Player: Don't play current editor block when releasing left if the number of undos have changed since the left shift key was pressed. * Sequencer: Properly extend seqblock automation length when seqblock length has been extended. * Seqblock: Don"t obtain keyboard focus in the seqblock settings widget. * Sequencer: Also reduce seqblock automation length if seqblock length has been reduced. * Sequencer: Put back the "Volume automation" entry in the editor seqblock popup menu. By accident, it disappeared somewhere between 5.8.1 and 5.8.6 * Sequencer: Show current interior value (i.e. "|---" "---|") in realtime in the status bar when changing an interior value. * API: * New functions: getSeqAutomationEnabled, setSeqAutomationEnabled, getSeqblockLeftSpeedX1, getSeqblockLeftSpeedY1, getSeqblockLeftSpeedX2, getSeqblockLeftSpeedY2, getSeqblockRightSpeedX1, getSeqblockRightSpeedY1, getSeqblockRightSpeedX2, getSeqblockRightSpeedY2, getSeqblockSpeed, getSeqblockStretchSpeed, getDefaultAudiofileFadeout, setDefaultAudiofileFadeout, getDefaultInstrumentEffect, getSeqblockInteriorStart, getSeqblockInteriorEnd, getSeqblockSelectedBox * Add optional argument "use_gfx_if_possible" to getSeqblockStartTime, getSeqblockEndTime, getSeqblockStretch, getSeqblockSpeed, * Fix backtrace in message window when exception is thrown in the C API. * Don't show assertion reporter when an illegal value is sent to setFxnode. Just throw normal API exception. Changes 5.8.9 -> 5.9.0: * Soundfile saver: Make the "All files saved" dialog modal, and fix keyboard focus. * Soundfile saver: Only save audio from current "system out", the one that has slider in the bottom bars. * Soundfile saver: Option to set number of channels * Modular mixer: Fix sound object popup menu. * Soundfile saver: Avoid freezing on OSX and Windows when saving multiple soundfiles. * OpenGL: Hide Mesa startup warning for AMD devices (Teteros) * Build: Silence missing libxaw warning (Teteros) * Build: install.sh script to create radium directory in /opt and other places. Changes 5.8.8 -> 5.8.9: * GUI: Disabled the remaining usage of synchronized popup menus (only the menu to select MIDI port was left). The command line interface menu will be used instead to select MIDI port. * GUI: Replaced lots of minor synchronized popup menus with async popup menus. Might fix various subtle problems. * Sampler: Make record button popup menu async. * GUI: Make slider popup menu async. * GUI: Make checkbox popup menu async. * Editor: Use async menus to select automation. Workaround for a bug in the popup menus of Qt on OSX. * OSX: Another attempt to fix including the diagnostic report in crash reports. * Edit: Fix right-clicking an edit button sometimes destroying parts of the users keybindings file. * Preferences: Rename the "Windows" tab to "Gui". * Editor: Add "Generate new instrument color" option to the track header popup menu. * Sequencer: Change "Clone block" to "Clone editor block" in the popup menu. * API: * Changed readLineFromFile to not strip whitespace. * Removed: simplePopupMenu. Changes 5.8.7 -> 5.8.8: * Build: Fix build when user has installed system version of Qscintilla. * Build: Fix building sndlib * Editor: Fix mark instruments as being assigned to an editor track. * Editor: Fix crash when deleting an instrument assigned to an editor track Changes 5.8.6 -> 5.8.7: * Editor: Only show used instruments in the bottom part of the popup menu to select instrument for a track. Also added a sub menu containing all instruments. * Menus: Add "Show/Hide Edit" to the Windows menu. * Build: Make sure sndlib is rebuilt when it's been updated. * Build: Fix building sndlib. * OSX: Trying to fix obtaining diagnostic reports file for the crash/assertion reporter. * API: instrumentHasBeenUsed Changes 5.8.4 -> 5.8.6: * Blocklist: Add various assertions and logging in order to fix a crash bug happening when selecting previous block (reported via crash reporter). * OSX: Try to avoid an extra assertion report that has popped up recently when program crashes. * Sequencer: Add "Delete all pauses" entry to the popup menu * Playlist: Add option to delete all pauses * Instrument/Mixer: Fix wrong default chance value when changing to a different A/B (default value was 1 instead of 256). * Editor: Fix wrong pan value when pasting sound objects. Bug introduced in 5.8.4 * Audio: Began speed automation, but it"s not working yet, and GUI has been disabled. * Audio: Fix memory leak in granulation. * Audio: Fix cluttered CPU usage in granulation and resampling. * Sequencer: Reorganized seqblock popup menu a bit. * Audio: Handle appropriately when samplerate ratio is too low or too high for libsamplerate. * Sndlib: Fix so that increasing jitter doesn't increase sound length when stretching audiofile in the sequencer. * Packages: Update sndlib to latest version. * Qt: Fix Qt error message about shared opengl context when building with Qt 5.9. * Audio: Increased maximum number of CPUs from 16 to 64 * Instrument widget: Don't update patch widget name for a name that has been edited manually when double clicking sample name in the audio file requester. * Sequencer: Let jitter be 0% by default (granulation). * Sequencer: Show current seqblock automation value in status bar when mouse is placed between two nodes. * Sequencer: Fix tiny fade-in for mono files when starting to play in the middle of a file. Caused by type. Earlier you could hear a click in the right channel. * Peaks: Fix recreating the peak file when audio file have been modified since last time peak file was created. * Peaks: Fix peak values sometimes having the value "inf", causing malformed waveforms. * Jack: Don't crash during startup when jack server is not running. * System: Shut down Juce properly before exiting program. * Linux/OpenGL: Don't recommend to turn off vsync if using Intel GFX (a very long time since that made sense). * Linux: Prevent buggy Qt plugins from crashing radium. * GUI: Prevent Qt from loading plugins during static initialization. * Editor: Fix undoing/redoing tempo multiplier. (Seqblock stretch values were not updated) * Sequencer: Automation for granular synthesis parameters, including stretch. * Sequencer: Reorganized the popup menus a bit. * Audio: Fix possible audio underruns when starting to play block. * Sequencer: When painting automation, also paint a filled transparent area below the lines. * Sequencer: Show correct popup menu when right-clicking an automation node which is on top of a seqblock fade square. * Sequencer: Don't change time value when resetting the value of a seqblock automation node, when seqblock is stretched. * Editor: Ensure sequencer state is the same when undoing changing block properties. * API: * Renamed undoSequencerAutomations -> undoSeqtrackAutomations, undoSequencerEnvelopes -> undoSeqblockAutomations, getNumSeqAutomationNodes -> getNumSeqtrackAutomationNodes, getNumSeqAutomations -> getNumSeqtrackAutomations * Deleted undoSeqblockAutomations. * New functions: getNumSeqblockAutomations, undoSeqblockAutomation, getSeqblockAutomationName, getSeqblockAutomationDefaultValue, getSeqblockAutomationDisplayString, getSeqblockAutomationValueForTime Changes 5.8.2 -> 5.8.4: * Program log: Add menu command to program log. Might help track down some crashes reported by the crash reporter. * Sequencer: Options to configure granulation parameters for audio files. Right click stretch area and select "Granulation parameters". * Sequencer: GUI to set gain/resampler type/granulation parameters for audio files. * Instrument/load: Ignore A/B setting when the number of effects have changed. This change also prevents the assertion window to pop up, and possibly other problems. * Startup: Show message windows in safe mode during startup. Might fix some crashes reported by the crash reporter. * Log: Log all messages shown in message windows. * Bottom bar: Hopefully fixed a crash happening when closing window with bottom bars. * Editor: Add a separator between list of used fx and "New FX" in the automation popup menu. * Internal: Same way to load and save instrument settings when loading/saving song and loading/saving presets. Not enabled in release mode yet. * Instrument: Option to save presets with embedded samples. * Presets: Save "pan" and "chance" in preset files. * MIDI: Fix crashes that could happen after selecting "Delete all unused MIDI instruments" * API: * New functions: setSeqblockGrainOverlap, getSeqblockGrainOverlap, setSeqblockGrainLength, getSeqblockGrainLength, setSeqblockGrainJitter, getSeqblockGrainJitter, setSeqblockGrainRamp, getSeqblockGrainRamp, getSeqblockResamplerType, getSeqblockSeqtrackNum, getSeqblockSeqblockNum, addSeqblockDeletedCallback, removeSeqblockDeletedCallback. * Changed setSeqblockGain/getSeqblockGain/getMaxSeqblockSampleGain to take seqblockid as parameter instead of seqblocknum+seqtracknum. * Make it possible to let the second argument for gui_horizontalIntSlider/gui_horizontalSlider/ gui_verticalIntSlider/gui_verticalSlider be a function that returns text, instead of text. Changes 5.8.1 -> 5.8.2: * Mixer: Fix error message showing up when right clicking in certain places. * Playlist: Don't update playlist unnecessarily when timing is changed in the editor (and probably other situations). Changes 5.7.9 -> 5.8.1: * VST/Linux: Close and reopen native GUI instead of hiding and showing. Fixes some situations where the position and size of GUI elements becomes screwed up. * Playlist: Add Renoise-compatible keybindings. (https://users.notam02.no/~kjetism/radium/forum/viewtopic.php?f=7&t=53&p=148#p146) * Manual: Inform about the "Edit" tab in the keybindings file. * Note duplicator: Hear changes immediately when changing volume and transpose. (Don't have to wait until a note is played.) * GUI: Organize note duplicator effects in sub menus (one for each voice) in the automation popup menu. * GUI: Add text to the separators in the automation popup menu: "Instrument effects", "System effects", and "Note duplicator effects". * GUI: Fix separators in the sub-menus of popup menus. * Note duplicator: Add popup menus with the optinos "Reset", "Add automation ...", "MIDI learn", and "Assign modulator" to all variables. * Modulators: Only create one undo entry when creating a new modulator. * Instrument GUI: Add "pan" column to the note duplicator for the sample player and the Pd instrument. (Those are the only instruments that supports panning of individual notes.) * Load: Add "Warning: Found unknown variable ..." messages to the message log instead of displaying separate messages. To avoid having to click an "Ok" button many times when loading a song saved with a newer version of Radium than what is currently running. * Linux: VST GUIs seems more snappy. * VST/AU: Fix the "Don't run plugin GUI code when swapping OpenGL" option. * VST/AU: Some improvements to prevent undefined behavior. * Startup: Inform in the "Adding LADSPA plugins" message that this step could take some time if realtime virus scanning is enabled in the operating system. * Import MOD: Always insert first block at the beginning of song. * Song: Only include loop end position when calculating song duration if looping is enabled. * Song: Only include punch end position when calculating song duration if punching is enabled. * General: Do string encoding/decoding in a different way. Hopefully this fixes some recent crash reports where character encoding seems to have failed. * API: * New functions: resetInstrumentEffect, createModulator, getModulatorDescription3, getSongPos, getInstrumentInfo, mousePointerInMixer, playlistInsert, playlistRemove * Add default arguments to createSeqblock. Changes 5.7.8 -> 5.7.9: * Editor: Fix new notes not ending at next note position. Bug introduced in 5.6.5. * Save: Better error messages when unable to open file for writing or unable to write data to disk. * Menus: Rename "Help -> Help overview" to "Help -> Manual" * Manual: Minor improvements. Changes 5.7.7 -> 5.7.8: * Load: Don't show assertion window if loading song saved with 5.7.7 or later which hasn't got a MIDI-learned block tempo multiplier. Changes 5.7.6 -> 5.7.7: * Sequencer: Use all available space for seqtrack names in seqtracks for editor blocks. * Sequencer: Use dB when setting audio file gain. * Editor: Add "add MIDI learn" and "remove MIDI learn" to the block tempo multiplier popup menu. * Modular mixer: Set current instrument when right-clicking a sound object * MIDI Learn: Make undo when parameter value is changed from MIDI. * VST/AU: Display generic GUI if plugin doesn't provide one. (Using GenericAudioProcessorEditor from Juce). * GUI: Finally fix so that popup menues are closed before doing operation. * Plugins: Fix progress window popping up and not closing again when program asks if user wants to open plugin that crashed last time. (And probably other situations) * API: setSeqtrackNoteGain, getSeqtrackNoteGain Changes 5.7.4 -> 5.7.6: * GUI: Prevent a rare crash during startup. * VST/AU: Show a virtual keyboard under the native GUI of plugins that accept MIDI. * Preferences: Update tooltip text for Sequencer -> Transport. * Sequencer: Add "Set gain" and "Set normalized gain" options to the popup menu when mouse is pointing at an audio file. * VST/AU: Show Progress window when traversing plugin paths for potential plugin files. * Preferences: Remove the "Look through directories for potential plugins" button in the plugins tab. * Preferences: Automatically look through directories when adding or removing a path in the plugins tab. * Preferences: When adding a path with the "..." button, automatically add the path when finished in the plugins tab. I.e. no need to press the "Add" button afterwards, which at least to me was confusing. * Preferences: Must press the Return key for a manually added path to be added in the plugins tab. Earlier it was enough just to move the mouse around a little bit while writing. * GUI: Don't display names of empty directories in the plugin selector popup menu. * VST/AU: When using more than 30 seconds to search for plugin files, don't ask to stop searching in all paths, just stop searching in the current path. * Plugin manager: add "VST paths" button (only Linux and Windows). Opens the Plugin tab in the preferences in its own window. * Linux: Update libxcb and xcb-proto to 1.13. * Sequencer: Ensure current seqtrack graphics is updated properly. * Sequencer: Let Shift + right-click delete seqtack under mouse. * Editor: When scrolling down more than one line, don't jump up to line 0 unless cursor are placed at last line. Instead, place cursor at the last line. * Sequencer: Set current instrument when inserting new audio file, and update header graphics. * Sequencer: Adjust color of current audio seqtrack header a little bit. Painting it green was confusing. * VST: Add "/usr/lib/vst", "/usr/local/lib/vst" to the default vst paths. (Teteros) * Editor: Don't jump over the "glide" subtrack in the global swing track when pressing right arrow key. * Sequencer: Show a pan slider in the track headers when there's room for it. * GUI: Fix initial GUI position of Faust plugins. * GUI: Remember last position of Faust GUIs. * Sequencer: Fix painting the transparent blue/red looping/punching colors. Sometimes they could be painted at wrong positions. * Sequencer: Fix showing bars+beats in timeline when last block is placed to the left of the visible area. * Sequencer: Show bars+beats by default in the timeline instead of HH:MM:SS. * Audio meters: Remove almost invisible black line that could appear between channels when displaying more than two channels. * Mixer strips: Fix MIDI learn and modulators for sink plugins. * Player: Don't automatically start playing right after enabling looping when the player was stopped last time because it reached end of song. * Sequencer: Don;t stop playing until cursor has reached loop end, if looping. * Sequencer: Don;t stop playing until cursor has reached punch end, if punching. * Mixer: Various fixes for MIDI-learn. * Mixer: Display the full range of db values for the tekst written on top of send sliders, don't stop when db > 6. * Upgrade S7 scheme to latest version. * Mixer: Write "[M]" in the middle of MIDI-learned pan sliders. * GUI: Make sure all graphics are updated when adding or removing MIDI learn. * Mixer: Write "[M]" in the middle of MIDI-learned volume sliders. * VST/AU: Make sure the correct effect value is stored when automation or modulation sets a new value simultaneously. * Build: Fix vst header include path * API: vstConfigOpen, setSeqblockGain, getSeqblockGain, getMaxSeqblockSampleGain. Changes 5.7.2 -> 5.7.4: * VST/AU: Always store individual effect values in undo, file, and a/b. Fixes some misbehaving plugins (not sure whether the plugins are required to store the effect values in the state, but I would think so). * VST: Add "C:/Program Files/VstPlugins", "C:/Program Files (x86)/VSTPlugins", "C:/Program Files/Common Files/VST3", and "C:/Program Files (x86)/Common Files/VST3" to the default VST paths. * Sequencer: Add "Add automation to current editor track", "Add automation to current sequencer track", and add/remove modulator entries to the header popup menus. * Mixer: Add MIDI learn entries to the effect popup menus. * Sequencer: Add MIDI learn options to the popup menus of the volume slider and the mute/solo buttons. * Sequencer: Change "applies" to "apply" in the recording configuration GUI. * VST/AU: Might prevent some badly written plugins from crashing in rare situations. * Sequencer: Fix "Enable/disable editor tracks" GUI (partly broken in 5.7.2). * Sequencer: Add seqtrack instrument immediately to audio seqtracks. * GUI: Always close popup menu before doing operation. It both looks more correct, plus that the popup menu could cover other widgets opened after selection. * GUI: Fix seqtrack header painting on OSX when sequencer height is changed. * GUI: Slightly speed up rendering of widgets painting all content. * Sequencer: Save relative path for audio files so that the song file and the audio files can be moved together. * Sequencer: If audio file couldn't be found when loading, ask user where it is. * MIDI: Change the "Error. Unable to open MIDI output device ..." error message to "Error. Unable to open MIDI input device ...". * MIDI: Add a "Yes (don"t ask again)" option when connecting to an output port with the same name as a connected input port, plus make the warning message cleearer. * VST/AU: Show at least two a/b buttons, or none if there isn't room. * VST/AU: Slightly faster to open and close GUIs. * VST/AU: Set GUI position before opening it. Fixes slight flicker. * VST/AU: Resize GUI window immediately when plugin gui changes size. No need to manually reopen the GUI anymore. * GUI: Close popup window (if open) when opening system error window. * Juce: Upgrade to 5.3.2. Modifications: * Use ALSA client name + ": " + ALSA port name as juce port name, not just the ALSA port name. * Run ALSA MIDI input thread with lowest realtime priority. Necessary to get accurate timing. * Always subscribe to ALSA MIDI ports. I.e. always make connected port names public. * MIDI: Fix realtime display of notes when recording MIDI, when the MIDI device sends 0x90 instead of 0x80 for note off. Changes 5.7.0 -> 5.7.2: * Sequencer: Option to rename seqblocks. For audio files, this will edit what is displayed in the sequencer and playlist (the file itself is not renamed). For editor blocks, this will edit the block name. * Blocklist: Let Shift + right mouse button remove the audio file from the song and the playlist when clicking a sound file, not delete a block. * Blocklist: Don't add blocks or samples when right-double clicking. * Playlist: Don't remove seqblocks when right-double clicking. * Sampler instrument: Make A/B and undo/redo more efficient. * Sampler instrument: Sound is not slightly paused anymore when changing A/B, unless the A/B change also changes sample. * Fluidsynth instrument: Make A/B and undo/redo more efficient. * Instruments and Mixer: Fix a really bad bug in the A/B system. Values loaded from A/B wasn"t stored on disk and in undo/redo. Not sure when this bug was introduced, but it was visible for the users since the effect sliders weren't positioned to the new values. * VST/AU: Make undo/redo more efficient. * VST/AU: Make changing effect values more efficient. * Mixer: Make A/B more efficient. * Mixer: Include plugin state information in A/B data. * VST/AU: Add A/B buttons to the header of the native GUIs. * Mixer: Show error message if trying to apply an A/B value loaded from a song which used a version of the instrument that had different number of effects than the saved state. * Instruments: Make changing A/B more efficient. * VST/AU: Fix GUI position when opened in Linux. * Mixer: Fix reset A/B for "g" and "h". Earlier, resetting "g" actually resetted "f", and resetting "h" actually resetted "g". * Sequencer: Increase calculated song duration if loop end or punch end is placed after the end of the last seqblock. * Sequencer: Fix blocklist not being updated when inserting new track. * Sequencer: Disable the popup menu options "Replace with existing block" and "Replace with new block" when right-clicking in an audio file seqtrack. * Sequencer: Punch in/out when recording. Enable by right clicking in the timeline and select "Punch in/out" in the popup menu. * New song: Move start/end looping position into visible area. * Sequencer: Slightly improve the timeline popup menu * GUI: Add support for radio buttons in the pop menus. * Sequencer: Ask whether to delete unused recording takes when loading song or quitting program. * Sequencer: When saving song, mark used recording takes as not being auto-deleted. * Sequencer: Make it configurable whether to auto-delete recording takes when they become unavailable. * GUI: Always cancel operations when pressing the Escape key in the line requesters. Don't just treat the escape key the same way as the return key. * Quantization GUI: Fix name of the "Quantitize Range" button. * Audio recording: Automatically delete takes when undoing (redo still works). * Audio recording: Never reset the "take" counter when autocreating filenames. * Sequencer: Don't wrap lines when printing seqblock header names. I.e. if there is not space for all of "Name of seqblock" in the seqblock header, don't just select between "Name of" and "Name", but print as many characters as there is space for. * Undo: Fix current redo data being deleted when right-clicking a sound object in the modular mixer and possibly other situations. * Sequencer: Program requires a session to record files. If not, we would have to move the recorded audio files when user saves song, which is a bit messy. * Sequencer: One button for each function in the bottom of the seqtrack headers instead of popup menus. * Audio recording: Fix rare crash when stopping to record audio file. * Audio recording: GUI to configure recording options. Right-click the "R" button. * Sequencer: Don't show assertion reporter if soundfile was deleted while being used. Instead, just show a normal window informing that the window could not be found anymore. * GUI: Fix clicking checkbox not always responding when clicking too fast. * Audio: Increase number of system input ports from 2 to 8. * Autobackup: Don't make backup when recording audio files * API: setSeqtrackUseCustomRecordingConfig, getSeqtrackUseCustomRecordingConfig, setSeqtrackRecordFromSystemInput, getSeqtrackRecordFromSystemInput, setSeqtrackRecordingMatrix, getSeqtrackRecordingMatrix, resetSeqtrackRecordingOptions, doAutoDeleteSequencerRecordings, setDoAutoDeleteSequencerRecordings, unusedRecordingTakesTreatment, setUnusedRecordingTakes, setSeqpunching, isSeqpunching, setSeqpunchingStart, getSeqpunchingStart, setSeqpunchingEnd, getSeqpunchingEnd, setSeqblockName, getSeqblockName. Changes 5.6.9 -> 5.7.0: * Sampler: Fix crash when sampler instrument is deleted. * Internal: Some improvements to the memory validation system Prevent bugs such as the sampler instrument bug above from going into production again. * Sequencer: Record audio (press the new "R" button in the seqtrack header). * API: seqtrackIsRecording, setSeqtrackIsRecording Changes 5.6.7 -> 5.6.9: * Linux: Include the libfontconfig.so library file. * Player: More finegrained locking and less locking when changing tempo and other things. * Player: Fix rare tsan hit when changing block tempo multiplier. * Editor: Don;t limit mouse movement to the visible vertical area when moving notes / velocities / pitches / automation / temponodes. * Error message: Fix showing error message from non-main thread (sometimes happens when an error messages is generated by Qt.) * Sequencer: Disable option to enable/disable the "Glide to next break point" option in the last node for automations. * Windows: Don't use mouse delta values when the mouse hardware reports absolute coordinates. This fixes jumping mouse movement in virtual box (when mouse integration is turned off) and possibly if using mouse pads or other similar devices. * Windows: Read delta mouse movement directly from the hardware (WM_INPUT). Fixes situations where it's not possible to set the mouse position from software. In addition, it's better for finetuning since we circumvent acceleration applied by the operating system. * Mouse: Slightly change mouse pointer position when the pointer is getting close to any of the edges. This makes it possible to e.g. continue moving a seqblock even if there is no more screen space for the mouse pointer to move. * Sequencer: Fix error message popping up when trying to delete song tempo node while mouse is not currently above a node. * Sequencer: Automatically set current seqtrack when adding new seqblock. * Sequencer: Only show audio files in the file requesters to load audio files. * Sequencer: Don't change current seqtrack when deleting seqblock. * Sequencer: Swap which end of the seqblock is changed when selecting "Reset stretch". The old behavior might have had some advantages, but it felt counterintuitive. * Playlist: Don't start playing song when clicking on an audio file name in the playlist. * Sequencer: Don't stop playing if playing block (not song) when setting new cursor position. * Playlist: Remove rare memory corruption bug that could happen when clicking the up/down arrows in the playlist to swap audio files. * Sequencer: Move seqblocks a little bit smoother. * Fix minor memory leak in blocklist and playlist. * For audio file seqtracks, display audio file names in the blocklist instead of blocks. * Sequencer: Let first seqtrack have the name "Main seqtrack" in new songs. * Sequencer: Differenciate between audio file seqtrack and block seqtrack. An audio file can not be placed in a block seqtrack and vice versa. Later (not implemented yet), this makes it possible to implement seqtrack volume and solo/mute work for blocks without making too much interface confusion. * Sequencer: Faster graphics when moving single seqblock. * Sequencer: Fix update of mouse pointer shape in the seqtrack headers. * Sequencer: Fix setting current seqtrack when clicking on the vertical audio meter. * Sequencer: Numerate seqtrack headers. * Sequencer: Add "Display bars and beats" checkbox to the popup menus. * API: * Rename selectSeqtrack to setCurrSeqtrack. * Add a "for_audiofiles" argument to appendSeqtrack and insertSeqtrack. * New functions: seqtrackForAudiofiles, setSeqtrackName, getSeqtrackName, getAudiofilePostfixes, addAudiofile, moveAbsMousePointer, getDeltaMouseX, getDeltaMouseY, hasDeltaMouse, canMovePointer, getGlobalMousePointerX, getGlobalMousePointerY, getAbsMousePointerX, getAbsMousePointerY, getScreenWidth, getScreenHeight. Changes 5.6.5 -> 5.6.7: * GUI: Prevent crash in some rare situations when displaying an error message from a resize event. (Workaround for QTBUG-64375) * Sequencer: Always change current seqtrack when clicking anywhere inside a seqtrack header. * Sequencer: Automatically set current instrument to the seqtrack instrument when changing current seqtrack. * Sequencer: When moving a seqblock to a new seqtrack, automatically set the new seqtrack as the current seqtrack. * Sequencer: Don't show error message if trying to delete seqtrack and there is only one seqtrack. Instead, just silently ignore the operation. * Sequencer: Optimize when to update graphics. (i.e. faster graphics). * Mouse: Don't repaint editor and sequencer unnecessarily when moving the mouse pointer. * Playlist: Show seqblock time in realtime when a seqblock is moved. This is a fix for a regression introduced maybe a few months ago. * Sequencer: Paint all song tempo automation graphics when zooming in. * Sequencer: Some minor optimization of sequencer automation rendering. * Peak files: Peak files are now 50% smaller and uses 50% less memory in the program. * Mixer strips: Fix graphics update when current instrument is changed. * Sequencer: Various bug fixes and minor improvements. * Sequencer: Draw a green border around current seqtrack, similar to how current instrument is shown in the mixer. * Sequencer: Add "Song tempo automation visible" checkbox to the timeline popup menu, and replace "Hide song tempo automation" with "Song tempo automation visible" in the song tempo automation popup menu. * Sequencer: Display instrument for seqtrack pointed to by mouse at the top in the "New automation" popup menu. * Song: Calculate song length from start to the last automation node, not the last seqblock. This change also fixes a bug where automation nodes could be forced to be placed before a previous node when song length was shortened. * Sequencer: Allow automation nodes to be placed after song length. * Build: Move unpacking of s7.tar.gz from bin/packages/build.sh to Makefile.qt, plus automatically unpack if there is a newer version. * GUI: Wait 5 seconds before trying again if a mouse/resize/paint callback fails. This to avoid debug message bonanza if something goes wrong. * Sequencer: Redo seqtrack header GUIs. Much simpler and faster now. * Sequencer: Don't start/stop playing twice when using scroll wheel to start/stop playing if the mouse cursor is placed in the sequencer timeline. * Editor: Avoid a couple of floating point divide by zero errors when the height of the editor is very small. * Build: Trying to fix find_moc_and_uic_paths.sh for Ubuntu. * Build: Fix VST include path. Steinberg changed the directory structure again. * Build: Upgrade s7 to latest version. * GUI: Faster to delete widgets. * Windows: Don't show error message about unable to find jack process command line arguments (not important for users to know). * Editor: Set the default value of "F" (editor follows play cursor) to false. * GUI: Remove the thin black line that can sometimes be seen between the channels in the vertical audio meters. * GUI: Optimize rendering of audio meters and other widgets that paint all pixels (optimization by not filling the background first). * API: Another fix for memory corruption (and strange scheme error messages) when an exception is thrown in scheme code called from a Qt event. * GUI: Vertical audio meter rendering tweaks. * GUI: Optimize vertical audio meter rendering, especially for widgets containing more than one audio meter. * GUI: Don't paint background color of various widgets unnecessarily (bug fix). May speed up some things notably. * Message window: Make sure error messages are properly shown also if they contain text that could be interpreted as html. * Build: Support gcc 8. * Sequencer: Fix possible sound glitches that could happen when moving seqblocks. * MIDI: Use a lot less CPU when recording. * API: gui_setClipRect, gui_cancelClipRect, gui_addVerticalAudioMeter, gui_removeVerticalAudioMeter, setPaintOpacity, gui_areaNeedsPainting, gui_dontAutofillBackground, gui_removeAllVerticalAudioMeters, removeStatusbarText Changes 5.6.4 -> 5.6.5: * Demo songs: Romance by Nikos Levantis. * Editor: Incrase distance between peaks when displaying waveforms. This both looks better (although arguably) and uses less CPU. * MIDI: Display notes in realtime as they are recorded when recording notes in sequencer mode. * Audio meters: Don't show wrong meter values when audio meters are resized. * GUI: Don't set mininum height of the editor to 400 pixels. * Internal: Fix memory corruptions that could happen if a scheme exception is thrown in code called by a Qt event. * Sequencer: Make it possible to change sequencer height by dragging the area above the seqtrack headers. This one is easier to use than the already existing drag handler. * Reduce time Radium uses to exit. * Editor: Don't re-calculate peak data unnecessarily for looping samples. Fixes stalling when setting block multiplier very low. * Menus: Add "Suggest new feature" to the Help menu. * API: * Fix a couple of bugs in gui_update and gui_getBackgroundColor * Make gui_update take double as arguments instead of ints, and automatically floor down / ceil up values so that the caller doesn't have care about Qt's mix of integers and floats in their widget system. * New functions: gui_getSplitterSizes, gui_setSplitterSizes. Changes 5.6.3 -> 5.6.4: * Sequencer: Avoid silent audio when playing an audio file that has fade-out, but no fade-in or envelope, the second time the audio file is played. * Sequencer: When starting to play audio file, avoid starting to smoothly gliding between the volume it was set to last time the file was played to the volume it is supposed to play. (This smoothing transition only lasts around 1.5ms though) * Instrument list: Fix opening the instrument list window. Changes 5.6.2 -> 5.6.3: * Sequencer: Track headers with name, volume sliders, and mute/solo buttons. * Sequencer: Buttons to add, remove, and append seqtrack. Faster than using the popup menu. * Instruments: Let default instrument colors be more colorful. * Sequencer: Fix various bugs when playing samples. * Sequencer: Avoid assertion hit about not finding sample. * Sequencer: Fix some minor paint bugs. * Sequencer: Improve general rendering performance. * Sequencer: Draw sample waveforms using less points. Looks better and uses less CPU. * Scheduler: Trying to track down rare assertion reports when a VST plugin sends out midi signals. Changes 5.6.1 -> 5.6.2: * Sequencer: Don't create undo when a Seqtrack instrument is automatically created. This operation can't be undone so we previously got an error message when trying to undo. * Sequencer: Don't crash when an audio file is placed after an editor block containing a note continuing to play after the block has ended. * Sequencer: Options to automatically generate new colors for editor block and audio samples. * Mixer: Options to generate new random color for instruments. * Sequencer: Halfly use the seqtrack instrument color as background color in the seqtracks, and make the default sequencer background color a little bit more greenish. * API: generateNewColor Changes 5.6.0 -> 5.6.1: * Sequencer: Fix possible xruns when deleting sequencer block. * Sequencer: Fix peak memory not released when removing audio file. * Sequencer: Fix strange things that could happen if deleting audio file immediately after creating it. * Sequencer: Fix buggy behaviour in peak rendering if loading songs with lots of audio files (several thousands). * Player: Fix changing block tempo multiplier while playing song. * Sampler: Fix peak rendering bug when zooming in a lot. Changes 5.5.9 -> 5.6.0: * Editor: Make it possible to delete last track. * Playlist: Fix various bugs that could happen when pressing the arrow up or arrow down buttons in the bottom of the playlist. * Sequencer: Remove lots of unused/dead/unnecessary code left from recent refactorings. Might speed up some things. * API: Removed the following functions: getSeqblockGfxStartTime, getSeqblockGfxEndTime, positionSeqblock, positionSeqblockGfx, moveSeqblock, moveSeqblockGfx, getSeqblockStretchGfx, getSeqblockInteriorStartGfx, getSeqblockInteriorEndGfx. Changes 5.5.8 -> 5.5.9: * Load: Don't adjust for block length samplerate mismatch twice. This bug caused strange bugs when loading a song saved with a different jack samplerate, and it could be very notable if you didn't run jack with a samplerate of 48000 as the samplerate of the default song would mismatch. Changes 5.5.7 -> 5.5.8: * Sequencer: Add undo when changing interior start or end values. * Sequencer: Fix loading/undoing/redoing an audio file sequencer block which has non-default interior start or end values and no stretch. * Menus: Add "Report bug" entry to the Help menu. * Sequencer: Make sure navigator bar is tall enough to show all information when there are many seqtracks. * Sequencer: Don't show error message when trying to set an interior start value of an audio sample before the start of a song. * Sequencer: Fix various issues when deleting a seqtrack with audio files. * Sequencer: Fix so that it doesn't become impossible to move the right sequencer navigator handle if it had been moved as far left as possible. Before, the only way out of this situations was to zoom out using the mouse wheel. * Peak files: Read peak files in a separate thread. Reading peak files of very long samples can take a little bit of time. This was especially notable when loading song. * Peak files: DO re-generate peak file after failing to read it, and DON'T re-generate peak file after successfully reading it. (Program did the opposite.) * Sequencer: Don't show error message happening when zooming out a lot and trying to move left stretch value before song start. * Sequencer: Show correct number of audio meter channels for the Seqtrack instruments after loading song. * Sequencer: Fix selection rectangle when editor is not visible. * Sequencer: Fix Audio file split using the S key when editor is not visible. * Sample player: Update current directory of browser when an audio file has been drag-dropped. * Editor: Let RIGHT_ALT+U and RIGHT_ALT+D transpose all notes in a chord if the cursor is placed in the note subtrack, not just the first note of the chord. * Editor: Let RIGHT_ALT+LEFT and RIGHT_ALT+RIGHT change velocity of all notes in a chord if the cursor is placed in the note subtrack, not just the first note of the chord. * Editor: Let RIGHT_ALT+U and RIGHT_ALT+D transpose ranged notes if cursor is placed inside a range, similar to RIGHT_ALT+LEFT and RIGHT_ALT+RIGHT for changing velocity. * Editor: When using polyphonic tracks and the cursor is placed in a velocity subtrack (and not in the note subtrack), the function to transpose single notes (RIGHT_ALT+U/D), and the function to change velocity (RIGHT_ALT+LEFT/RIGHT), will operate on the note in the current velocity subtrack and not the note in the first velocity subtrack. * Sequencer: Always hide grid graphics when releasing mouse button. * Sequencer: Remove the text "shape" from the fade shape popup menus. * Mixer: Fix audio meter graphic update. (Some dirty graphics could sometimes be seen in 5.5.6 and 5.5.7.) Changes 5.5.6 -> 5.5.7: * Sequencer: Fix possible strange graphics and crashes when zooming in a lot. * GUI: Fix popup menu style in Windows and macOS. The style changed in 5.5.6. Now it's back to normal. * Audio: Fix rare bugs related to the sequencer that could happen when creating new instruments. * Sequencer: Fix semi-rare crashes and strange behaviors that could happen when moving audio files in some situations. * Internal: Fix some minor thread sanitizer hits. Changes 5.5.4 -> 5.5.6: * GUI: Fix a memory corruption bug in asynchronous popup menus. * Mixer: Don't display "[disabled]" for the "Show GUI" option in the mixer strip popup menu. * Sequencer: Configurable fade in and fade out shapes. Radium offers the same fade shapes as in Ardour: Linear, Constant Power, Symmetric, Slow, and Fast. The implementation is also based on code from Ardour. Manual: http://manual.ardour.org/editing-and-arranging/create-region-fades-and-crossfades/ * Scheduler: Add an assertion to try tracking down a rare assertion hit. * Audio meters: Add option to update audio meter graphics every other frame instead of each frame. This seems to reduce editor stutter on some computers when the CPU is buzy. * Audio meters: Only update dirty graphics. This seems to reduce editor stutter significantly on some computers when the CPU is buzy. * Editor: Support high DPI displays. I.e. all available space is used, not just one quarter of it. Made in cooperation with Jarrad Hope. Tested on Linux (KDE) and macOS (retina display). * Crashreporter/Linux: Inform whether it's the official binary or a custom build. * Sequencer: Don't crash if adding audio file after manually deleting the seqtrack plugin. * Seqtrack plugin: Fix whether it can deleted or not. Previously it could only be deleted when it was not safe to delete it, and vice versa * API: useCPUFriendlyAudiometerUpdates, setUseCPUFriendlyAudiometerUpdates, getFadeShapes, getSeqblockFadeShape, setSeqblockFadeShape, getFadeShapeIconFilename. Changes 5.5.2 -> 5.5.4: * Player: Don't switch current instrument when starting to play from the beginning of a sequencer or range loop * Linux: Include missing libraries used by the Pure Data instrument. Fix for computers missing libfftw, libogg, libvorbis, etc. * Sequencer: Fix sequencer block start value sometimes having negative value when moving more than one sequencer block at the same time * Sequencer: Copy sequencer block when pressing shift and drag mouse. * Sequencer: Let the background color of a sequencer block header be halfly transparent * Sequencer: Maintain logical Z order of sequencer blocks. I.e. the last used sequencer block is displayed at top, and so forth. * Sequencer: Smooth the volume+fade values before applying to audio files. * Sequencer: Avoid the "interior-end value is larger than the default block duration" error sometimes popping up due to floating point rounding errors. * Sequencer: Made audio file background halfly transparent, and paint background halfly in the same color as the audio file. * Sequencer: Auto-fade in/out audio files when overlapping. * Sequencer: Improve sequencer block auto-swap performance. * Sequencer: Don't auto-swap audio files with other sequencer blocks. * Sequencer: Don't show error message after undoing appending track without moving the mouse. * Disk: Make it safer to save files. * Build: Fix finding qt tools when uic-qt5/moc-qt5/qmake-qt5 doesn't exist. * Sequencer: Option to split audiofiles. Press the S key, or use the popup menu. * Sequencer: Remove "technology preview" note/warning when inserting audio files. Hopefully it's stable enough for usage now. * API: getSeqblockResampleRatio, getSeqblockId, getSeqblocknumZOrder, getSeqblockZOrder, setSeqblockZOrder. Changes 5.5.1 -> 5.5.2: * Modulators: Fix assertion window sometimes popping up when loading song when a modulator GUI is open * GUI: Fix rare popup menu bug that could cause wrong entry to be selected, or program to crash. * Sequencer: Configurable interface color. * Sequencer: Configurable audio file background color. * Load: Fix memory leak when loading song. (Fix for known bug introduced in 5.5.1.) * Sequencer: Paint envelope before start and after end with a lower opacity. * Sequencer: Only paint envelope before start and after end if mouse pointer is above it. * Sequencer: Faster to change interior start and end values in audio files. * Sequencer: Cache peak data so we don't have to read peak files from disk as often. * Sequencer: Always try to cache first 2 seconds from the start position of all audio files to lower time starting to play. * API: getAudiofileColor, setAudiofileColor Changes 5.5.0 -> 5.5.1: * Load song: Fix semi-rare crash introduced in 5.5.0. * Editor: Try to track down a rare bug happening when deleting a velocity text entry. * Sequencer: Fix initial envelope duration for audio files. * Sequencer: Fix undo/redo for fade in / fade out. * Mixer: Fix mixer object position in the modular mixer after redoing adding instrument. * Update checker: Fix update checker. Broken since around 4.4.0. * Sequencer: Internal simplification. This also fixes some minor bugs. * Audio: Support drag-and-drop of .mrec files. * Audio: Add option to let main pipe have 8 channels. * Audio: Add 8 channel versions of System Out, System In, Pipe, Jack In, and Jack Out. * Sequencer: Paint all of the sequencer block area affected by the envelope. I.e. from start to end of block, not just below the envelope. * Audio: Fix equalizer blowing up when frequencies are set higher than samplerate/2. Fixes for lowpass, lowshelf, highshelf, and higpass. * API: getAudioInstrumentDescription, internalReplaceMainPipe, undoSeqblockFades Changes 5.4.9 -> 5.5.0: * Editor: Fix crash when pasting track or block from an old song into a new song. * Load: Show warning if loading song saved with a different jack samplerate since they can sound slightly different. * Sequencer: Fix automation when loading song saved with a different jack sample rate. * Sequencer: Fix volume envelope when loading song saved with a different jack sample rate. * Sequencer: Fix song tempo automation when loading song saved with a different jack sample rate. * Sequencer: Fix undo/redo for enable/disable envelope. * Sequencer: Fix failure to load some recent songs saved with a different jack samplerate. * Sequencer: Fix positions of subsequent blocks when changing stretch of a block with a custom tempo multiplier value. * Editor: Also mute FX automation when track is muted. And in addition, add option to not mute FX automation when track is muted to keep compatibility with older songs. * Load: Fix mixer comment on/off status. Changes 5.4.8 -> 5.4.9: * Audio: Fix possible audio glitch that could happen when stopping to play in a song that has many MIDI instruments. * Sequencer: Fix some envelope interface issues when a previous block in the same sequencer track had tempo multiplier not set to 1.0. * Mouse: Fix pointer flickering in the sequencer when hovering over envelope or automation. * Load: Don't crash if creating a new audio instrument after loading a song that was saved before audio was supported. * Load: Only show one warning window about different way to calculate ritardando/accelerando in new songs. * Mixer strips: Show instrument name in tool tip if instrument name was too long to fit. * VST/AU: Remember GUI positions separately for each parent window. * Mixer: Add "Show GUI" checkbox to the popup menu in the modular mixer. * Mixer: Change "Show GUI" entry in the popup menu into a checkbox. * VST: Fix some minor issues when closing GUI. * Windows: Remove the "Always on top" option for plugins since it made no sense to disable it on that platform. * VST: Bind native GUI to the window it was opened from. On Windows, this means that the GUI will be put in front of the window you would expect it to be put in front of, and not a random window, which was the case in 5.4.8. * Windows: Fix opening VST GUI in the modular mixer. Changes 5.4.7 -> 5.4.8: * GUI: Don't start new windows in "Window Stays On Top" mode since these windows will cover VST GUIs. Also remove the Qt::Tool flag on Windows since it's not needed on that platform to make windows stay on top of the main window. * Windows: Partly fix always-on-top VST GUIs. They will stay on top of the main window and the last opened currently visible window, but not on top of other windows. * Audio: Try to prevent and track down a bug reported by the crash reporter. * VST: Minor fix for keyboard grabbing in the GUI. * VST: Fix opening VST GUIs in the middle of the screen. * Sequencer: Fix bug that caused timing weirdness when changing number of lines in a block. * Sequencer: Fix bug sometimes causing program to freeze when showing bars in the timeline. * Sequencer: Improve timeline rendering a little bit when showing bars. Changes 5.4.6 -> 5.4.7: * Mouse handling: Fix various minor issues. * Sequencer: Reset envelope node values to 0.0 dB, not 1.0 dB. * GUI: Enable same keybindings to navigate popup menus as in the main menu. * GUI: Fix menu highlighting when mouse hovers over a checkable entry. * Sequencer: Start playing from mouse position when clicking in the timeline. * Sequencer: Various improvements to the audio file support. * Mixer strips: Add a space before "dB". * Mixer strips: Don't scale down font size when it doesn't fit. (Make text easier to read) * Mixer strips: Minor tweaks. * GUI: Improve message window performance * Sequencer: Keep envelope and fades when pasting blocks. * Sequencer: Keep envelope and fades when moving blocks between tracks. * Sequencer: Keep envelope and fades when moving more than one seqblock. * Sequencer: Keep envelope and fades when swapping blocks. * Upgrade s7. * API: createSeqblockFromState, getSeqblockState, gui_appendValue, setSongPos, playSongFromPos Changes 5.4.4 -> 5.4.6: * Windows: The included Jack (and qjackctl) now supports ASIO. * Windows: Include missing liblzma-5.dll file in 32 bit builds. * Sequencer: Automatically adjust envelope duration when changing length of block or audio file. * Sequencer: Fix "[disabled]" being printed in the popup menu. * Instrument GUI: Fix setting chance. * Disk: Fix loading song having a name (block/instrument/etc.) that only contains spaces. * Linux: Show stronger warning about the Nouveau driver. * Sequencer: Enable HD play back of audio files in the sequencer. Technology preview only. Should not be used in production. * Sequencer: Fix bug when closing the "Enable/disable editor tracks" window directly instead of pressing "Close". * Sequencer: Rename popup menu entry "Enable/disable tracks" to "Enable/disable editor tracks". * API: * Deleted: setSeqblockInteriorStart, setSeqblockInteriorStartGfx, setSeqblockInteriorEnd, setSeqblockInteriorEndGfx. * New: cancelGfxSeqblocks Changes 5.4.2 -> 5.4.4: * Editor: Fix memory corruption if giving space as note name when adding note. * Editor: Fix chancetext with value 0. * Instruments: Fix chance being set to 256 when changing a/b. * Menus: Make "Open plugin manager window" create instrument. * Keyboard configuration: Fix code inside asterisks. * Keyboard configuration: Don't run generated python code from last session during startup. * Edit: Add "Randomly delete notes" function to the Randomize / Skew / Shuffle tab. * Sequencer: Just show one simultaneous enable/disable editor tracks window, and update content automatically when mouse hovers over a sequencer block. * Mixer: Include mixer strips configuration into a/b. * Mixer strips: Reduce time changing mixer strips configuration. * System: Suppress Mesa startup warning for amdgpu driver during startup. (Teteros) * Sequencer: Sequencer block fade in/out. * Sequencer: Sequencer block volume envelope. * Sequencer: Various seqblock mouse/gfx improvements. * Sequencer: Fix selecting correct current automation line below mouse pointer in the sequencer when a line is non-gliding. * Edit: Fix modulo skew range down. * Audio: Don't pause player when undoing effect automation. * Sequencer: Show thicker linkes for the current automation and scale automation lines based on system font height. * API: * Renamed undoSequencerAutomation to undoSequencerAutomations. * New functions: setSeqblockSelectedBox, getSeqblockLeftFadeX1, getSeqblockLeftFadeY1, getSeqblockLeftFadeX2, getSeqblockLeftFadeY2, getSeqblockRightFadeX1, getSeqblockRightFadeY1, getSeqblockRightFadeX2, getSeqblockRightFadeY2, getSeqblockFadeIn, getSeqblockFadeOut, setSeqblockFadeIn, setSeqblockFadeOut, undoSequencerEnvelopes, getSeqblockEnvelopeValue, getSeqblockEnvelopeTime, getSeqblockEnvelopeLogtype, getNumSeqblockEnvelopeNodes, addSeqblockEnvelopeNode, deleteSeqblockEnvelopeNode, setCurrSeqblockEnvelopeNode, cancelCurrSeqblockEnvelopeNode, setCurrSeqblockEnvelope, cancelCurrSeqblockEnvelope, setSeqblockEnvelopeNode, getSeqblockEnvelopeNodeX, getSeqblockEnvelopeNodeY, getSeqblocksState, createGfxSeqblocksFromState, applyGfxSeqblocks, getSeqblockEnvelopeMaxDb. Changes 5.4.1 -> 5.4.2: * Modulators: Added Random type. * Editor: Fixes window see-through problem on OSX. Changes 5.4.0 -> 5.4.1: * OSX: Fix various crashes, especially notable in 10.13 but also sometimes in 10.12. It was caused by setting the Qt::WA_MacAlwaysShowToolWindow flag on a window. * Block list: Fix changing block name. * Instrument widget: Display the preset menu async. Might fix reported difficulties on OSX. Changes 5.3.3 -> 5.4.0: * Compile Linux and Windows binaries with GCC 7.20 (upgraded from 5.40). * Compile macOS binaries with Clang 5.0 (upgraded from Clang 3.6 or thereabout). * Upgrade Qt to 5.10 for all three platforms. * Editor: Don't crash when pasting a track containing a deleted instrument. * Linux: Fix keyboard release detection. Proper release detection is needed when playing sounds with the computer keyboard, but it hasn't been possible before since Qt5 didn't support it before Qt 5.10. * audio/Modulators: Prevent a crash when assigning modulator to a plugin parameter. * OSX/crashreporter: Try to increase the chance of including the system diagnostics log in the crash report. * Check for updates: Use https and not http when requesting latest version. OSX complained about this, and the update checker might not have worked before on OSX. * Audio: Fix memory corruption when playing note on MIDI channel 8 or above. (This change may have fixed a lot of strange behaviors.) * Audio: Fix running out of memory (and sometimes crash) when there's more than a few click instruments. * Audio: Fix crash when there's more than 16 click instruments. * Error message: Fix assertion reporter popping up when when reporting an error from a different thread than the main thread. * Audio: Started work implementing recording and playback of audio files to and from disk in the sequencer. * Upgraded S7 scheme. * API: setSeqblockInteriorStart, setSeqblockInteriorEnd, getSeqblockInteriorStart, getSeqblockInteriorEnd, createSampleSeqblock, getSeqblockSample, getSampleLength, seqblockHoldsBlock, seqblockHoldsSample, getSeqblockLeftInteriorX1, getSeqblockLeftInteriorY1, getSeqblockLeftInteriorX2, getSeqblockLeftInteriorY2, getSeqblockRightInteriorX1, getSeqblockRightInteriorY1, getSeqblockRightInteriorX2, getSeqblockRightInteriorY2, setSeqblockInteriorStartGfx, setSeqblockInteriorEndGfx, getSeqblockInteriorStartGfx, getSeqblockInteriorEndGfx Changes 5.3.2 -> 5.3.3: * Audio: Don't show assertion reporter when clicking "R" in the sample browser in the fluidsynth instrument. * Demos: Added "Dance of Hypocrisy" by Nikos Levantis. * Editor/Player: Make sure displaying the track on/off status are always updated when playing song. * Demos: Added "The Elf" by Nikos Levantis. * Editor/Mouse: Don't display error message when trying to create a velocity at the same position as another velocity. * Editor: Optimize displaying waveforms. * Editor: Fix current line being changed too much upwards when changing LZ value. * Editor: Remove flickering that sometimes happened when changing LZ value. * Editor: Don't leave one or two empty pixels at the end of waveforms. * Editor: Clean up and optimize waveform rendering. * Editor: Fix updating waveforms immediately when the value of position/attack/finetune/etc./etc. are changed. * Sample requester: Some work to prevent and track down a rare crash. * API: addVelocityDontDisplayErrors Changes 5.3.1 -> 5.3.2: * Disk: Show the "Error. Unable to save file ..." error message in the message log window instead of a message window. * MIDI: Don't show assertion reporter when receiving MIDI in some situations right after starting to play. * Crashreporter: Include time since last received MIDI message. Changes 5.3.0 -> 5.3.1: * Editor: Fix moving the cursor to the right when it's positioned at the rightmost legal LPB subtrack. * Edit: Fix too many undos being created in the operations in the "randomize/shuffle" tab for notes with pitch changes or velocities. * Blocklist GUI: Don't play block when clicking if playing song * Blocklist GUI: Fix memory corruption when setting name of block. Changes 5.2.9 -> 5.3.0: * Editor GFX: Show all of the orange horizontal+vertical node indicator lines (when moving something). Don't hide everything to the left of the first normal track. * Swing: Fix assertion (and sometimes crash) if adding signature change to a block with swing. * Editor: Some fixes when navigating the cursor in the tempo/timing tracks and not all of them are visible. (Crash/assertion fix.) Changes 5.2.7 -> 5.2.9: * Song properties: Add option to enable/disable embedding audio files in the song properties window. * Menus: Add "Save As, with embedded audio files" to the file menu. * Change "Save As" to keep the same embedding audio files status, not to save without embedded audio files. * GUI: Let the song properties window and the song comment window have normal check boxes. * Pluginmanager: Clear search string after finished rescanning all plugins. * Gui: Fix possible freeze when showing message window while a modal widget is open. * Demo songs: Added "Concrete Vox" by Nikos Levantis. * Load song: Fix loading of plugins that uses more than 3 seconds to initialize. Reaktor is one such plugin. * Blocklist GUI: A table to show and edit things in all blocks. * Instrumentlist GUI: A GUI similar to the blocklist GUI, but for instruments. * Mixer strips: Display dB value in status bar when changing volume of non-wide strips. * Block properties: Create undo entry when changing the name of a block. * Mixer strips: Fix showing the mixer strip of an instrument after undoing deletion or redoing creation. * Modulator GUI: Don't display strange content if changing anything while sorting is enabled. * Modulator GUI: Fix sorting the "Enabled" column. * MIDI: Fix crash that could happen if receiving external MIDI while loading song * Modulator: Add "LFO" to the LFO modulator names. * API: setBlockName, showBlocklistGui, getBlockUsageInSequencer, showInstrumentListGui, gui_addFocusInCallback, saveWithoutEmbeddedSamples Changes 5.2.5 -> 5.2.7: * Audio: Don't show an error message when undoing the deletion of an instrument that was soloing. * Demo: Added "The tree of bugs" song by Nikos Levantis. * GUI: Minor fix to the compressor GUI. * Audio: Fix making audio connection to an instrument with only one input from an instrument with more than one output. Bug created summer 2017. * Colors: Change the default automation color 7 from an almost invisible blue-like color to a more visible red-like color. * Mixer strips: Fix showing strips for instruments not having audio inputs or outputs. * Audio: Minor fix to the timing values sent to VST/AU/Jack/etc. * Audio: Modulator instrument. Right-click a slider or checkbox and select "Assign modulator". Currently it can generate Sine LFO, Triangle LFO, Square LFO, Saw LFO, Inverted Saw LFO, manual input (which can be MIDI-learned on), unmodified audio input, and the output of running an envelope-follower on the audio input. Parameters for both audio and MIDI instruments can be modulated. Currently it only follows global tempo. Triggering from note input has not been implemented yet. * Build: Update QScintilla from 2.9.2 to 2.10.1. (The text editor used in the Faust instrument.) * API: New functions: gui_removeParent, hasModulator, addModulator, replaceModulator, removeModulator, getModulatorDescription, getModulatorDescription2, getModulatorInstruments, getModulatorTargets, setModulatorEnabled, getModulatorEnabled Changes 5.2.4 -> 5.2.5: * Help: Minor fixes to mixer documentation. * Audio: Possibly optimize conversion between db and gain on OSX and Windows. * Import mod: Don't show swing track, and hide bus and click mixer strips * Disk: Save show/hide global swing track status to disk. * Import mod: Fix import mod (broken a couple of releases ago). Changes 5.2.3 -> 5.2.4: * Disk: Use full path when saving embedded sample. * Disk: Show error message when unable to embed audio file. * Menus: Add "Show program log" option to Help. * Demo songs: Un-embed the samples of "Care" to avoid error messages when radium is placed in a read-only directory. * Disk: Don't un-embed samples when selecting "Save" (autobackups does not embed samples though). * Disk: Fix embedding samples for fluidsynth. * Disk: Don't delete content of embedded audio files folder when loading song, unless necessary. * Disk: Improve text in message boxes used to find paths for missing audio files. * Mixer strips: Fix error message popping up after loading some songs when pressing "M". * Scheme: Update s7 to latest version. Changes 5.2.1 -> 5.2.3: * MIDI: Add "Delete all unused MIDI instruments" option to the MIDI menu. * Sequencer: Don't enable the "Replace with existing block", "Replace with new block", and "Clone block(s)" options when no block is selected * Preferences: Update information text for the "Protect against high CPU usage" option. * Demo songs: Add "Care" by Nikos Levantis. * Mixer: Fix error message sometimes popping up when loading a song if there are MIDI instruments in the current song. * Windows/Linux: Build with "-fomit-frame-pointer" instead of "-fno-omit-frame-pointer". This could make the program notably faster in some situations. OSX is still compiled with "-fno-omit-frame-pointer" since bactrace didn't work without it. * Demo songs: Add "Change The World" by Nikos Levantis. * Load: Put embedded samples into a newly created directory placed where the song file is. * Sequencer: Show sequencer block start position in the status bar when mouse pointer is above a sequencer block. * Menus: Change "Make Block fit in window" to "Make current Block fit in window" * Sequencer: Stretch sequencer block. * Mouse: Only call get-seqblock-info once. (small optimization) * GUI: Set window title for various windows. * Crashreporter: Include last s7 error message and file/line. * Message window: Fix memory leak. Old message window was not deleted when reopening. * API: * New functions: getSeqblockGfxStartTime, getSeqblockGfxEndTime, getSeqblockLeftStretchBox, getSeqblockRightStretchBox, positionSeqblock, positionSeqblockGfx, getSeqblockStretch, getSeqblockStretchGfx, setCurrSeqblock, cancelCurrSeqblock, gui_setWindowTitle. * Renamed: addBlockToSeqtrack to createSeqblock and addGfxGfxBlockToSeqtrack to createGfxGfxSeqblock. * Fix crash that could happen if handleError() was called during a call to a Python API function. Changes 5.1.9 -> 5.2.1: * Windows: Not necessary anymore to install jack to run Radium. Radium now includes an embedded version of Jack which is used if Jack is not installed globally. * Mixer: Fix the "W" button. Broken in 5.1.8. * Current mixer strip: Don't show error message when changing width. * Playlist: Don't show "Pause player" message briefly when changing block or playlist position. * Editor: Popup menu to switch between showing line numbers and bars/beats. * Edit: Add "Randomize note positions and durations" functions to the Randomize/Skew/Shuffle tab. * Editor: Replace "Help Swing text" with "Swing Help" in the popup menus * Sequencer: Option to disable/enable individual editor tracks in sequencer blocks. * API: gui_popup Changes 5.1.8 -> 5.1.9: * Editor: Fix crash when adding note in some situations. Changes 5.1.6 -> 5.1.8: * Editor: Also show the track number in status bar when moving cursor to a swing text sub track. * Swing: Fix wrong timing values for gliding swing. * Editor: Add option to show swing help to the popup menu in the global swing track. * Crashreporter: Include Qt version in the report. * Editor: Use the tempo of the current track tempo when rendering the vertical tempo indicator lane (the area to the right of the line slider). Before this release Radium only displayed global tempo in the tempo indicator lane. * Editor: Add undo when overwriting a swing value. * Load: Fix bug that very often caused program to crash when loading a song with swing. * Preferences: Add interface to set maximum elements in a popup menu. * More bugs found by the autotester fixed. * Playlist/Sequencer: Fix crash when doing "delete block" -> "undo" -> "redo" for a block in the playlist * Menus: Add "Show message window" option to the help menu. Changes 5.1.5 -> 5.1.6: * Menus: add "Show undo history" option under Help -> Program debugging * Lots of bugs fixed. The bugs are found by running an autotester script. * Audio: Fix the crossfade value in the sampler instrument when automating reverse or pingpong. * Menus: Some minor fixes to the keybindings. * Audio: Fix undo handling when parameters are changed in the native gui of a plugin. * Plugin manager: Don't display an error message when finished scanning remaining plugins. Changes 5.1.4 -> 5.1.5: * Audio: Fix adding undo entries when parameters are changed in the native GUI of a plugin. Sometimes a lot more than 1 undo entry was added per second. (This functionality is still not working perfectly though.) * OSX: Workaround for a bug in a 3rd party library that caused lots of undo entries to be made when when creating and deleting AU plugins in certain situations. * OSX: Fix a bug the in keyboard handler that sometimes made Radium crash. Seems to be related to using non-latin keyboard. (More info: https://tinyurl.com/ydaz9os9) * Audio: Ask "Are you sure?" when trying to load a Moody Sampler 5.0 VST plugin instance. This plugin crashes when it is deleted. * Audio: Don't crash some VST plugins when undoing a deletion. * Editor: Make the horizontal track slider more conventional. * Build: Include initial LLVM 5.0.0 support from Faust2 (Teteros) * API: * New functions: getTrackSliderScrollerX1, getTrackSliderScrollerY1, getTrackSliderScrollerX2, getTrackSliderScrollerY2, setTrackSliderIsMoving, getTrackSliderPos, setTrackSliderPos. * Renamed setScrollbarIsMoving to setEditorScrollbarIsMoving. Changes 5.1.3 -> 5.1.4: * Edit: Fix operations on track when cursor is placed to the left of the first track. * Edit: Fix Modulo skew block. * Windows: Fix Radium not always starting. * Editor: Fix pianoroll eraser. It was broken in 5.1.3. * Editor: Fix mouse scroll wheel up/down wrongfully using the qualifier keys that was used when pressing a normal key last time. * Menus: Show keybindings again. (They disappeared in 5.1.3.) * Editor: Don't show MIDI channel name in track header if the track is assigned to a MIDI instrument. (MIDI channel is set in the instrument widget for those instruments). * Editor: Don't enable the popup menu option to change MIDI channel for tracks assigned to MIDI instruments. * Editor: Shorter status bar text when moving cursor. * Editor: Show buttons when selecting midi channel for track instead of showing a text requester. * Doc: Fix first sentence of swing help text. * API: Functions to read binary from file: openFileForBinaryReading, readLe32FromFile, readLeU32FromFile, readBe32FromFile, readBeU32FromFile, readLe16FromFile, readLeU16FromFile, readBe16FromFile, readBeU16FromFile, read8FromFile, readU8FromFile Changes 5.0.11 -> 5.1.3: * Windows32: Remove some console printing that could have caused importing xm modules to fail. * Build: Delete the radium_plugin_scanner binaries when executing "make clean" * Current mixer strip: Make the "Hide mixer strip" popup menu option work. * Keyboard: Fix bug causing Right Ctrl to always be registered as Left Ctrl. (Not discovered until now since almost all default keybindings bound to Left Ctrl are also bound to Right Ctrl.) * Ctrl + J: Fix ",x", where "x" is track number. Earlier the cursor also jumped to line 0. When there is nothing before the comma, Ctrl + J is only supposed to move the cursor horizontally. * Edit: Tell the player to reload notes after changing them. No need to restart player or wait until it starts from the beginning of a block or range before hearing the difference. * Instrument widget: Fix "Add automation to current editor track" and "Add automation to current sequencer track". * GUI: Ensure that we have keyboard focus when closing a window. Fixes so that you don't have to click inside the editor to get focus back. This problem was especially notable on Windows. * Edit: Functions to shuffle pitch values. * Settings: Take backup of old file before overwriting configuration file. * Linux: Fix for rare crash related to mouse movement. * Keyboard (linux/osx): Fix keyboard handler not immediately registering when mouse moved to a different area. * GUI: Add "Set/Change/Remove keybinding" options to the popup menu for all buttons in the Edit tab. * Menus: Add "Reload keyboard configuration" to the help menu. * Edit: Functions to modulo-move notes up or down. * Editor: Don't show assertion reporter if undoing after increasing number of lines when a track has swing. * Html viewer: Let Ctrl + +/- zoom out/in. * API: * Make gui_setText also work on Text classes * New functions: getNoteId, reloadKeybindings, setKeybinding, getKeybindingsFromCommands, getKeybindingFromCommand, getKeybindingsFromKeys, getKeybindingFromKeys, setKeybinding, grabKeybinding, removeKeybinding, getPath, getHomePath, getProgramPath, getPathString, appendFilePaths, openFileForReading, openFileForWriting, closeFile, writeToFile, fileAtEnd, readLineFromFile, fileExists Changes 5.0.10 -> 5.0.11: * Gui: Fix a crash that could happen when toggling full screen (F11) for the mixer window. Changes 4.9.19 -> 5.0.10: * Mixer strips windows: Don't obtain keyboard focus. * Doc: Remove "Save URL" and "Save link" from the popup menu when clicking a link. * Doc: Fix "Open in new window" when right clicking a link. * Editor: Show track info in the status bar when moving cursor left or right. * Audio: If a plugin has more outputs than inputs, silence those extra outputs when plugin is bypassed. * Instrument widget: Move the "Solo" button next to the "Mute" and "Bypass" buttons. * Instrument widget: Replace the "Effect on/off" button with a "Bypass" button. * Instrument widget: Replace the "Volume on/off" button with a "Mute" button. * Audio: Only apply "Volume" if effect is NOT bypassed, and apply volume BEFORE applying dry/wet, not after. Radium will also show a warning when loading song created with an older version of Radium since it could sound different now if using bypass or dry/wet. * Editor: Fix moving cursor to the note text when swing text is visible and cursor is positioned to the right of the note text. * Editor: Also show the effect name in the status bar when mouse is above an fx text sub track. * API: getFxtextEffectNumFromX, gui_setTakeKeyboardFocus, gui_takesKeyboardFocus, gui_setUrl. Changes 4.9.17 -> 4.9.19: * Mixer strips: Don't show an error message when inserting plugin. (An unnecessary error message was shown in some situations.) * Audio: Fix sample seek when block tempo is not 1.0. * GUI: Various tool tips improvements. * Editor: Eraser for the pianoroll. Press right mouse button to erase notes. * Editor: Some tweaks when drawing track headers. * Editor: Don't show the swingtype column (i.e. where "d" or "m" is written) unless it's used. * Doc: some updates to home.html * GUI: Update tooltips for the mixer widget header. * Editor: Show info about the current sub track when the mouse pointer is above a subtrack. (E.g make it quicker to find out whether a subtrack is the chance track, or the swing track.) * Editor: Add "Hide/Show swing" to the track popup menu * Editor: Add "Help swing" to the the track popup menu. * Editor: Move the swing sub tracks to the left of the piano roll. * API: * Replace use of "int notenum" with "dyn_t note", where "note" can be either "int notenum" or "const char *note_id" * New functions: getCenttextX1/etc, getChancetextX1/etc, getSwingtextX1/etc, getVelocitytextX1/etc, getFxtextX1/etc, unselectAllNotes, noteIsSelected, selectNote, unselectNote, getSelectedNotes, showPianorollEraser, hidePianorollEraser. Changes 4.9.16 -> 4.9.17: * Playlist: Add "Hide" option to the popup menu. * Player: Fix changing cursor position while playing. E.g when pressing page up/down * GUI: Fix keyboard focus for the tracker module file requester. * GUI: Let all windows obtain keyboard focus by default when selected. * GUI: Tweak automatic adjustment of the height of the instrument widget. * GUI: Fonts are immediately changed in the font requesters. * GUI: Update all, or almost all, fonts when changing system font. * API: * New functions: setEditorFont, setSystemFont, getEditorFont, getSystemFont, gui_fontRequester Changes 4.9.14 -> 4.9.16: * Swing: Fix swing area being skewed to the start of a block when the first defined swing value is placed in the second bar or later. * Swing: Fix crash if trying to edit block swing (not track swing). Bug introduced in 4.9.6 * Mouse: Fix creating new automation in the editor when the leftmost visible track is not the first track. * Mixer strips: Add options to "Add automation to current editor track" and "Add automation to current sequencer track" for sliders that can be automated. * GUI: Fix graphics not being quite updated right after opening a requester, etc. (Very rare problem) * Internal: don't update audio meter data after gui has closed. * Internal: Never release patch structs, just clean content. Might fix very rare crashes. (I got one though.) * Mixer strips: Allow strips without sends to be smaller than strips with sends * Mixer strips; Allow strips without plugins to be smaller than strips with plugins. * Mixer strips: Don't make undo before a slider is actually moved. * Mixer strips: Show plugin/send values in the status bar. * Keyboard: Fix keyboard release handling. It was broken in 4.9.14. * Mixer strips: Show automation values. Shown the same way as in the instrument widget. * Instrument widget: Make sure on/off elements (such as highshelf on/off, pan on/off, solo on/off, etc.) are updated immediately when automated. * Mixer strips: Make sure on/off elements (such as pan on/off, solo on/off, and so forth) are updated immediately when automated. * Automation: Internal optimization. * Automation: Fixes assertion window sometimes popping up unnecessarily when starting to play. (Related to automation) * Mixer strips: Add tool tips to the name label of non-wide strips. This makes it easier to read the names (because they are vertical). * Import mod: Fix importing modules that has a "C" command (volume) set higher than 0x40. This fixes import of the module "Massaker" by Esau. * Mixer strips: Option to widen and unwiden all strips. * Editor: Menu option to make all blocks fit in window, not just the current block. * Mixer strips: Remake mixer strips after changing system font to adjust geometries. * Mixer strips: Make it possible to hide comments at the bottom of the strips. Also make it hidden by default. Can be enabled again in the song preferences. * Mixer strips: Allow shorter mixer strips (3-4 rows should fit in a 1900x1800 screen, even when the sequencer is visible). * Editor: No need to pause playing when adding glissando. * Import mod: Ask "are you sure?" if current song has unsaved changes. * API: * New functions: setMixerStripCommentsVisible, mixerStripCommentsVisible, getStoredInstrumentEffect, getInstrumentEffectColor, addAutomationToCurrentEditorTrack, addAutomationToCurrentSequencer. * Make addEffectMonitor monitor automation values in addition to user-setted values. Changes 4.9.12 -> 4.9.14: * Import MOD: Fix attack and release values for the instruments. Bug introduced in 4.9.9. * Fix program freeze on OSX when scanning plugins and a realtime message pops up. * Windows: Make sure splash window is on top when starting up. * Preferences: Changed "rescan directories for potential plugins" to "Look through directories for potential plugins". * Keybindings: * F5: show/hide editor * F6: show/hide playlist/blocklist * F7: show/hide mixer * F8: show/hide sequencer * F9: show/hide instrument * F10: show/hide edit * Mixer: Update instrument GUI when turning on/off bypass. Fixes instrument gui sometimes being grayed out even after bypass was turned off. * Keybindings: Make python code inside asterisks work when not having write access to the binary directory, plus fixed other related issues. * Keybindings: Fix overriding keybindings. It was a little bit buggy. * Audio: Fix plugin scanner when home area path or plugin filename path has non-ascii characters * GUI: Various work to make message windows functional when a modal window is open. * GUI: Fix various crashes when a parent window is deleted. * Scheme: Upgrade s7 interpreter. * Help: Set font to "arial, sans-serif". Looks better on OSX than the default web fonts. * Help: Make Ctrl + scroll wheel zoom in/out and Shift + scroll wheel scroll left/right. * Build: Remove a couple of non-existant dependencies from the makefile. * Editor: Fix message about "Track #x not existing" when doing mouse operations. * Mixer strips: Fix mixer strips configuration window sometimes showing up on top of the wrong window. * Mixer strips: Adjust minimum width of mixer strip. * Mixer: Make a/b include connection gains and connection on/off. * Build: gcc4 compilation fixes * Mixer strips: Buttons to enable/disable plugins and sends. * Add support for LLVM 4.0.1 in faust2. From https://github.com/grame-cncm/faust/commit/63d1d8f06f3c6ae22674f4dc8b16a64232432779 (Teteros) * Event scheduler: Fix code doing undefined behavior. * Audio: Improve solo situation a little bit (it's not perfect yet). Now it also solos input-connected and output-connected instruments within a non-branching graph. TODO: Turn on/off connections appropriately when solo-ing. * Scheme: Eval code from s7webserver in the global environment * Editor: Immediately gray/ungray the editor when it gets/loses keyboard focus * Web: Make Ctrl+F search and F3 repeat search. * GUI: Make F11 work on all windows. * Editor: Show open/closed hand mouse pointer types when moving the scroll bars. * GUI: General fix for the mouse cursor sometimes being stuck in the wrong shape. * Mixer strips: Some gfx tweaks. * Made it possible to configure the border color around current instrument in the modular mixer and the mixer strips. * GUI: Fixed rare crash in the requester. * Scheme: Run code received by the s7webserver through the "FROM-C-catch-all-errors-and-display-backtrace-automatically" function. Necessary to avoid crash if s7 runs in a custom exec and we hit an exception. * Mixer strips: Add undo when renaming instrument. * Mixer strips: Reorganize popup menu a little bit * Mixer strips: Add "Set as current instrument" and "Help" options. * Mixer strips: Removed a superfluous "info" option (there were two of them). * Mixer strips: Paint a green border around the current plugin/send instead of paint everything with a bluish transparent color. * Mixer: Disable replace/copy/cut/delete/save options in the popup menu for permanent instruments since we aren't allowed to do these operations on permanent instruments anyway. * Mixer strips: Paint sink sends as a send, and not a plugin. I.e. show the arrow on the left side. * Mixer strips: When deleting a sink send (for instance a send to "System out"), only delete the connection, not the instrument itself. * Mixer strips: Always show "Main pipe" in the bus area. * Edit: Show message about missing range when trying to transpose range without a range. * Fonts: Update main window lower tab size after changing system font. * Plugins: Add VST3 and AU plugins to favourites. * GUI: Reset mouse pointer type when it is moved to a different widget. Fixes open hand mouse pointer stuck over the Edit tab and other situations. * API: * Add optional "default_value" argument to the requester functions and added some code to prevent someone from closing a requester while it's being used (which causes crash). * New functions: isDoingRequest, gui_getEditorGui, getAudioConnectionEnabled, setAudioConnectionEnabled, undoAudioConnectionEnabled, gui_getParentGui, gui_drawEllipse, gui_filledEllipse, openExternalWebBrowser, gui_activate Changes 4.9.10 -> 4.9.12: * Documenation: Move things from the help menu into the documentation portal. * Gui: More work to improve issues related to window hierarchy. * Windows32: Fix instrument name displayed as "(null)" in the progress window during loading. Lots of related bugs fixed as well that could have caused bugs on all platforms. * GUI: Fix the "hide" button not always working in the message log window when running a modal dialog. * GUI: Fix a possible crash when parent of message gui is closed. * Audio: Scan plugin in separate process. A buggy plugin won't crash radium anymore when scanning a buggy plugin (at least not normally). * Plugin Manager: Fix bug that made scanning not always work quite correctly plus that it caused a "Gui #xxx closed and can not be used" error message. * Editor: Fix the "invert pitch" function. * Html viewer: Let Alt+left open previous page, Alt+right open next page, F5 reload, and Ctrl+R reload * Documentation: Created a "help portal" with some inital content. * Documentation: Updated keybindings.help. * Edit: Add keybinding tool tips to the quantization buttons (range/track/block). * Edit: Show message about missing range when trying to run a function that operate on ranges. * Keybindings: Use Right Shift instead of Left Shift to transpose note one octave up or down. * Keybindings: Use the 7 key to expand range and block. * Edit: Removed "Under construction" and the "More" tab from the main window tabs. Although it's still under construction, it doesn"t look so frail anymore. * Edit: Add new functions to randomize pitches and velocities. * Edit: Add buttons for expand/shrink pitch, expand/shrink lines, invert pitch intervals, reverse notes, glissando, and creating polyphonic track. * Edit: Brushed up the "Transpose" tab (GUI tweaks + write keybindings on the buttons). * API/GUI: Let WebView get keyboard focus. * API/GUI: Let standalone windows get keyboard focus when opened. * Editor: Fix crash/freeze when using the glissando function on microtonal notes. * Player: Don't schedule notes that have negative pitch values. (Negative pitch values can happen when using the note duplicator.) * Render: Don't crash if trying to render a note value outside legal range. * Fix error messages not showing when keybinding or menu configuration files couldn't be parsed.. * Fix error messages not showing when import XM failed, import MOD failed, and when import MIDI file failed. * Preferences: Made the play cursor type options clearer. * Jack Transport: Fix starting to play from a new position. Earlier the program started to play at the current position instead since we didn't wait for Jack to finish moving the cursor. * Audio: Make sure last value in a sequencer automation is sent out. This bug was especially notable if the second-last node was non-gliding. * Audio: Send correct init-song effect values when a node is non-glide. * Audio: Send correct automation values when starting to play in the middle of a song. I.e. the effect values that the instruments would have had if starting to play from the beginning. * API/setPitch: Dont allow higher pitch values than 127. * API: gui_setToolTip, getKeyboardBindings, getKeyboardBinding, getQualifierName. Changes 4.9.9 -> 4.9.10: * Mixer: Update volume slider in modular mixer when volume was changed via MIDI learn. * Mixer: Fix error message showing up when using an instrument without inputs or outputs. * Audio: Add undo when editing plugin from a native GUI. Changes 4.9.8 -> 4.9.9: * Gui: Fix strange behaviors caused by keyboard events not used by Radium being sent back to Qt. * Audio: Fix the XI instrument loader, which could have failed now and then, depending on the mood of the C compiler. This might, or might not, have been a problem in some past releases. In technical fairness, it should have failed in 50% of the releases, but I can't recollect that it has ever happened. It fails in gcc 7 though. * Audio: When playing a song from the beginning, all effects in all audio instrument are reset to the state it had before new values were set by automation. (MIDI instruments have always done this. I've forgotten to implement it for audio instruments, until now.) * GUI: Stop drawing the automation values in the sliders when setting a new value manualy. This way we always know the current value of an effect by looking at the slider: If the automation value is painted, the automation value is the current value, and if not, the slider value is the current value. * Editor: Tweak bottom bar and reltempo positions. * Build: Compile with "-no-strict-aliasing" since there is lots of code that I think could break without it. * Audio: Fix bug that caused values set by automation to be saved to disk. * Audio: Always set correct volume when enabling any of the following effects: Volume In, Volume, Pan, Dry/Wet. Earlier, wrong effect was set if automation had changed the values while the effect was disabled. * Audio: Change mute into muting "Volume In" instead of "Volume" when the sound object doesn't have any output channels. * Editor: Create undo when pressing return to add or edit notes and pitches. * Menus: Don't start to navigate the main menus after pressing e.g. Left Alt + X. (The main menus should only pop up if pressing the Left Alt key alone.) * GUI: Fix strange focus behavior when using combo boxes. (There are lots of combo boxes in the MIDI instrument widget) * Menus: Fix keyboard focus after pressing the Escape key to close the main menus. * Mixer: Workaround for a Qt bug causing mouse click not to work right after a custom exec have been triggered by pressing the mouse button, for instance after trying to delete a bus. * GUI: More fixes to make sure things are repainted when running a custom exec, at least when it's safe to do so. * Log window: Make it possible to click html links. * Sequencer: Only repaint the sequencer track the node belongs to, not all tracks. * GUI: Wider borders and wider space between widgets in the async message dialog. * Internal: Reorganize code to better handle synchronized windows popping up at inconvenient times. * Editor: Render pianoroll of the rightmost visible track even when the note lane isn't visible. * Editor: Fix block tempo multiplier slider sometimes drawn with the wrong colors. * Editor: Don't change current track when mouse pointer is outside the editor. * Editor: Fix general flickering in the non-opengl parts. (Bug introduced a couple of releases ago.) * GUI: Don't repaint everything when pressing the up or down key. (One of many situations where it is not necessary to repaint.) * Sequencer: Turn off repainting-every-5-seconds-just-in-case hack. Not necessary anymore. * GUI: More work to avoid widgets not being repainted when running a custom exec. * Editor: Fix instrument names not always being displayed completely in the track headers when the text is getting closer to the right edge of the editor. * Sequencer: Only repaint when necesessary when moving the mouse cursor in the editor or the sequencer. * Mixer strips: Tweak volume requester gfx. * Mixer strips: Display "0.0" instead of "-.0.0" in the volume display. * GUI: Don't hide tracker headers, block tempo slider, and so forth, when running custom exec. * Mixer strips: Write "New volume for ... (now ...dB):" in the requester when clicking the volume text. Earlier, the requester could have been confusing, especially if opened because the user clicked randomly in the mixer. * GUI: More work to ensure program has keyboard focus when starting up. Changes 4.9.7 -> 4.9.8: * Mixer strips: Save configuration of the main mixer strips to disk. * Mixer strips: Don't show error messages if deleting things too fast. * Gui: Never allow a menu or a tooltip window to be the parent of another window. * Mixer strip: Hide sliders immediately when deleting. * Fix crash if the realtime error message window pops up on top of a window, and we delete that window before closing the message window. * API: gui_getNumRowsInMixerStrips, gui_getMixerStripsConfiguration, gui_setMixerStripsConfiguration Changes 4.9.6 -> 4.9.7: * Mixer strips: Add option to set number of rows in the popup menu. * Mixer strips: Reset configuration after loading song. * Mixer: Faster to change number of rows. * Fluidsynth: Don't show non-sf2 files in the sample browser when starting up. * Sequencer: Fix "Configure block color". * Mixer strips: Fix strip order. * Modular mixer: Remove the zoom slider. No one probably uses it. * GUI: Set width of the main window splitter handlers to 0 * Mixer strips: Also make the volume slider work when dragging the volume meter. * Mixer strips: Some GFX tweaks. * API: gui_setNumRowsInMixerStrips, gui_resetAllMixerStrips Changes 4.9.5 -> 4.9.6: * OSX: Fix menu fonts. * GUI: When changing system font, don't change customly set fonts. * Editor: Don't cancel range when changing LZ. * Editor: Also expand/shrink swing when expanding/shrinking. * Editor: Make it possible to expand/shrink by a fractional factor, for instance to shrink 4 lines into the space of 2.5 lines. * Editor: Range can span any area. It is not limited to start and stop at line anymore. * Sampler/Fluidsynth: Option to remove bookmark when informed about a non-existing bookmark directory. * Help: Add info about copy/cut/paste to fxtext.html (it's a nice feature that is not too obvious to find just be trying and failing.) * Editor: Fix copy/paste/cut first fx track. Before this commit, and after swing-per-track was implemented, we copied/pasted/cut the swing track when trying to cut/copy/paste the first fx track. * GUI: Make sure requester dialogs are wide enough. * Mixer strips: Don't create a separate mixer strip for plugins that has been added after a mixer strip window has opened. Bug introduced in 4.9.5. Changes 4.9.3 -> 4.9.5: * Modular mixer: Add "Show mixer strips" option for showing mixer strips for the currently selected instruments. * Remove check during startup that we have write access to the program path. * GUI: Make sure requester dialogs opens up in front of the current window, not (necessarily) the main window. * GUI: Fix graphical updates of mixer strips and sequencer right after running a requester that popped up in front of a different window. * Mixer strips: All popup menues contains "Hide mixer strip", "Configure mixer strips on/off" and "Set current instrument" options. * Mixer strips: Always show a popup menu when right clicking. * Packages: Upgrade visualization library. Fix for a switch fall through that could cause strange mouse behavior. * Packages: Update qhttpserver. Fixes a ubsan hit that looked quite serious. * Mixer strips: Gui to enable/disable strips * Mixer strips: Popup-menu option to hide mixer strip. * LZ: Fix undo. The LZ value itself was not included in the undo data. * GUI: Reset "Half" and "Full" mode when the instrument is deleted. * GUI: Fix instrument widget size when the "Half" button is selected and the instrument widget is inside the mixer. * GUI: Don't hide sequencer when the instrument widget is inside the mixer and we are selecting "Half" or "Full" size. * Player: Automatically stop hanging notes when the player jumps to the start of the sequencer loop. Avoids situations where more and more notes are added until we run out of polyphony. * Mixer strips: Some graphical tweaks. Less borders and so forth. * Instrument color dialog: Fix keyboard focus. * GUI: Don't give keyboard focus to the editor when opening a new window. Specifically, it avoid forcing keyboard focus to the editor when changing current instrument. Perhaps other situations as well. * GUI: Make sure the instrument configuration GUI is placed on top of the main window. * Drag/drop: Don't treat dropped files if showing requesters. * Editor: When creating new lines, let them have correct LZ value, not 1. * FaustDev: Never delete editor automation when recompiling code. * GUI: Don't force keyboard focus to editor focus when the widgets in the upper left corner of the editor are updated. * FaustDev: Don't gray editor when editing source code. * Gui: Update current instrument widget immediately after removing or adding a connection. Fixes bus sliders not changing enabled/disabled status immediately. * API: * New functions: instrumentGuiIsInLowerTab, gui_moveToCentreOf. * gui_text: Options to align text. * GUI: Make gui_width and gui_height work when gui hasn't been shown yet. * gui_drawText: Fix alignment arguments. Centering options for vertical and horizontal were switched. Changes 4.9.2 -> 4.9.3: * Menus: Only navigate menus if pressing the left alt key alone. I.e. Don't navigate menues after pressing left alt + another key. * OSX: Workaround for a Qt bug that caused mouse press and mouse release events to be generated artificially when we set new mouse cursor position. This workaround should also speeds up mouse operations in general. (Instead of calling QCursor::setPos, we call the Core Graphics function CGWarpMouseCursorPosition.) * OSX: Workaround for a Qt bug that caused splitter handlers not to be working, and the mouse pointer not to change shape when hovered above a splitter handler. * OSX: Fix some minor graphical artifacts in the editor. * Sampler/Fluidsynth: Don't warn more than once about a bookmarked directory not existing anymore. * Crashreporter: Rename executable from "crashreporter" to "radium_crashreporter". * GUI: Ensure we don't input a too small max tempo multiplier value in the tempo automation track header. * Menus: Fix keyboard stopping navigating menues when going back to previous sub menu. I.e. when pressing left arrow. * Keyboard: Workaround to force full focus to program after starting program. On Linux, left alt didn't work to navigate windows without this workaround, and on Windows the operating system claimed the main window didn't have keybaord focus, even though Qt for some reason received keyboard events. * OSX/OpenGL: A couple of changes that might prevent rare crash during startup. * API: Only show a normal message if calling addFx, and the effect already existed. Don't start assertion reporter. Changes 4.9.1 -> 4.9.2: * Upgrade the S7 scheme interpreter. * Mixer strips: Minor graphical tweak. * Audio: Fix algorithm to check if trying to create recursive audio graph. Bug introduced in 4.9.1. * Mixer: Twice as fast switching to a different a/b setting. Earlier, the current a/b setting was applied (again) right before applying the new a/b setting. * Jack: Don't freeze program when jack has shut down, and don't freeze if saving or exiting. These bugs might have been introduced around 4.8.7. * Load: Turn off undo when cleaning mixer. Might make loading songs a little bit faster, especially if the song uses plugins that is slow to create settings data (VST chunks, etc). * Internal: Don't create undo when ignoring undo. Minor general optimization. * Load: Release resources obtained by bus instruments when loading song. MIDI learn was probably the only visible resource not being released, but it also leaked memory. * Load: Fix rare crash when loading song with many instruments. * Mixer: Don't crash when changing to a different A/B setting after deleting an instrument. Bug introduced in 4.9.1. * OSX: Fix modifier key not being registered as released after pressing a mouse button while holding a modifier key. Makes Ctrl+Z work after shift+right clicking an instrument without having to click somewhere first, and other situations. * Internal: Fixes leakage of internal object to keep track of playing notes. The leak happened when deleting an instrument while it was playing. Changes 4.9.0 -> 4.9.1: * Windows: Fix approximately 99.99% of the keyboard focus problems. * GUI: Show full screen and close buttons on all windows by default. * OSX: Fix strange error message during startup about missing file. * Mouse: Fix sequencer (and more seldomly the editor) not always working. * Preferences: Move the "Bring instrument widget to front" option from the "Windows" tab into the "Plugins" tab. * GUI: Show message about instrument not having a GUI. * Mixer strips: Fix replace instrument. * Audio: Always connect and disconnect all connections simultaneously. Before, connections were often created and deleted one by one. * Audio: Simultaneously fade out the old connections while fading in the new connections. Before, old connections were faded out before new connections were faded in. * Mixer: Faster to create and remove audio connections. * Player: Approx. 1.5ms faster to stop playing. * Sequencer: Don't pause player when undoing/redoing automation. * Sequencer: Fix bugs that could have caused undo/redo to operate on wrong tracks. * Editor: Be more intelligent about whether to remove automation when replacing an instrument. * Don't pause player unnecessarily when undoing or redoing removing or adding instrument. * GUI: Try to add minimize and maximize buttons to all windows. * Crashreporter: Make sure window is big enough to show all content Changes 4.8.8 -> 4.9.0: * Import mod: Remember file requester geometry, and don't minimize the file requester when showed for the first time. * OpenGL: Fix pre-render blocks when loading song. Before, it only prerendered visible tracks. Reduces the chance of experiencing small delays when switching to a new block, especially when playing song. * Main menus: Support the following keys when navigating the main menus with the keyboard: page up, page down, shift+up, shift+down, home, end. * Track menu: Add "Help Swing text" entry. * Mixer strips: Make sure the main window mixer strip doesn't obtain more vertical space than it needs. * Mixer strips: Remove all margins from the main window mixer strip. * Mixer strips: Remove large gap at the bottom of the mixer strip, especially for minimized mixer strips. Bug introduced in 4.8.7. * Mixer strips: Make the background frame visible again for the send/insert areas. Bug introduced in 4.8.5 or 4.8.7. * Mixer strips: Don't cancel last undo if double-clicking a minimized mixer strip at a position where the mouse pointer would end up on top of a plugin slider after the mixer strip is not minimized anymore. * Quantization: Take LZ Zoomlevel into account for the quantize value. * GUI: More window position tweaks. * OSX: Increase default font sizes so that Radium looks more the same on the three platforms by default. * Windows/OSX: Use the FreeType font engine instead of the font engine provided by the operating system. * Makes the three platforms look more the same. * Could make fonts look much better, depending on the operating system. * The default fonts look better. * Other fonts could look worse. If using custom fonts, you might need to adjust font settings. * Audio: Less time to set an effect values. (Pre-compute port range hints.) * OpenGL/OSX: Actually re-enable "draw in separate process" on OSX. Turns out it was only the GUI to enable "draw in separate process" that was re-enabled in 4.8.7. * Playlist: Fix starting to play block when selecting a block in the playlist, and we were playing song. * GUI: Fixes slow graphics that could happen when using automation to turn a bus on or off. * Editor: Only show the text "Current sequencer track is pausing" when the current sequencer track isn't playing a block. * OpenGL: Avoid semi-rare deadlock in situations where the current seqtrack isn't playing a block. * Import Mod: Fix import mod that has tempo modifications. This might also fix other problems related to adding, removing or changing a BPM value. Bug introduced in 4.8.7. * Import mod: Fix keyboard focus when opening the file requester. * Audio: Some minor improvements to performance. * Sequencer: Don't pause player when editing if playing block instead of playing song. The result is less audio stuttering. * Audio: Use less time to stop playing. * Menus: Stop navigating the menues if pressing left alt when the menues are active. Previously, the main menu bar was hidden. * Menus: Fix showing/hiding/navigating the menues with the keyboard (by pressing left alt). Tested on all three platforms. * Preferences GUI: Add a note that some GFX drivers have significantly lower performance if enabling "Draw in separate process". * Linux: Don't lose keyboard modifiers when switching instrument (and possibly other situations). Fixes e.g shift+left and shift+right for switching to previous or next track. * Main window: Make sure no elements in the horizontal splitter can collapse. * Sequencer: Fix program freeze while trying to paint grid and we have zoomed in so much that there is no grid to paint. * Log window: When shutting down, messages are shown in custom dialogs instead. If not these messages would never be shown, * Sequencer: Speed up moving sequencer blocks, especially when playing. * Audio: Some minor improvements to prevent xruns. * Audio: Don't restart player if trying to switch block to the same block. * Load: Show the "plugin not found" messages in the log window instead of custom dialog boxes so that the user doesn't have to click "Ok" many times. * GUI: Fix rare program freeze that could happen when pressing return in the editor while a custom dialog needs reply from the keyboard. Changes 4.8.7 -> 4.8.8: * Windows/Faust Dev instrument: Don't crash. (LLVM had to be recompiled after upgrading the compiler.) * Mixer strips: Make it impossible to resize the parent of the main window mixer strip. Also make it impossible to collaps the parent widget of the main window mixer strip. * Mixer strips: Don't paint blue border around the main window mixer strip. * GUI: Fix widget positions in the main window when adding/removing mixer widget * GUI/Windows: Fix switching fullscreen (F11) for the mixer window. (This fix might have fixed other problems related to fullscreen as well, and not just on Windows.) * GUI: Fix FaustDev GUI. Widget positions seems to be perfect now, also when selecting "half" or "full" size. * Stability: Fix a couple of crashes that sometimes happend when quitting the program. * Audio: Remove audio artifacts when disablng or enabling the system compressor. Happened for instruments with more than two output audio channels. Changes 4.8.5 -> 4.8.7: * Include a "Kill Jack" program with Radium. "Kill Jack" kills the jack server unconditionally. It could be a very useful tool. * Re-enable "draw in separate process" on OSX. (Hopefully it doesn't crashes anymore.) * Make sure message windows are opened at the centre of parent or screen * OpenGL: Create shaders in the main OpenGL thread, and not in the OpenGL helper thread. This makes the shaders work when rendering in a separate process in VirtualBox. This change might make "draw in separate process" work on more configurations. * OpenGL: Force linking shader immediately after creation. Also give an error message if linking failed. Might fix problems with "Draw in separate process" and other things. * GUI: Fix keyboard focus for the input requester. Especially on windows, it didn't always get keyboard focus when initialized. * GUI: Make sure the input requetser window is wide enough to show all content. * GUI: Fix problem that sometimes caused the current mixer strip to be placed between the editor and the mixer. * Show a "Doesn't have a gui" message when selecting "Show/hide GUI of current instrument" and current instrument doesn't have a GUI. * GUI/Flowlayout: Horizontally centre all items. * GUI: Fixed a couple of bugs that caused widgets not to always resize properly and not to always paint properly. * Packages/libxcb: Fix compilation if python points to python3 instead of python2. (Alyssa P. Hacker) * Packages/libxcb: Fix compilation error caused by indentation errors in python file. (Alyssa P. Hacker) * Quantitize GUI: Don't synchronize the quantitize value across quantitize GUIs. Each quantitize GUI has it's own value. * Quantitize GUI: The inserted value will no longer be automatically divided by greatest common denominator. * Ratio GUI: Pressing control causes denominator to change value when using mouse wheel. (Instead of changing the numerator value) * Ratio GUI: Possible to write floating point numbers. * Ratio GUI: Writing e.g. "9/b" will be converted to "9/1", not "0/1". * Ratio GUI: Writing e.g. "b/9" will be converted to "0/9", not "0/1". * Import mod: Fix keyboard focus in file requester * Progress window: Fix flickering, and fix not always working properly. * Swing: Make the editor use current track swing setting when swinging along while playing * Mixer Strips: mixer strips: Add "Show Info" popup menu option when right clicking an instrument * Import MIDI: Don't show assertion reporter when importing MIDI while playing * Fix keyboard focus in vst path line edit widget * Preferences: Various GUI tweaks. * Don't pause player when copying a track. This bug also manifested istelf on lots of other functions. * Sequencer height is always remembered and constant. * Instrument height is always minimal. * Jack Transport: Fully implemented, includin an option to let Radium be the "Jack Timebase Master". Enable under the "Sequencer" tab in preferences. * Input requester: Pop up a modal window. Never show it between the menus and the editor anymore. (Created keyboard problems and often autoresized the main window.) * Mixer strips: Minor fix to instrument border rendering. * Don't show assertion reporter when moving very short notes in the piano bar. * Lots of assertions that we are not calling update()/show()/exec() while painting. * Always use radium_error_message program to show message when painting or loading song. Fix for crash. * Fix the radium_error_message program program. It didn't properly wait for start and finish. * Put the sequencer and the instrument into a new tab bar. Also added a new tab called "Edit". * Move stylesheet css into a separate file called "bin/stylesheet.css" so that it can be modified without recompiling, and also modified by user. * Some Qt stylesheet tweaks * Let QScrollArea widgets have transparent background * API: * GUI: Make sure tab background is correct * GUI: Fix empty color for gui_text * GUI: Various bug fixes * GUI: Add "rotate" parameter to gui_drawText * GUI: By default, there are no spacing or borders * GUI: Don"t call resize callback again if it failed. * GUI: Fix keyboard focus for line requesters that has no callback * GUI: First argument to gui_ratio can also be a string or a float. * setQuantitize: First argument can also be a string or a float. * getQuantitize: Take an optional argument "as_string". If true, returns quantitize value as string instead of ratio. * GUI: Workaround for a Qt bug causing callback for gui_line to be called twice. (QTBUG-40. Reported in 2005!) * New functions: gui_verticalSplitter, gui_horizontalSplitter, gui_setAsWindow, gui_removeTab, gui_currentTab, gui_setCurrentTab, gui_getTabPos, gui_minimizeAsMuchAsPossible, gui_getMainXSplitter, gui_getSequencerGui, gui_getInstrumentGui, gui_getTabBar, gui_numTabs, gui_tabName, gui_getSplitterHandle, getRatioFromString, getStringFromRatio Changes 4.8.3 -> 4.8.5: * Fix a bug in the jack check program that made it not always work. * Let radium_check_jack_status also check opening input ports. * Make the crashreporter window always pop up in front of other windows. * Update s7 scheme interpreter. * Fix crash if playing right after loading MIDI file. I could only make it crash on Windows, but the underlying bug causing this crash could have caused crashes in other situations and on other platforms as well. * Removing the hermes filter ladspa plugin since it was very unstable. * Removed the surround encoder ladspa plugins since the documentation for it says that it hasn't been tested. * Show the "Bookmarked sample directory doesn't exist anymore" message in the log message window instead of opening a new dialog. * Plugin manager: Add "Show Info" popup menu to show instrument info. * Add info about whether a plugin is an instrument to the plugin info window. * Save old file as .bak when saving file. * Inform that Radium should be restarted after scanning plugins (in case an unstable, but non-crashing, plugin was loaded while scanning). * Don't freeze when the program receives SIGINT while playing. * Improve performance changing sample for the sampler instrument or the fluidsynth instrument. * Fix showing text in the message window that contains <, >, or other characters that could confuse the html renderer. * Pop up the message window and show scheme history when catching an error. * If soundfile can't be found, check the "sounds" directory of the program before asking the user. * Set lighter background color for the post-recording dialog. * Paint gui groups with a more distinct background color. * Various internal changes to prevent bugs. * Various internal changes to detect bugs. * Some internal changes to improve performance. * API: * Make functions returning Place/dyn_t*/func_t* available to Python. Radium does not return any value from these functions when called from Python though. * Don't allow -1 as a place anymore. Use 'same-place instead. This in order to detect if setting a place to -1 by mistake. * Removed: callFunc_void_int_bool * Added: evalSchemeWithReturn, getHtmlFromText, gui_ratio, gui_setStyleSheet, gui_setStyleSheetRecursively, setQuantitize, getQuantitizeType, setQuantitizeType, gui_flowlayout Changes 4.8.2 -> 4.8.3: * Current mixer strip: Fix resize of wide strip, and don't show two strips above each other in certain situations. * Mixer strips: Make sure the label of a minimized mixer strip is always at least two characters high. * Async file requester when loading protracker module. * API: * GUI: Support tabs container (gui_tabs/gui_addTab) * Deleted: importMod * New: requestImportMod, gui_fileRequester, gui_tabs, gui_addTab, gui_className Changes 4.8.1 -> 4.8.2: * Windows: Make sure that notification windows, shown during, startup, are not hidden by other windows. Changes 4.8.0 -> 4.8.1: * Update s7 scheme interpreter. * Fix semi-rare freeze when undoing block position in the sequencer while playing. * Fix window-on-top and remember-geometry for the help windows. * Fix LLVM 4.0 incompat with faust. (Teteros) * API: gui_web Changes 4.7.9 -> 4.8.0: * Various fixes to reduce flickering when opening windows * Open the main window at the centre of screen during startup. (On Linux, it often opened up in the upper left corner.) * Make sure all new windows are opened at the centre position of the parent window. * Fix remember geometry for the Preferences window * OSX: Fix window on-top-of hierarchy. Turned out QWidget::setParent() doesn't make windows always stay on top of each other on OSX (which they do on all other platforms). The workaround is a combination of tool windows and modal windows. The workaround behaves approximately the same way and is applied to all platforms. * Replace all use of usleep. May fix some bugs on windows, where usleep doesn't work if asking to sleep more than one second. * Show taller async message window initially. * Sequencer: Don't repaint when a non-async window is visible. This avoids blank sequencer graphics in some situations. * Set default button in message windows. I.e. when pressing the Return or Enter key, the default button is pushed. The default button is the rightmost one on Window and Linux (mostly), and it's the leftmost one on OSX. (It's the same button, but systems displays button order differently.) * Detect during startup if the jack server is malfunctioning, and kill it if it does. Don't just freeze Radium, as before. This also releaves the user from killing the jack server manually, which is a little bit complicated. * Mixer: Fix modular mixer height cut in half when pressing the "M" button two times. * Mixer strips: Fix gui leak for narrow-sized mixer strips. Two unused widgets were created every time a narrow-sized mixer strip was created or recreated, and they were never deleted. This could probably have taken up significant amounts of memory after a while. * OSX/Plugin manager: Workaround for non-working Return and Enter keys. * Show the "About" window asynchronously. * Don't crash if a plugin asks for timing information outside realtime audio thread. Also shows warning window if a plugin does this. This avoids crash after closing the "Moody Sampler" AU plugin. * Plugin manager: Many fixes. * Plugins: Many fixes to the way we load plugins. * API: * Reduce scheduling resolution from 90ms to 5ms. (Increases performance on some gui-related things.) * GUI: Optimize adding/removing rows to/from table. (Increases plugin manager performance) * GUI: Don't cancel various virtual methods (paint/resize/etc.) from running when a non-async window is visible. This avoids some of blank widgets when showing file requesters, etc. * GUI: Don't crash when deleting a table cell gui. * GUI: Clean up, make faster, and make safer, the way we store, lookup, and organize qwidgets. (It was possible to crash it before.) * addMessage: Call showMessage if the underlying scheme file that addMessage uses has not been loaded yet. * Removed the char* type. Can only use const_char* now. * New functions: gui_numOpenGuis. gui_hasKeyboardFocus Changes 4.7.8 -> 4.7.9: * Fix some minor plugin scanning issues, such as making it possible to rescan previously blacklisted plugins. * Add OS version to crash report. * Plugin manager: Make Home/End keys work. * Plugin manager: Let the Return and Enter keys select plugin, and let the Escape key cancel/close window. * Show non-critical and non-interactive messages in a static log message window. I.e. no need to press "OK" to continue. Not all messages have been changed to do this yet though. * Add "Show plugin manager" entry to the windows menu. * More fixes to make mixer widget and other windows remember geometry. * Various fixes to make sure windows are put on top of the correct window. * API: gui_addKeyCallback, openPluginManager, addMessage, gui_setText, gui_setStaticToplevelWidget, getDateString, getTimeString. Changes 4.7.7 -> 4.7.8: * Fix undo in the sequencer when inserting lines in a block * Workaround for a couple of Qt bugs causing crashes when opening menues and doing mouse operations in the modular mixer. * Fix async menues. * Plugin manager: "Rescan all" button. * If there are several plugin files with the same name, load all of them, and figure out which one to use. Give warning if more than one was usable. Changes 4.7.6 -> 4.7.7: * Store on disk the result of scanning a plugin, plus store a blacklist of plugins that crashed during scanning. * Fix problems changing A/B state that was loaded with the song. * Mouse: Fix mouse pointer position after editing in the editor * Fix keyboard focus in async popup menues * API: getMaxSubmenuEntries / setMaxSubmenuEntries Changes 4.7.4 -> 4.7.6: * Show popup menu with the presests from the last used directory, also when selecting "" from the track header, and "Load" from the instrument widget header. * Don't show assertion reporter when loading multi preset from track header menu. * Make sure only ONE undo entry is added when creating a new instrument from the track header menu. * Mixer: Always place it on top of main window. * Try to fix plugin deletion crash on OSX when CPU is buzy for at least 5 seconds after closing. * Turned off "draw in separate process" on OSX for now since it's been reported to be unstable. * Various stuff to make sure windows are placed on top of the correct parent window * Made both replace and load instrument interfaces async. * Fix recent load song crashes plus many other potentially crashy situations. * Plugin manager: Enabled. * "Show instrument window when double-clicking" is now off by default. * Plugin manager. * Made instrument popup menu async. * Fix vsync warning message during startup * Log more undo info * API: * Added: obtainKeyboardFocus, releaseKeyboardFocus, gui_setModal, getGlobalMousePointerX, getGlobalMousePointerY, gui_moveToParentCentre, showAsyncMessage, createInstrumentDescriptionPopupMenu, getAllPresetsInPath, requestLoadPresetInstrumentDescription, instrumentPresetInClipboard, autoconnectInstrument, gui_addDeletedCallback, gui_addRealtimeCallback * Removed: instrumentDescriptionPopupMenu, requestLoadPresetInstrumentDescription. * Renamed: gui_setAlwaysOnTop -> gui_setParent, replaceInstrument -> requestReplaceInstrument, loadInstrumentPreset -> requestLoadInstrumentPreset, * Made doubleClickCallback work with tables * showMessage: Add button options * GUI: Large table speed up. * GUI: All toplevel windows remember geometry * GUI: Implement :get-value for table Changes 4.7.3 -> 4.7.4: * Mixer strips: 4X faster to create/recreate. * Mixer strips: Fix freeze if several bus paths have common targets. * Fix mouse pointer position when editor is not visible. This fixes mouse pointer moving to lower right corner when editing sequencer automation. * Don't crash if failing to load a plugin when loading song. * Options to load and save single blocks and tracks. Instruments and automations are not loaded yet though. * Save instrument comments into .rec and .mrec files * shure -> sure (Teteros) * Make the vsync startup warning hidable (Teteros) * API: appendPaths, removeSchedule, getSoundPluginRegistry, populatePluginContainer, gui_addTableRows, gui_getNumTableRows, gui_getTableRowNum, gui_sortTableBy, gui_stretchTable, gui_setEnabled, gui_table, gui_addTableCell, gui_enableTableSorting. Changes 4.7.2 -> 4.7.3: * Make sure all timing data is updated after loading song. Fix for weird behaviors after loading song. * Swing help text fixes. Changes 4.7.1 -> 4.7.2: * Don't crash when changing global tempo and there is more than one block. * Option to enable sending swinging tempo to plugins. Default is off. * Option enable editor to swing along when playing. Default is on. Changes 4.7.0 -> 4.7.1: * Swing help text. * Make sure standalone line requesters don't fall off the right part of the screen. * Scroll down when pressing DEL on an empty lpb/bpm/swing text entry. * Always start new bar at signature changes. * Swing: First-beat swing values are of the grayed-out type if not created manually by the user. * Upgrade s7. * Swing: Support swing for individual editor tracks. * Report during startup if the current version has been marked unstable. Changes 4.6.9 -> 4.7.0: * Various fixes to prevent the s7 garbage collector from collecting non-garbage. * Refuse to compile if using clang<3.4, or gcc<5. Swing won't always work if using a compiler without sufficent support for integer overflow checks. * Show "hide swing track" popup menu to the editor. * Soundfilesaver: Add tooltip to the resampler type combo box. Changes 4.6.8 -> 4.6.9: * Let new bpmtext/lpbtext/swingtext entries be non-gliding by default. * Temporary hack to prevent a CPU spike when starting to play in the middle of a block. If sample seek is enabled for an instrument, there will still be a small CPU spike, but only for that instrument. A proper fix should be included in the next release. (bug introduced in 4.6.7) * Mixer: Fix error about creating recursive connection when changing a/b. * Don't show assertion reporter, and don't calculate wrong time, if moving a tempo automation node to the top of a block. * Mixer: Remember window geometry. * Swing track. (Just the block track for now, swing sub-tracks will be added later) * Fix delete signature. * Fix copying signature track. Changes 4.6.7 -> 4.6.8: * Some debug code to track down a bug in the sampler player. * Upgrade s7. The previous version had a memory corruption. * Poor man's sample seek. Should work work fine for playing long samples without any type of loops or pitch changes. Check the "S" box in the plugin header to enable. Changes 4.6.6 -> 4.6.7: * Mixer: Update volume slider in modular mixer when changing a/b. * Mixer: Fix a/b state after loading. * Don't stutter when undoing main bpm or main lpb. Changes 4.6.4 -> 4.6.6: * Soundfile rendering: Fix rendering block. * Soundfile rendering: Option to set minimum resampler quality. * Soundfile rendering: Fix keyboard focus when finished editing the "post recording" value. * Less pause time when changing global BPM. * Continue playing range if changing global tempo. * Add mimetype support for .rad files. (Teteros) * Only let the left alt key operate main window menues if the main window has keyboard focus. * Ask "are you sure?"-questions, and so forth, in a new window, if the main window doesn't have keyboard focus. * Prevent stuttering when changing global bpm or global lpb. * Option to select random sample for all selected instruments. Keyboard shortcut: Left shift + R. * Sampler: Create undo point when selecting random sample. * Option to load song from command line. * Sequencer: Fix rare crash when zooming in too much while playing song. * Configure the color of all selected instruments simultaneously. * Add LLVM 3.8.1+ compat to bundled faust. (Teteros) * Add a .desktop file and more icons. (Teteros) * Fix misleading indentations in Juce. (Teteros) * A new song properties window in the project menu. Currently only has options to change accelerando and ritardando types. * New methods to calculate accelerando / ritardando * Add glide/hold options to the BPM track. I.e. not necessary to use the tempo automation track to gradually change tempo. * API: setRandomInstrumentSample, setRandomSampleForAllSelectedInstruments, getInstrumentTypeName, getInstrumentPluginName, getSelectedInstruments Changes 4.6.3 -> 4.6.4: * Fix popup menu for instrument objects in the modular mixer * Song comment window: Change title from "Dialog" to "Song Comment" and don't open the window modally. Changes 4.6.2 -> 4.6.3: * Fix removing BPM and LPB entries from the BPM track and LPB track. Changes 4.6.0 -> 4.6.2: * Build: Compile with -O2 instead of -O3 for non-CPU intensive files to improve backtrace. * Mixer: Fix bug that could cause the Instrument widget to be positioned above the Modular Mixer widget. * Mouse: Make it possible to move the the editor scrollbar with the mouse. * Mixer: More work to avoid, and to track down why, the assertion reporter sometimes pops up (and undo/redo stops working) when releasing the mouse button. (It's a quite rare problem though.) * Fix tooltips for the BPM and LPB text input widgets. * Don't show assertion reporter when loading a new instrument preset and there are no preset files in the current directory. * API: Let getBlockLength, getSongLength, and lineDuration return double instead of float. * API: New functions: getCurrRealline, setCurrRealline, getNumReallines, getEditorScrollbarScrollerX1, getEditorScrollbarScrollerX2, getEditorScrollbarX1, getEditorScrollbarY1, getEditorScrollbarX2, getEditorScrollbarY2, getEditorScrollbarScrollerY1, getEditorScrollbarScrollerY2 Changes 4.5.9 -> 4.6.0: * Windows: Don't show lots of console windows when opening the crash reporter. * Menus: remove "(under development)" from the mixer strips window entries. * Doc: Merge mixer and mixerstrips documentation into one page. * Menus: Add "Show Quantization and Track Monoization Window" entry to the windows menu. * Possible to press any key (not just return) to add signature when the cursor is placed in the signature track. * Fix pressing the DEL key to delete chance text. * No need to press return to add/edit numbers in the LPB and BPM tracks anymore. Instead, just write the numbers directly. * More attempts to avoid progress window flickering. * Minor performance improvement to Zita Reverb. * Mixer strip: Switch between wide/narrow mode when clicking the name of the current instrument. Changes 4.5.8 -> 4.5.9: * Windows: Fix crashreporter backtrace. * Mixer strips: Draw blue color on top of sliders for the current instrument * Windows: Fix keyboard input when the Mixer is running in a separate window. * Sequencer: Fix mouse handling when editor is not visible Changes 4.5.6 -> 4.5.8: * OSX: Upgrade Qt from 4.6.2 to 4.7.1. Might fix some GUI issues. * Windows: Compile with gcc 5.4. Should be a little bit faster. * Add a bottom bar to mixer when it's running in a separate window. * Make it possible to move the vertical handle between editor and sequencer. I.e. make it possible to resize the height of the sequencer widget. * Windows/crashreporter: Don't show two crash reporter windows when crashing. * Minor GUI and audio optimizations. Changes 4.5.4 -> 4.5.6: * VST: Fix saving FXB/FXP * Fix tool tip for the "half"/"full" buttons in the instrument widget. * Mixer strips: Draw a blue and thick border around the mixer strip for the current instrument. * Mixer strips: Change current instrument when clicking name. To switch between narrow and wide mode, right click and select/unselect "Wide". Clicking the name of the mixer strip of the current instrument changes wide/narrow mode, as before. * Mixer: Add an "I" checkbox to switch between putting the instrument widget in the bottom of the mixer, or putting the instrument widget in the bottom of the main window. * Mixer: Add a "W" button to show the mixer in a separate window * Mixer / Mixer strips: Various tweaks to reduce flickering. * Linux: Fix 1,2,3,4,5,6,7,8,9,0 keys when using french keyboard * MIDI: Ask "are you sure?" question if trying to make a recursive connection * Mixer: Clean up a/b states when loading song * Mixer strips: Update "send" values when changing a/b state * Mixer: Add an "M" button that switches between modular mixer and mixer strips. * Windows: Mixer strips: Keep keyboard focus after switching to full screen. (no need to click the window first anymore) * API: getAllTemponodes/getAllLPB/getAllBPM * API: Changed "getSampleRate" to return integer instead of float Changes 4.5.2 -> 4.5.4: * Mixer: Checkbox to show/hide connections. * Mixer: Apply volume/muting/soloing/bypassing changes to all selected objects. * Mixer: Update mixer object volume sliders when undoing. * Show arrow letter, not "=>", above the rightmost arrow in the instrument window. * Mixer: Popup menu options to unsolo/mute/unmute all objects, and options to solo/mute/unsolo/unmute all selected objects. * Mixerstrips: Update send sliders when a value is changed from another mixer strip. * OSX: Give up, and disable high CPU protection on this platform. It really seems like Apple goes to great lengths to make programs use 100% CPU in OpenGL applications when the window is not visible (i.e. they are not just transforming 'OpenGL Swap' into a dummy function, which would be stupid enough by itself, albeit managable). To illustrate how hard this problem is, the code in the JUCE library to work around the same problem doesn't work properly either, so in all JUCE OpenGL applications and plugins running on OSX, you are likely to see a little bit of graphics stuttering now and then caused by JUCE's high CPU protection logic. On most OpenGL applications, this is not a big deal, but in Radium, where there are very big movements and close interactions between user and OpenGL graphics, it's very noticable and annoying. A workaround may exist in OSX 10.9 and later, but I'm not sure I want to prevent Radium from running on OSX 10.8 yet. Changes 4.5.0 -> 4.5.2: * OSX: Fix the 0,1,2,3,4,5,6,7,8,9 keys when using a french keyboard * Osx/sierra: Workaround for crash in qt when exiting program * Upgrade Visualization-Library. Fix for rare startup crash, especially on OSX. * Enable draw in separate process by default, and also force-enable it if it earlier had been excplicitly disabled. * Windows: Fix draw in separate process. * Crashreporter: On windows, report crashes as crashes, not errors. * Don't crash crashreporter when showing assertion from a different thread than the main thread. * OSX: Fix system font on 10.12. * Use system font in the playlist. * Some debug code to try to track down an undo bug in the mixer * Windows: Fix use of non-ascii paths for sndfile, libgig, and the crashreporter. * Make the "Quit" button in the system message window actually quit the program * Windows: Fix starting program if the current path contains non-asci characters. * Mixer strips: General speed up, plus fix ctrl to slow down mouse Changes 4.4.8 -> 4.5.0: * OSX: Enable draw in separate process by default. Quick temporary workaround for OpenGL freeze problem. * Fix using left meta to force horizontal movement when pressing keyboard before mouse. * OSX: Use left alt instead of left meta to force horizontal movement. Left meta is already used to slow down mouse movement on OSX. * Updated keyboard modifiers in the Help -> Mouse menu so that they are correct for all three platforms. * Don't crash when selecting "Quit" after getting message that OpenGL is too old during startup. * Mixer strips: Various gfx improvements. * Mixer strips: Speed up rendering a lot. * Mixer strips: Menu options to show window with 1, 2, or 3 rows of mixer strips. * Mixer strips: Click name to switch between a narrow and a wide strip. * Mixerstrips: Fix full screen. * A general fix for popup menues not always working, especially in mixer strips. * Make the "ignore warnings and errors for two seconds" and "ignore warnings and errors for the rest of the program" buttons work again. * Preferences: Fix some usage of wrong font types. * Progress window: Should quit by itself now if Radium crashes (or is killed) while progress window is open. * Progress window: Remove flickering when printing new message. Works perfectly on Linux/Windows, but not on OSX, as usual. * Avoid rare deadlock when playing looped range. * Sequencer: Fix painting correct bar numbers when block tempo != 0. * Sequencer: Fix program freeze when painting bar numbers. * API: Renamed ctrlPressed to controlPressed. 'controlPressed' returns true if Ctrl is pressed on Linux/Windows, and if Cmd is pressed on OSX. * API: New functions: control2Pressed, gui_addPaintCallback, gui_update, hasWideInstrumentStrip, setWideInstrumentStrip, gui_toolTip, gui_drawVerticalText. Changes 4.4.7 -> 4.4.8: * Audio: Make it optional whether to use buzy looping as synchronization primitive in the multicore scheduler. Buzy looping may cause CPU spikes if a plugin uses more than one thread to process audio. * More intelligent way to check if OpenGL uses too much CPU. On OSX the old way didn't work quite well since it seemed like the OS used a lot of time right after re-rendering the editor, which it also did, but not for so long that we needed to pause the rendering. * Removed the "Experimental feature" text from the auto-suspend and recalculate options in the preferences window. Those seems to work fine. * Mixer strips: Automatically scale font size, if necessary, so that we always see all text. * Added mixer strips help to the Help menu. * Add "Add automation to current sequencer track" option to effect slider popup menu Changes 4.4.6 -> 4.4.7: * OSX: Let the Cmd key behave as Ctrl key again. This is an emergency fix since Ctrl+mouse click turned out to be interpreted as a right click on OSX. More work needed though. * Revert to multicore scheduler from Radium V4.4.4. The new one had CPU spikes. * Sequencer: Fix changing loop start position when mixer strip for current instrument is visible and on the left side * Cache sample directories. * Sequencer: Option to show bar numbers instead of time in the timeline. * Show loading sample directory progress status in the progress window instead of the editor, if the progress window is visible. * Disable painting when loading song. Less flickering, and hopefully also fixes a rare crash during startup. * Draw a tiny track header border when several tracks are merged together into one track header * Sequencer: Fix moving the navigation bar when the current mixer strip is visible and on the left side Changes 4.4.5 -> 4.4.6: * Don't scroll editor when using the mouse wheel on various text fields, such as changing various ratios or a piano roll interval. * Fix tooltip for the piano roll header. * Fix a quite rare bug in mixer strip that prevented it from showing * Fix undo/redo when splitting a track into monophonic tracks * Add option to automatically split recorded tracks into monophonic tracks after recording. * Never swap OpenGL while creating or deleting a plugin or a plugin window. Could fix some rare crashes if using a semi-buggy GFX driver with plugins using OpenGL. * Option to turn off the high CPU usage check in the OpenGL thread. * Make sure the solo button in the mixer strips is updated when pressing the solo button in the instrument widget * Don't create undo when changing solo * Improved spinlock implementation * Many thread sanitizer fixes. Might fix subtle bugs. * Compile using boost 1.63 by default * API: numSelectedInstruments/instrumentIsSelected Changes 4.4.4 -> 4.4.5: * Fix crash when loading song that has a sequencer track with no sequencer blocks. * Improve multi core scheduler somewhat. The improvement might not be measurable, but it shouldn't be worse than before. Still room for improvement. * Several thread sanitizer fixes. Could fix some subtle bugs. * Make it impossible to enable safe mode (it is not safe to enable safe mode). * Add c/c++ version and s7 version to about window. * Audio meters: Fix falloff speed. Don't falloff faster when there are more instruments. Changes 4.4.3 -> 4.4.4: * Mixer strips: Don't set volume to 6Db if it's above +6 Db when showing mixer strip. * Fix bug causing assertion window to pop up when adding note with value 0 in the note text area. Changes 4.4.2 -> 4.4.3: * Windows: Include test version of jack 1.9.11. (I've been using it for almost a year, and it includes a newer version of qjackctl.) * OSX: Workaround for the OS failing to set normal threading priority on 10.12 * Mixer strips: Make sure the windows are always on top of the main window * Fix a crash during shutdown * Draw green rectangle around mute buttons when the instrument is implicitly muted (i.e. muted because some other instrument is soloed) * Change audio multi core scheduler to buzy loop when waiting for new tasks. This increases audio performance, but also increases the overall CPU usage. * Audio recording: By default, save new audio files in a subdirectory of the song file. * Audio recording: Plug tiny memory leak. * Audio recording: Don't check in the realtime thread if the file path exists. * Mixer strip: By default, show the current mixer strip on the left side of the main window. * Sequencer: Fix sequencer automation when block tempo is not 1.0. * Preferences: Move some window related options from the "Various" tab to the "Windows" tab. * Mixer: Fix autoposition new mixer objects. * Add option to the Windows menu to show/hide current instrument GUI * Menu entry to show/hide current mixer strip * Preferences Option to show/hide current mixer strip during startup * Reorganize "Windows" menu a little bit * Build: Fix VST include path in the makefile * Show error message window if failing to parse keybindings file * Fix overriding keybinding, where the original keybinding only has integer arguments, while the new keybinding have at least one argument which is not integer * API: Rename instrumentActive to instrumentIsOpen, * API: Rename gui_is_open to gui_isOpen * API: New functions: schedule, hideInstrumentGui, instrumentGuiIsVisible Changes 4.4.1 -> 4.4.2: * Don't un-mute an instrument when changing volume * Mixer: Don't create volume slider undo before actually moving the slider * Fix "Load" in the instrument widget and "Replace" for mixer strip plugins * Upgrade the S7 scheme interpreter Changes 4.4.0 -> 4.4.1: * Mixerstrip: Implement ctrl-clicking mute and solo buttons * Mixerstrips: Fix F11 for mixer strips window, and only show full screen of the currently pointed at mixer strips window * Windows/OSX: Fix keyboard input for mixer strips windows * Sequencer: Don't crash when deleting instrument that has automation * Sequencer: Replace sequencer automation intelligently when an instrument is replaced. I.e. transfer system volume automation to new instrument, and so forth. * Made most popup menues async so that they don't block audio meters and so forth. Instrument selector is still synchronized though. * Added a little space to the left of the checkboxes in the popup menues. * Mixerstrips: Only show legal alternatives when replacing a send or a sink * Mixerstrips: Don't delete the old sink instrument when replacing, just disconnect it. * Plugin selector: Only enable plugins that fits. For example, if replacing an instrument that has both input and output connections, we can only replace it with a plugin that has input and output connections * Mixerstrips: Fix heigth so that it fits the window when horizontal slider is visible. * Mixer: Keep old position when replacing an instrument (bug introduced in 4.4.0) * API: Make sure cursor is always placed at the beginning when showing text input widgets (i.e. gui_line). * Never lose keyboard focus for the text input requester in the upper left of the main window. * Show single mixer strip for current instrument in the right part of the main window. * Mixerstrips: Add "Show GUI" and "Set current instrument" to the path popup menu * Mixerstrips: Use all available space for audio meters * Mixerstrips: Popup menu option to show instrument info * Mixer: Popup menu option to show instrument info * Mixerstrips: Fix replace plugin sink. Forgot to implement it in 4.4.0. * Mixerstrips: Include all instruments that you can send to when creating a new send. Bug fix. * Mixerstrips: Delete instrument when right-shift-clicking header name or anywhere inside the path * Mixerstrips: Option to configure instrument color in the popup menues * Don't enable reverb bus and chorus bus on new instruments * Mixerstrips: Sort mixer strip buses by connections so that the flow always goes from left to right * New API functions: gui_mousePointsMainlyAt, hasNativeInstrumentGui, getCurrentInstrument, setCurrentInstrument, instrumentActive, gui_is_open, gui_createString, showInstrumentInfo Changes 4.3.8 -> 4.4.0: * Fix velocity pitch gradient colors when notes text is off. * Let chance 0 mean using previous chance for that instrument. * Add preferences option about whether to show playlist window during startup * Fix patch voice on/off when changing a/b/c/d/e/f/g/h * Fix Ctrl-key modifier on OSX. (I.e. don't use Cmd when slowing down mouse movement) * Sequencer menu: Make replace/clone also work on selected sequencer blocks * Sequencer: Fix moving blocks * Sequencer: Fix selecting/unselecting single blocks * Fix high CPU usage when using Intel GFX driver and Radium window is not visible. May fix high CPU usage if using AMD GFX card too. * Wait at least 1 second before turning off autosuspension graying for the mixer objects, to avoid flickering * Use same db2linear function in the mixer and sliders as in the mixer strips * Add decaying values to the audio meters * Change volume meter range from -70 -> +40 to -40 -> +35 * Fix this information text: "a signal of at least 50db". * Linux: Fix running Radium if the full path contains space * Mixer strips window. A traditional mixer interface. * Add MOUSE_MIXERSTRIPS keyboard qualifier * Show playlist window by default when starting the program. It might make block handling less confusing for new users * Update mixer object graphics (if necessary) when calling changing instrument effects from the API. * API: Fix checking error and throwing exception when running Python. * Don't show assertion reporter if trying to add a note with illegal start and end values * API: Option to continue instead of throwing exception * API: Make it possible to paint on all types of gui, and rename canvas to widget. * API: make gui_addMouseCallback work on all gui types * New Api functions: gui_textWidth, hasAudioConnection, hasEventConnection, cancelLastUndo, showInstrumentGui, undoMixerConnections, deleteAudioConnection, deleteEventConnection, gui_addDoubleClickCallback, informAboutGuiBeingAMixerStrips, showMixerStrips, gui_setFullScreen, gui_isFullScreen, dbToGain, gainToDb, remakeMixerStrips, getAudioConnectionVolume, setAudioConnectionVolume, undoAudioConnectionVolume, getNumInputChannels, getNumOutputChannels, getInstrumentComment, setInstrumentComment, addAudioMeterPeakCallback, resetAudioMeterPeak, undoInstrumentEffect, gui_mixColors, gui_getBackgroundColor, getMinDb, getMaxDb, addEffectMonitor, removeEffectMonitor, gui_addCloseCallback, gui_setSize, gui_disableUpdates, gui_enableUpdates, gui_verticalAudioMeter, instrumentIsBusDescendant, gui_addLayoutSpace, gui_getX, gui_getY, gui_setPos, gui_getSystemFontheight, gui_horizontalScroll, gui_setMinWidth, gui_addResizeCallback, getInstrumentEffect, getAudioBusId, gui_scrollArea, gui_verticalScroll, gui_setLayoutSpacing, gui_setSizePolicy Changes 4.3.7 -> 4.3.8: * Fix crash when song tempo automation has been visible (but is hidden now), and a block was moved past the end of the song while playing, and the cursor is now past the previous end of the song, and a sequencer track was added. * API: gui_setBackgroundColor and gui_addMouseCallback. Changes 4.3.6 -> 4.3.7: * API: Functions to create a canvas and paint on it * Convert chance help to html * Convert velocity help to html * Update help text for the "draw in separate process" OpenGL option. (in general, it should be enabled) * Adjust various things in the preferences window. * Automatically show instrument widget when double clicking a sound object, plus option to turn this feature off/on. * Convert all help texts to html * Updated the keybinding documentation with the new MOUSE_* qualifiers * Add EVENT_MOUSE_EDITOR, EVENT_MOUSE_MIXER, and EVENT_MOUSE_SEQUENCER qualifier "keys". * Fix keybinding for functions that doesn"t only take integers as arguments (an ugly bug). * Fix redefining keybinding for functions that takes non-integer arguments. * Options to change sequencer grid for tempo/block/loop/automation. The grid can be changed to "no", "line", "beat", or "bar". * Make sure copy/cut/delete in the seqblocks popup menu is enabled when right clicking outside a sequencer block. * Fix Ctrl+X in sequencer when no block is selected. * Support sequencer effect automations. (i.e. horizontal automations in the sequencer) * Fix jumping mouse when releasing ctrl before releasing left mouse button when moving a node. * Fix custom keybindings help on windows. * Correct song tempo node position when creating new node when ctrl is not pressed. * Display negative time correctly * Reorganize sequencer popup menu a little bit * Optimize sequencer automation by using binary search instead of linear search. Changes 4.3.5 -> 4.3.6: * Show message windows during startup, if necessary. Fixes apparent missing information about errors in keyboard configuration. * Don't save keybindings dictionary to file. Fixes keybindings in the menues if binary directory doesn't have write permission. * Add info about how to change keybindings to the help menu. * Always write "0.00 dB", not "-0.00 dB" or "+0.00 dB". * Make sure progress window positions and resizes properly. * Various tweaks to ensure Radium works and looks properly with larger system fonts. * Update sequencer immediately when editing notes. * Draw all pitch values in the sequencer. * Fix sequencer mouse handling when editor is invisible. * Color adjustments. The default colors have higher saturation + some minor stuff. * Fix minor sequencer rendering when doing smooth scrolling. * Use instrument color to paint sequencer block track background, and don't paint default sequencer block track background anymore. Changes 4.3.4 -> 4.3.5: * Smooth sequencer scrolling. (can be enabled in the preferences) * If no sequencer block is selected, Ctrl+C copies the sequencer block under the mouse. * Protect statically stored scheme functions from disappearing * Plugins: Show warning window instead of trying to load incompatible plugin state, if state is incompatible. * Don't load invalid a/b state information from plugin state. (This means that previously saved a/b state information can be lost now and then when upgrading or downgrading Radium) * Fix a general program freeze introduced a couple of releases ago. * Fix memory leak. Very little memory was freed when loading or creating new song. (bug introduced a few releases ago) * Possible to automate note duplicator voice on/off. * Make sure sequencer cursor is always visible when playing song. * Loading/saving, copy/pasting, and undo/redo: Always keep same order for various types of editor nodes (e.g. notes, fx, velocities, etc.) when two or more nodes have the same time, * Fix unnecessary deletion in various situations when two or more velocity or pitch nodes have the same time position. * Scale bottom bar height based on system font height * Render last line as ranged when it is ranged * Fix a few usages of non-system font in the preferences dialog * OSX: Add some debug printing to track down why program doesn't start on sierra * Reorganize Window menu a little bit * Crashreporter: Send edited text, not original text. * Always position progress window on top of main window * Use system font size in the progress window * Allow use of Qt 5.5 on Linux if the file "kf5deprecatedwidgets.so" is deleted from the system. * Fix end pitch value when adding pitch to note * Only create whole note pitch values unless ctrl is pressed when adding a new pitch node to a note * Fix bug that in some situtaions caused pitch automation points to be deleted when moving a note up or down that contained both velocity automation and pitch automation * Fix import xm * Add qtbase5-private-dev to the list of ubuntu packages * Ctrl+J: Add options to move cursor to line and/or track * Various build and documentation fixes (Nil Geisweiller) * Fix status tex bar text when moving sequencer navigator * Option to ignore message windows for 2 seconds if a new message window pops up immediately after closing a message window * Fix the default track separator colors * S7: Don't allow any redefinition of global symbol during initialization * Improve compressor graphics rendering a tiny bit * Fix MIDI learn for solo * Fix statusbar text for sequencer * scheme: Show warning if redefining a global symbol * Upgrade s7 * API changes: * deleteNote (same as deletePianonote 0) * hasRange/getRangeStartTrack/getRangeEndTrack/ getRangeStartPlace/getRangeEndPlace * handle error when note value is less than 0.001 * Change order of arguments for setPitch * Change order of arguments for setVelocity * Replace all set*LogtypeHolding functions with set*Logtype functions * Let getPitchValue return 0 if pitch_end is 0 * rename addFx to requestFx (because of nameclash) * addPitch/addPitchF/setPitch/setPitchF * Rename various create* functions into add* * Let createPianonote take Place as placement types instead of float * Let the velocity argument for addNote be a float and not an int * Remove getMaxVolume function. * deleteAllNotesInTrack * Let getGrid and getQuantitize return a Place and not a float * Removed deprecated functions getNotePlace, getNoteEndPlace, and setNoteEndPlace * let first argument to cutNote be a Place and not a float * Throw s7 exception in api functions. Get backtrace from where the error happened, and avoid getting several message windows popping up if something goes wrong. * getPitchValue/getPitchPlace/getPitchLogtype/deletePitch/ setPitchLogtypeHolding. * Replace isPianonoteLogtypeHolding with getPianonoteLogtype * Rename lots of *pitch* functions into *pitchnum* * Let getNoteStart and getNoteEnd return Place and not float Changes 4.3.3 -> 4.3.4: * Linux: Check during runtime that we are not linking to another version of libxcb than the one included in bin/packages. * Switch keybindings for F8 and F9. * Don't show instrument widget when starting up. * Let F8 show/hide sequencer instead of playlist. * Don't show playlist window when starting up. * Don't allow moving sequencer blocks before time 0. * Sequencer: Let moving blocks have a different color than the selected blocks. * Sequencer: Make sure block positions stays the same when removing or adding a block that has a different tempo multiplier value than 1.0. * Sequencer: Fix moving several blocks when at least one of them has a tempo multiplier value other than 1.0, plus use the same skew value for all moving blocks. * Sequencer: Adjust when to swap the position of two blocks. * Fix ctrl-click to select/unselect sequencer block. * Always unselect seqblocks when finished moving. * Support Ctrl+X/C/V keyboard shortcuts in the sequencer. * Move several sequencer blocks simultaneously. * Fix swapping a seqblock when moving it to the left of a sequencer block with a size less than half than the one being moved. Changes 4.3.2 -> 4.3.3: * Add Cut/Copy/Paste/Delete options to sequencer popup menu * Make ctrl-click select/unselect sequencer block * Ensure sequencer timeline isn't hidden after loading song * Make it possible to move sequencer blocks before previous blocks and after later blocks. * Disallow building Radium with Qt 5.5 on Linux because of a buggy KDE library which is automatically loaded. * Make mixer selection color configurable. * Update s7 scheme interpreter. * API: Various fixes for crashing or showing assertion reporter when providing an illegal index value. * s7: Write scheme function name in error messages, not the C function name * Select multiple sequencer blocks using selection rectangle to select several blocks at once, or ctrl-clicking to select/unselect. * Exclusively select when ctrl-clicking a mute/solo/bypass button in the mixer. * Only create one undo when moving a sequencer block between sequencer tracks. * Change solo behavior if two or more sound objects are selected. If two ore more sound objects are selected, solo will work on those objects instead of the instrument objects. * Ctrl+click an already selected sound object unselects it in the mixer. * Moving a sound object to the same position in the mixer doesn't create undo. * Clicking on a sound object button or slider doesn't make the object selected. * Moving a sound object to the same place doesn't cause assertion reporter to pop up in some situations. * Always let timeline triangles in the sequencer have the same width as height. * Fix various issues with sound file saver. * Show more warning information about the nouveau GFX driver. * API: Finish up the new gui functions. * Workaround for crash/etc. that could happen when using tempo automation on a splitted line. * Avoid some graphical glitches in the editor when restarting a loop. Changes 4.3.1 -> 4.3.2: * Don't send pitch change messages when the value is the same as last time. Minor optimization + that it screwed up automatic portamento a little bit. * Always show warning during startup if VSync is turned off. It's most likely a mistake if it's turned off. * Sampler instrument: Automatic portamento effect. (I.e automatically glide between notes and pitches) * Change default behavior to not stop playing when saving song. * Make sure various information about Linux GFX drivers are not showed unless actually running Linux. * Add new option called "Glide to next note at mouse position" to the pianonote popup menu. * Sampler instrument: Options to select a random sample file (Accessible either by pressing the new "R" button, or by selecting "Select radium sample" in the sound object popup menu.) * API: Many new functions for creating GUIs. Changes 4.3.0 -> 4.3.1: * Linux: Fix use of embedded libxcb. * Fix song tempo widget size after loading a song with a visible song tempo widget. Changes 4.2.9 -> 4.3.0: * Add "Hide song tempo automation" option to song tempo automation popup menu. * Ensure graphics is updated when changing song tempo automation. Changes 4.2.8 -> 4.2.9: * More fixes for open hand mouse pointer. * Removed some startup warnings about unstable gfx drivers and so forth on Linux. With latest version of libxcb, this will hopefully not be a problem anymore. * Linux: Include xcb-proto 1.12 and libxcb 1.12. All versions of xcb before 1.11.1 (which is quite new) are probably unstable if using AMD or Intel gfx drivers. * Fix high CPU usage when sequencer window is visible Changes 4.2.7 -> 4.2.8: * Write a warning in capitol letters next to the vsync option in the preferences. (Disabling vsync only makes sense using buggy gfx drivers.) * Sequencer looping. * Make sure the mouse pointer looks like a pointer when it is supposed to be a pointer. * Fix text cluttering in the sequencer timeline when using another system font than the default. * Make the range color alpha channel configurable. * Assign track MIDI channel to note when: 1. playing using MIDI keyboard, 2. Editing notes in piano roll, 3. Scrolling editor up and down with the arrow keys, and 4. When playing using the computer keyboard. Also add option to the preferences to keep original MIDI channel when using MIDI keyboard. * Use the system font height to determine sequencer dimensions, not the editor font height. * Send actual time to plugins. I.e. remove block tempo multiplication and song tempo automation out of the picture. * Add monitor refresh rate to the help->About window * Song tempo automation Changes 4.2.6 -> 4.2.7: * Make fewer undo points when moving sequencer blocks * Attempt to lower file requester startup time on windows * Show sequencer grid graphically when moving blocks * Only use first sequencer track to define grid * Scrolling the mouse wheel down stops the player and sets cursor position in the sequencer. * Sampler: Don't change reverse value in realtime. I.e. already playing notes doesn't suddenly change between playing backards and forwards. * Fix "Block Copy" and "Block Paste" in the menus * Fix semi-rare crash that could happen right after a sequencer is deleted or changed, for instance after loading a song. * Fix sequencer grid when a block tempo multiplier doesn't have the value 1.0. * Update note graphics in the sequencer immediately. * Configure instrument colors (select "Configure color" from the track header or mixer sound object popup menus). * Warn about all Mesa 10 Linux Intel GFX drivers during startup. It seems like Radium could crash at any time if using these drivers. * Possibly improve audio performance by reducing cache misses. Memory usage has decreased a little bit too. Changes 4.2.5 -> 4.2.6: * Mouse: Don't bar-align the first block in the sequencer. * Mouse: Always move the sequencer blocks the same number of pixels. * Option to recalculate latency on the fly when turning on/off a bus connection. Saves a lot of CPU on songs with many instruments. This is probably just a temporary workaround for the CPU problem until a proper solution is implemented. Latency should not be recalculated when you turn on/off of a bus connection since it produces minor artifacts (caused by interpolation) and also causes minor temporary tempo changes (i.e. at least one beat will have a different length than the surrounding beats). * Fix mouse problems when moving sequencer blocks. A very common problem on OSX, but it has also been observed on Linux. * Fix rare assertion window popup when loading song. Changes 4.2.4 -> 4.2.5: * Don't paste color when pasting block * Move sequencer blocks in the vertical direction as well as the horizontal direction. * Always hide sequencer window if instrument window is half or full size. * Let new blocks have 64 lines by default, not 70. * Mouse: Align sequencer blocks by bar positions in the sequencer track(s) above. Pressing ctrl (to finetune) prevents automatic alignment. * Update default sequencer colors. * Legalize sequencer block positions when timing has been changed. * Paint bars and beats in the sequencer. * Fix rare hang when loading song or protracker module. * Don't show assertion reporter if the user doesn't have physical jack output ports. * Always select the block when right clicking on a block in the sequencer. * Options to replace block under mouse with current/existing/new block, in sequencer popup menu. * Add "configure block" option to sequencer block popup menu. * Option to configure block colors. Block colors are also saved to disk. * Hide progress window when showing message so that it doesn't cover the message window. * Regularly make sure progress window is on top when open. * Various preferences gui adjustments. * Windows: Fix keyboard after Radium was brought to foreground again after being minimized by clicking the taskbar icon. * Include Linux Intel 10.3.3 driver in list of GFX drivers to show warning about. Changes 4.2.3 -> 4.2.4: * Add options to the sequencer popup menu for deleting and inserting blocks. * Temporary fix to avoid tiny inaccuracies in the BPM value sent to plugins. Should fix some plugins from re-syncing. * Don't reset transport location when switching block while playing. (bug introduced in 4.2.17) * Fix quantitization on imported automation. * Tell plugins that we are in non-realtime mode when rendering sound files. * Add options to the sequencer popup menu for creating and deleting sequencer tracks. * Don't allow trying to set BPM or LPB to 0. * Avoid hanging note if receiving note on and note off at the same time from MIDI. * Fix note stop / velocity change / pitch change for notes that are scheduled to start in the future * Fix play note that has start time > 0 when playing notes triggered by MIDI or computer input. * Don't multiply tempo with the block tempo multiplier of block #0 when pausing. * Unique block colors in the sequencer. * Various sequencer navigator GFX tweaks. * Option to lock juce when swapping opengl. Might prevent some plugins from crashing when opening native GUI. * Minor pitch line GFX tweak. * Tweak sequencer "piano roll" painting. * Ensure scheduler is really cleared before starting to play. Should prevent the assertion reporter from popping up in some situations. * Ask VST3 and AU plugins for audio tail length instead of using default value. Changes 4.2.2 -> 4.2.3: * Switch editor block when clicking a block in the sequencer * Draw blue border around current block in the sequencer * Pd: fix a bug that happened when loading long lines. The bug could for instance cause mininum and maximum slider values to be lost. * Fix the functions for selecting next and previous playlist position. (ra.selectNextPlaylistBlock and ra.selectPrevPlaylistBlock) * Fix play song from current position * Fix a scheduling bug that sometimes caused events to be scheduled at the wrong time. Changes 4.2.1 -> 4.2.2: * Make mixer object peaks less invisible for instruments with more than 16 channels * Print jack samplerate in the about window * Fix automation from other instruments in a track (bug introduced in 4.1.7) * Fix GUI lockup which could happen if more than one special type of GUI element asked for keyboard input simultaneously and/or more than one input requester window was visible. * Upgrade to Juce 4.2.4 * Some emergency scheduler fixes. Some things still not working. * Always draw the tiny pitch lines. Didn't always see if the notes continued playing into the next block before * Fix unnecessary drawing when velocity has height 0. Also avoids a divide by zero assertion in debug mode. * Fix possible freeze in automation scheduler * Fix a couple of memory corruptions when using the MIDI instrument. * Started work on a vertical timeline sequencer. More than one sequencer track is supported, but only one is visible for now. * Add 64 bit integer type to the API * Fix semi-rare scheduler crash(es) when doing pitch and velocity operations. * Fix a division by zero occurence in the Editor renderer. Changes 4.2.0 -> 4.2.1: * Update block play positions in the playlist after changing a block length. (Bug introduced in 4.1.7) Changes 4.1.9 -> 4.2.0: * Use less time deleting plugins that have thousands of parameters * Remove a couple of situations where the assertion reporter popped up unnecessarily. * Fix loading songs that contain AU and VST3 plugins. * Disable changing presets for VST3 plugins, at least for now since it's not working. Changes 4.1.8 -> 4.1.9: * Play block when selecting a block in the block selector. It didn't work before when playing song. * Warn about old Intel Linux GFX driver during startup. * Reorganize the instrument header buttons. * Don't load a VST3 plugin when you meant to load the VST plugin with the same name, plus 5 other similar situations. I.e. set the type name of a VST3 plugins to "VST3" (not "VST") and the type name of audio unit plugins to "AudioUnit" (not "VST"). * Various minor VST/VST3/AU fixes. Changes 4.1.7 -> 4.1.8: * Fix various player bugs introduced in 4.1.7. * Support VST3 plugins under Windows and OSX, and AudioUnit pluins under OSX. Changes 4.1.6 -> 4.1.7: * Reintroduce pitch lines for non-gliding notes, but don't draw pitch lines under note names. * Make the pitch lines twice as thick. * Options to enable/disable whether parameters should change when clicking "Random". (Right click slider or checkbox to select.) * Give message if trying to cut or copy sound object when no sound object is selected. (Instead of showing the assertion reporter.) * Workaround for possibly wrong BPM values sent to VST plugins when switching block while playing, and block multiplier is not 1.0. * Fix very rare player freeze when changing block tempo. (plus fix unreliable timing). * Only use the scheduler from year 2012, and remove all remaining use of the scheduler from year 2000. * New and very flexible internal playlist structure. * Don't restart player for every automation in the whole song when deleting an instrument. Just stop it once if necessary. (Fixes xrun-like sound when deleting instrument) * Sampler: make "note adjust" floating number. * Show the "Reset" option when trying to reset the current a/b setting setting. Display it in disabled mode though. (It was a bit confusing when nothing happened before.) Changes 4.1.5 -> 4.1.6: * Don't fill up undo log when adding undo for all effects of an instrument. * Don't delete old song when importing MIDI, just put the midi data into a new appended block. * Add "reset" option to the a/b testing buttons when right clicking one. * Mixer a/b testing * Fix bug that sometimes caused player not to restart after undoing or redoing. * Update s7 scheme interpreter to latest version. * Keyboard shortcuts and menu entries for copy/paste/cut/delete mixer objects * Fix solo for instruments that have input event connections. * Add "Turn off solo for all instruments" entry to the Solo/Mute menu * API: Make the setInstrumentEffect function work on any instrument, not just the sample player. * Fix importing midi (and calling the "setNumLines" api function) while playing. * Mixer: Remove the "Zoom in" and "Zoom out" buttons. * Mixer: "Reset Zoom" -> "Zoom". * Mixer: "Show CPU usage" -> "CPU" * import mod: Fix looping when looping from last line of pattern Changes 4.1.4 -> 4.1.5: * MIDI instrument: Fix bug that caused midi channel 2 to be send out at channel 3, channel 3 to be sent out at channel 4, and so forth. * Option to assign MIDI channel to track. Can be convenient for some VST instruments. Ignored by the MIDI instrument. * Display MIDI channel 1-16 instead of 0-15 in the MIDI messages instrument. (Radium has always used 1->16 for MIDI channel.) * Paint solid bars for the peak meters in the mixer, not just single lines. * Let the MIDI messages plugin receive notes from the editor, and add channel value to the notes. * Fix sliders in the FaustDev instrument when pressing "half" or "full". * Still show automation values in the sliders after selecting "half"/"full". * Don't open the window informing about new versions modally since this can block starting up the program if another window opens on top of it. * Fix peak colors when db > 0 (i.e. show yellow and red too, not just green). Changes 4.1.3 -> 4.1.4: * Fix various crashes happening after loading a song or a preset that was saved with Radium 4.1.3. * Don't crash during startup if a popup window is shown right after splash screen is hidden. (Bug introduced in 4.1.3) * Turn on the "Briefly pause rendering when opening windows" option if using an AMD or Intel card on Linux (Can be turned off manually). * Make it possible to configure color for the left part of the track separators. (The left part was hardcoded to black color before.) * Use correct rgb color mixing algorithm. (i.e. "sqrt(m*c1^2 + (1-m)*c2^2)") * Put the "Show controls" check box and sample browser back to the old positions in the instrument widget. Changes 4.1.2 -> 4.1.3: * Hide splashscreen if showing a message during startup. * Always autosuspend buses, pipes, patchbay instruments, and the sampler instrument. * Buttons for doing A/B testing (A/B/C/D/E/F/G/H testing). * Don't autosuspend current instrument when not playing. (Annoying to look at flickering mixer objects.) * Add a close button to the MIDI learn configuration window. * Rearrange plugin parameters when changing size between normal/half/full. (Show less tabs in half or full mode). * Fix display of CPU usage for the current instrument when showing CPU usage in the mixer. * Don't write "Auto-suspended" immediately in the top of the instrument widget when instrument is auto-suspended. Use the normal cpu usage update interval. (Less flickering) * Never shrink the note duplicator widget. Always let it have the same size. * Fix saving a song which had previously been saved with embedded samples. * Show restart instructions when jack is not running properly. * Option not to stop playing when saving song. * Do autobackups even while playing. (Can be turned off in the preferences window.) * Never grey out editor when editing colors, even if the editor doesn't have keyboard focus. * Fix undo/redo for system effect parameters. * Thicker track borders. * Lighter default track border color. * Start/continue/stop playing when receiving MIDI start/continue/stop messages. * Fix some always-on-top-of-main-window issues. Changes 4.1.1. -> 4.1.2: * Rename auto-bypass to auto-suspend. * Optionally show CPU usage per instrument in the mixer. * Fix MIDI input-related crash when deleting instrument. Bug introduced in 4.1.1 * Let Notes added by MIDI input be polyphonic when shift is pressed. * Fix bug causing both note on and note off be registered as note on when a note was added from MIDI input. * Add inputs/outputs/latency/tail/time of last last activity to the instrument info box. * Grey out auto-suspending sound objects in the mixer, in realtime. * Various auto-suspend tweaks and bug fixes * By default, disable auto-suspend for zita reverb in new songs. * Instruments can optionally override default auto-suspend behavior. * Autoposition instruments in the mixer (again) when importing MOD. * Fix general buggy behavior when closing text line requesters. * Allow cancelling adding a new MIDI port. * Many bug fixes and tweaks for auto-suspend. * Show requester windows at mouse position. * Let Escape key exit editing number boxes Changes 4.1.0 -> 4.1.1: * Option to auto-bypass instruments. The feature turns off processsing for an instrument when it has been inactive for a specified amount of time, i.e. when it has not received or produced any audio or events. This can save lots of CPU. Note that this bypass is not the same as the mixer-bypass. The mixer-bypass only turns down the volume, but it doesn't turn off processing. * Fix bug causing assertion reporter to pop up when changing tempo etc. (bug introduced in 4.1.0) * Run plugins also when dry/wet value is 0% or bypassing. If not, delaying plugins might cause old audio to suddenly kick in when unbypassing. Other artifacts may have occured too because of this. * Upgraded s7 scheme interpreter to latest version. * Fix startup crash if startup is interrupted. Changes 4.0.9 -> 4.1.0: * Add bypass button to native VST GUI windows * Windows: Fix always-on-top for VST GUIs (i.e. avoid sub windows to appear behind the main VST GUI window). * Add option to the preferences to disable always-on-top for VST GUIs. * Fix latency compensation when dry/wet value is less than 100%, or we are bypassing. * Timeskew: Optionally report latency for positive skew values. (Practical when testing latency compensation) * VST timing info: Ensure bar start value is correct when starting to play. * Add plugin latency compensation to editor events (e.g. note on / note off, automation, pitch, etc.) when a plugin with latency is input-connected. * Add latency compensation to VST timing data, if needed. * Fix semi-rare startup crash introduced in 4.0.8. Changes 4.0.8 -> 4.0.9: * Use system font size to determine the height of the "Grab keyboard" check box * Some ubsan fixes * Don't show those tiny pitch lines if a track plays the same pitch for all notes * Detect if instrument receives, generates, or sends out very powerful signals, and show a warning if they do. Changes 4.0.7 -> 4.0.8: * Add "Grab keyboard" checkbox to the VST GUI windows. * Windows: Fix keyboard focus in VST plugins. * Rename "Paste Preset(s)" to "Paste sound object(s)". Changes 4.0.6 -> 4.0.7: * Show load/paste preset and VST plugins first in instrument popup menu. * Don't allow copying a permanent sound object to the clipboard. (i.e. a bus or the main pipe.) * Fix autoconnect and auto position when creating new instrument from track header. Changes 4.0.5 -> 4.0.6: * Show note about autobackup in the preferences window. Autopackup is not performed while playing. * Fix bug when pressing backspace at line 0 and the end position of a note was between line 0 and line 1. * Disable minimize and maximze buttons on the GUI of native VST plugins. This fixes strange situation when putting VST plugin in full screen on OSX. * Only render soundfile if there is a "System Out" instrument in the mixer. * Cut/copy/paste sound objects * Load/save multiple presets * Fix very small timing error when block multiplier does not have the value 1.0. This means that older songs with a block multiplier != 1.0 will not play correctly, although it is likely not noticable. * Don't show assertion reporter when recording failed. * Fix selecting "Reset" when right clicking on a slider. * sample recording: Set middle note in smpl chunk instead of setting an uncommon sample rate. * Get middle note from the "instr" chunk, if it exists, and there was no "sampl" chunk. Untested though, since I don't have a sound file with "an nstr" chunk. * Get middle note from the "sampl" chunk in wav files, if present. * Start audio recording sample accurately. * Update peaks in realtime when recording audio. Changes 4.0.4 -> 4.0.5: * Fix modifier keys on OSX. * Don't crash if deleting the instrument while recording audio. Changes 4.0.3 -> 4.0.4: * Revert most of the keyboard changes in 4.0.3 since it caused various problems. However, although detecting autorepeat on linux doesn't quite work now, on OSX and Windows the functionality should be the same as in 4.0.3, apart from the bugs. * Option to record audio into sampler instrument. (Hard drive, multitrack recording) * Some attempts to track down and prevent one autopeported crash when deleting instrument. Changes 4.0.2 -> 4.0.3: * Fix player pausing when using play cursor (noticable for instance when changing tempo while playing) * Option to render range to soundfile * Only show .rad files in file requester when saving song * Make alt+w/ctrl+w widen automation area(s) as well, not just the note area. * Attempts to fix reported startup crash using debian + OpenGL 2.0. * play range: Ensure nothing is played below the range. (It could sometimes happen before). There is still a little delay right before starting to play the range again (when looping), but this delay has been reduced significantly. * Fix program freeze that could happen if trying to play a very small range, block or song. (range/block/song length must probably be less than 5 milliseconds) * Very simple fx quantization. (Keep last value only) * Add "Add automation to current track" slider option * VST: Automatically switch tab when changing parameter in external GUI * Only disable keyboard autorepeat when playing samples. * velocity text: Dont show last velocity value if the previous node was non-glide. (to avoid unnecessary "xxx" values) * Windows: Remove "AltGr -> play block" from the menues since it often doesn't work. * The FaustDev instrument has been removed from the Linux binaries for now. Hopefully this makes the Linux binaries run on Ubuntu 16. * Workarounds to avoid crashes in the TAP reflector plugin, and possibly other TAP plugins. * Actually reduce crackling when playing an instrument for the first time if using very low jack buffer size, or the CPU is very busy. (It was only applied in the debug builds in 4.0.2.) * Include fftw3 libraries in the Windows and OSX releases. Many additional LADSPA plugins are loading now. Pitch shifters, etc. Changes 4.0.1 -> 4.0.2: * Slider text: show value set by the user, not the current value. (The current value can be also be set automation). * Reduced instrument memory usage significantly. * Reduce crackling when playing an instrument for the first time if using very low jack buffer size, or the CPU is very busy. * Fix quick-selecting preset. Changes 4.0.0 -> 4.0.1: * Ignore keyboard when the mixer has focus * Ignore keyboard when the blocklist or playlist has focus * Support drag-dropping audio files * Support drag-droping preset files * When selecting "Load preset" in the mixer, or "Load" in the instrument widget, a popup menu is show with the existing presets in the last used preset directory, plus an option to load a preset from a different directory. * MIDI learn can also lear from input event connections. * MIDI Messages instrument: Fix CC values for the general purpose controllers. The instrument sent out 16/17/18/19 instead of 80/81/82/83. * Fix MIDI port name display in the MIDI learn configuration window. * Grey out editor when editor doesn't have keyboard focus. * Desparate attempt to find a workaround for rare OSX startup crash. (Please report if OSX still sometimes crashes on startup.) * Fix crash during startup on OSX when jack is not running. * Don't show assertion window when trying to load non-working preset file. * OSX: Don't wait for diagnotic report in the crashreporter when we show assertion instead of crash. Before this fix, the crashreporter window popped up at least 20 seconds after the assertion happened, and therefore a provided user description about what happened could be quite useless. * Fix double scroll wheel events, and possibly other types of doubly reported mouse events as well. (Qt5 fix) * Experimental option to prepare opengl data in separate thread. This helps making rendering smooth when there's lots of graphical data. Turned off by default. * Fix mouse drag not always working when dragging too fast or gfx is slow because of much graphical data. (Qt5 fix) * Increase rendering performance for blocks with many lines. Changing the LZ value shouldn't change performance that much anymore. Changes 3.9.9 -> 4.0.0: * Automation record: Don't show assertion warning when trying (and failing) to add a new fx automation point at the same time position as an already existing fx automation point. * Thicker non-line-aligned beat lines. (0.6 pixels -> 2.3 pixels) * Fix memory corruption when rendering block with non-line-aligned beat lines. * Option to render multiple sound files, one for each instrument. * Fix memory corruption when using VST plugins. (bug introduced in 3.9.9) * Fix rare startup crash. (bug introduced in 3.9.9) * Fix crash when removing the system out instrument or loading a song where the system out instrument has been removed. (bug introduced in 3.9.9) * Reorganize project menu a little bit. * Fix note duplicator horizontal gui stretch. * Fix play cursor following. It didn't always follow. * Keep sample read position when switching from ping-pong to non-ping-pong while playing. * Fix a MIDI record position inaccuracy which could happen when switching to a block with a different length than the previous one. Changes 3.9.8 -> 3.9.9: * Don't let shift + mouse scroll wheel move editor cursor left/right. * Cut/copy/paste individual fx-es in tracks. * Record automation. (right-click a slider) * Changed default play cursor color to black, and increased width to 4 pixels. * Ensure the bottom bar volume slider is always updated. * Don't show assertion window when loading older song with fxs->effectnum != fxs->fx->effect_num * Fix track cut * Fix copying/pasting/cutting tempo tracks * More accurate play range looping. * More time set off for for graphical updates. * Should be noticable if using VST plugins on Windows or OSX. * Workaround for OSX crash when deleting some VST plugins with open native GUI. * Use non-native color selector on OSX (i.e. no separate window). * MIDI learn. (right-click a slider or right-click a check box) * Fix MIDI instrument widget stretch * No 2-3 seconds freeze on Windows after starting up. Changes 3.9.7 -> 3.9.8: * Turn off custom put-dialog-in-front system. Using the Qt::WindowStaysOnTopHint flag instead. (Less weird behavior when raising windows in front of others.) * Fix "Make track monophonic". It didn't handle velocities and pitch changes, and it didn't create undo data at the correct time. * Fix race condition when recording MIDI (fix rare crash). * OSX: Fix VST plugin keyboard focus for qt5. * Don't estimate monitor refresh rate when using qt5. The estimation is technically necessary since we need to know the refresh rate according to the sound card clock, and not the gfx card clock. But in practice it makes no difference since we interpolate the screen position anyway to avoid jumps. In qt5 there is a single function call to get the refresh rate without having to measure or dive into the OS APIs. * Faust: Allocate hash tables with malloc to avoid large .bss sections (This causes shorter garbage collector pause times.) * BDW-GC: Don't include data segments for dynamically loaded libraries. (This causes shorter garbage collector pause times.) * Use Qt::FramelessWindowHint instead of Qt::Popup for the progress window, to avoid locking up the X server on Linux. * Removed some unnecessary paint calls Changes 3.9.6 -> 3.9.7: * Fixed mod/xm import on OSX. * OSX: dont show dock icons for the helper programs * Clean up gfx update handling a bit. Should improve graphical performance. * Remove some pre-opengl gfx buffers that were not used. Using less memory now, and resizing might be noticable faster. * macosx: Enable full screen. Doesn't crash now, probably because of using Qt5 instead of Qt4. * Progress dialog when opening songs. * Option to save song with audio samples embedded. Works for the Sampler and Fluidsynth instruments. Could be useful when sending songs to other people or transfer songs between computers. * Add Reverse and Ping-Pong loop to the sampler instrument * Fix graphics for show/hide bpm track and tempo multiplier track * Double the number of effect columns before using tabs. * Tweak Patchbay gui a bit. * Adjusted tapiir gui. * Removed the custom Ctrl+C handler. Ctrl+C seems to work properly now without it. * OpenGL: Call glMakeCurrent / glDoneCurrent before and after rendering each frame. Before we only called glMakeCurrent during program startup. Don't know if it makes a difference. * disk: Give error message if the last step when saving a file (i.e. copying new file over the old file) failed. * Fix bug that could cause non-glide automation not to be played. * Force additional windows, such as the preferences window, to always display in front of the main window. * Upgrade to Qt5. It seems like the seemingly random OpenGL related crashes are gone now. * Some blocklist/playlist gfx tweaks * Don't ask for effect display value string when the effect is an on/off button (crash fix) * Fix pasting effects from other instruments * Tweak when to paint stipled automation node lines Changes 3.9.5 -> 3.9.6: * Update bus slider strings immediately when changing a bus instrument name * Fix freeze that could happen when pasting tracks and other situations * Fix crash when pasting block using a sampler instrument pointing to a directory with lots of samples. * Timeskew plugin. Like a delay, except that you can set negative values as well. * Plugin delay compensation. * Optimize rendering performance. Should especially be noticable on Windows 32 computers with slow disk. * Apply faust scroll wheel behavior to the mixer and editor as well, and document this behavior in the help menu. * Don't record CPU usage data for plugins that are not visible. * Draw missing horizontal lines to connect nodes where glide is set to OFF. This is not only visually better, but also necessary in order to show the last values without enabling text. * Update mute/solo/bypass buttons when automated * Upgrade BDW garbage collector to 7.4.4 * More detailed information when getting "unknown effect number" error. * Add missing sustain pedal effect name handling in the Fluidsynth instrument. * Fix memory leak in FaustDev undo. * Fix splitting block while playing * Check errors when reading file from disk * Gray out selected objects in the mixer again. Changes 3.9.4 -> 3.9.5: * Fix Linux binary * Draw a rounded rectangle around the current sound object in the mixer. * Various mixer graphics improvements. * Various thread sanitizer fixes * Finally fixed an old pesky race condition bug. * Updated package list for debian/ubuntu and fedora. * Remove xmessage, pygtk and libglade from bin/packages. * Mixer: Only open GUI if double clicking on the instrument name. * Mixer: double clicking is normally handled as two single clicks. * Add solo buttons to the sound objects in the mixer and the instrument window. * Change the Faust "Show C++" and "Options" buttons into checkboxes. * Make sure all dialogs remember geometry when they are reopened. * Fix loading LADSPA plugins. * Add options for LLVM optimization level and Faust GUI style in the preferences dialog. * Automatically increase slider font size when the instrument window is full size * Replaced the "maximum" checkbox with "half" and "full" checkboxes. * Don't crash if we can't read a song file. Changes 3.9.3 -> 3.9.4: * Show min/avg/max CPU usage for each individual instrument. * Fix rare divide by zero bug when displaying CPU usage. * 2Bar Demo Track by Tobias Lutzenkirchen included in the Project menu. * FaustDev instrument. Develop faust instruments inside Radium. * Instrument maximimize button. * Faust instruments GUI button. Only the blue style available for now. * Add separator between plugin and system effects in the effect popup menu. * Start counting tab pages from 0 (not 1) in the plugin effect widgets. * Don't play if pressing shift or altgr when the cursor is placed in a text field. * Load song: Inform user when the effect names of a plugin has changed and will be ignored. * LADSPA/Linux: Search for plugins in LADSPA_PATH (and bin/ladspa) before searching in the default locations. * Don't create undo data when loading song, and when exiting. * Ensure faust effect names are unique. Important when saving and loading songs since effects values are stored by name, not by index. * Make sure editor is updated when the instrument widget automatically adjusts its height. Changes 3.9.2 -> 3.9.3: * Fix crash when changing the pitch of a note * Don't show assertion window when a midi device name read from config file could not be found. Changes 3.9.1 -> 3.9.2: * Added some workaround code in an attempt to not crash if hitting an old bug (which I thought was gone). * Fix loading presets which were saved before 3.9.1 * text: 0x80 is always 50% (instead of around 50.2%), and 0xff is now interpreted as 0x100. Setting an actual 0xff value is not possible. * Larger font for help texts Changes 3.9.0 -> 3.9.1: * Added "chance text", similar to velocity text, fx text, etc. Specify the chance of whether to play a note or a pitch. * Don't crash if trying to set centtext value on an end note * Fix the various show gui automations. * Fix old songs that was saved with "Gain (dB)" as volume effect name instead of "System Volume". * Add another voice to the note duplicator * Added three extra buses * Add highpass filter to equalizer * Add "chance" column to note duplicator. This can also be automated. * Add 16x16 and 24x24 patchbays * Change editor redraw mode on Windows and OSX to be similar to Linux. Might make a difference. * Don't show warning window if trying to switch solo mode on non-existing track * Fix keybindings in the menu for switching track on/off and track solo. * Prefix LADSPA and VST effect names with effect number to ensure effect names are always unique. * Some midi recording fixes. Might fix rare crashes. Changes 3.8.9 -> 3.9.0: * Make sure cursor is placed correctly when switching blocks * Dont show warning window when a vst plugin sends a MIDI sysex message * Fix block switch crash introduced in 3.8.9 * Accept drag-and-dropped radium songs into the editor Changes 3.8.8 -> 3.8.9: (removed, unstable) * Check for for note name(s) under cursor first when finding note(s) to increase/decrease velocity of when pressing AltGr+left/right * pressing AltGtr+down/up jumps to next waveform start/end position when cursor is in the automation area. * api: cursorNextWaveform/cursorPrevWaveform * FX range: Fix copying automation for instruments with empty effect names * Fix adding new fx from another instrument when the track already has an fx with the same number * MIDI: Ask system to open default device when creating new midi instrument, instead of using the first one available * windows/midi: Use default device (instead of the first device) for output if the requested device could not be found * 32x32 patchbay instrument * Clean up MIDI recording code. More stable and accurately, and recording over several blocks should work better. * Fix potential undefined behavior when cutting track * Use JUCE instead of RtMidi for sending and receiving MIDI * More than one MIDI input port simultaneously. * Show most used plugins in the bottom of the pluginmenu. (All previously used plugins are shown in the "next" sub menues.) * Remove "keep left input", etc. instruments from the plugin menu (they take up space and the patchbay is better anyway) * Some assertions to try to hunt down ladspa initialization crash on osx * Ensure current line is legal when changing the LZ value * Send around midi channels in the note event system * patchbay plugin: Fix situation that theoretically could silence all channels when loading song or preset Changes 3.8.7 -> 3.8.8: * api: currentLine / setCurrentLine * Make scroll wheel behave as pressing up / down arrow key instead of scrolling up / down * Paint current connections in more distinct colors * Fix 1L1 key on apple keyboards. On ISO keyboards the 1L1 key has moved down to the ZL1 key. Dont know how to detect whether we are using an apple or iso keyboard, but mac users probably usually use apple keyboards. * OSX: Enable and fix crashreporter * Wait until opengl widget has updated before returning from gl_create_window * mouse: Fix editing lines below LZ * number of lines in block. * Another attempt to fix window reconfiguration crash on osx. * OSX: Fix keyboard focus in native VST GUIs Changes 3.8.6 -> 3.8.7: * Clean up instruments when loading new song. Can significantly reduce memory usage. (Tito Latini) * Don't disable garbage collector when loading song. Can significantly reduce memory usage. * Improve mouse performance significantly. This may reduce overall gfx stutter when doing operations with the mouse, or just moving the pointer, especially on Windows. More work is possible here though. * Fix fx popup menu when there are many instrument with many effects. * Show a message in the editor when the garbage collector is turned off. * Actually turn off the garbage collector when unselecting "Enable Garbage Collector" in the preferences. * Try to fix window reconfiguration crash on OSX. * Update s7 scheme interpreter * Fix VECTOR_clean and VECTOR_move. (Tito Latini) Changes 3.8.5 -> 3.8.6: * Allow fx from other patches than the track patch * Fix windows startup. * Fix playing note when editing in the piano roll for a MIDI instrument, and similarly, fix playing note when editing in the piano roll for an audio instruments that uses pitch instead of note id to identify which sound to turn off (e.g. fluid synth and VST instruments). Changes 3.8.4 -> 3.8.5: * Fix crash during midi instrument patchname undo. (Tito Latini) Changes 3.8.3 -> 3.8.4: * Play note when creating / moving note in pianoroll * api: playNote/stopNote, and replaced playRange with playRangeFromStart/playRangeFromCurrent * Make sure note stop event is sent out after note start event when the note is started and stopped at the same time * Always scroll down after editing if playing and using the play cursor * Restart player after doing undo/redo, if we were playing. * Ctrl key slows down slider movement whn moving the vertical compressor sliders * Fix fx when cloning instrument * Ctrl key slows down slider movement when moving volume sliders in the mixer * Show error message window if keybindings.conf has syntax error * Always read bin/keybindings.conf, then read ~/.radium/keybindings.conf if it exists * Add more undo information to crash log * Fix crashreporter on linux * Fix some range cut/copy/paste things Changes 3.8.2 -> 3.8.3: * Show message in editor when temporarily stopping player * In general, start player again if player had to be stopped before doing an operation. * Lowered undo block interval from 3 to 1/2 second. (computers have more memory now) * Revitalize PC_Pause and PC_StopPause * Disable faster render test code (which really wasn't faster, at least not noticably) * Render: Don"t crash if current track number doesn"t exist * Make sure "LZ" is updated in the window when the value changes * Zoom in/out exponentially * api: getLineZoomBlock, getBlockLength, getSongLength Changes 3.8.1 -> 3.8.2: * Fix reset bottom bar volume slider * Turn on GL pause by default for Linux users not using an nvidia card * mouse: Use track under mouse when turning on/off cent text / velocity text / fx text, not the track the cursor is placed on. * Upgraded to latest version of s7 * api: msleep * Add Post-recording tools GUI to the quantization menu (in addition to the MIDI menu) * Fix inverted MIDI volume slider * Delete all MIDI instrument windows when creating new song. Also fixes crashes that can happen when loading new song. * Fix peaks in bottom bar volume slider, and don't crash if creating and deleting "System output" sound objects in a special order. * Don't do autobackup if the editor doesn't have keyboard focus * Obtain keyboard focus when showing popup menu * Can select MIDI instruments from track header again Changes 3.8.0 -> 3.8.1: * Track paste: Fix undo/redo if it was necessary to create instrument, and autoconnect to main bus if creating new instrument. * Don't try to replace mixer object if pressing shift while releasing right mouse button. * Refactoring automation/peak rendering in sliders. The program might be noticable faster and more stable now. * Update garbage collector help text in the preferences window. * Make automation/peak rendering in sliders visible also when value is at maximum. * Show "Please wait, loading samples directory ( / )" when it takes more than 1/2 second to load a samples directory in the sample browser. * Paint automation and peak in sliders with subpixel accuracy. * Make sure the bottom bar volume peaks points always show peaks of a "System out" object, if one exist. * Popup menu: Fix selecting entries with same name. (Fixes the bug that caused instruments to be cloned when trying to select instrument for a track.) * Bookmarks for the sample instrument sample browser. * mouse: "Apply tempo" option to popup menu when right clicking the block tempo multiplier slider * api: getSignature/getLPB/getBPM/getTemponodePlace * Option to turn off GL pause (plus perform a GL pause when opening a popup menu, which I had forgotten). Also turn off GL pause by default now, since it's probably (i.e. hopefully) only necessary if using older AMD or Intel drivers on Linux. * Save note duplicator data + forward events into preset files, plus clone these data when cloning instruments * Refactor audio instrument creation / deletion / etc. Major change. Radium should be more stable when creating and deleting instruments. * windows: Windows file requester filter workaround. Changes 3.7.9 -> 3.8.0: * Don't crash if deleting jack or pd plugin (bug introduced in 3.7.9) * Add filename/linenumber/etc. to undo entries, and add undo entries to crash log. * VST: Print unit in Radium sliders * VST: Don't crash when parameter string provided by the plugin is garbled. * OSX: Fix loading VST plugins with mismatched plugin name and library file name. (And don't abort during startup.) Changes 3.7.8 -> 3.7.9: * macosx: Fix for VST plugins that have other files in Content/MacOS/ than the plugin file itself. * Many band aids for various problems caused by running timers in instrument windows after the plugins have been deleted. Peaks and automation indicator lines on top of the sliders are not updated after undo or redo now, but it will be fixed later. * Code cleanup * api: many new functions and fixes for instruments and undo/redo * Fix computer keyboard release key to stop playing note Changes 3.7.7 -> 3.7.8: * Fix fx text editing when cent text and/or velocity text is enabled * Sampler instrument: Remember loop on/off setting when changing sample * mouse: Don"t add new note or pitch if it"s placed on last legal position * Fix "scroll editor to line" function. * Sampler instrument: Fix loading of "Note adjustment" and "Hold". * Fix "Set instrument for track" -> undo -> redo. Changes 3.7.6 -> 3.7.7: * Update gfx as soon as possible when switching block while playing if edit mode is off. (test code, this shouldn't make a difference) * Color tweaks * Configurable check button color * Configurable line slider color * Configurable button text color * Configurable track slider color * Fix setting high note in pianoroll header. (bug introduced in 3.7.6) * Don't allow adding LPB or BPM with value 0. * Options for trying/using incremental garbage collector * Don't wait one second during startup * Don't redraw twice. (bug introduced in 3.7.6) * Don't crash when changing number of lines for a block with custom signatures * mouse: Try to fix some warnings Changes 3.7.5 -> 3.7.6: * Render block more immedately when switching block when playing song * sampler instrument: Disable portamento test code (was never meant to be enabled). Bug introduced in 3.7.3. This can cause some pitch glides to sound notably different between 3.7.3 and 3.7.6. * Option to turn on/off garbage collector under edit->preferences->various. This can be useful to find out what's causing the gui to freeze sometimes. * Handle MIDI input and update graphics, also when the editor doesn't have keyboard focus. * Read all colors from config file during startup, to avoid reading config file during playback * mouse: Must press shift to delete pitch * pianoroll: Show correct notename for highest visible note (not the note above) * Use already stored value when adding new fx, not mouse position. (Not when adding fx to a MIDI instrument though.) * api: setVelocity -> setVelocityF, createPitch -> createPitchF, createVelocity -> createVelocityF, createVelocity3 -> createVelocity, createFx -> createFxF, createFxNode3 -> createFxNodeF, etc. * mouse: quasi track scroll bar (dragging the track slider now causes the cursor to move left/right). * Fix modifier key handling when cursor is placed on a "text track" * pd: Fix radium_send_blockreltempo message * mixer: Improve check button rendering. Needs more work though * mixer: Improve connection graphics * mixer: Reduced connection line width from 3 to 1.2 pixels * mixer: Put connections below sound objects * Update fx text documentation * Possible to configure mixer connection colors * Adjust some colors * Possible to configure mixer border color * osx: Fix vst tab in preferences * osx: Recursively search for vst plugins * macosx: Enable menu key if using a pc keyboard * Popup menu in blocklist to insert/append/delete block * shift+right mouse deletes track when clicked in track header * shift+right mouse deletes block/playlist when clicked in the blocklist/playlist window. * Make mixer text color configurable * api: playCursorEnabled/switchPlayCursorOnOff * AltGr+up/down jumps to prev/next "text" entry, depending on cursor position, not just prev/next note * osx: Support the MENU button (i.e. the "Right Cmd" key). * Show visually when a note continues playing into the next block * Popup menu options for whether to continue playing note into next block * vst: Try to always show native gui on top of all other windows. * macosx: Fix caps lock modifier key. * Fix keybindings for selecting/solo/etc. track which uses CAPS, plus fix CAPS key on Linux. Changes 3.7.4 -> 3.7.5: * windows: Run low level keyboard hook in separate thread. Hopefully this will prevent left windows key from suddenly showing the windows menu on Windows 7. * osx: Support the 1L1 key on non-iso keyboards. * playlist move up/down buttons * Make slider text color configurable * Don't change play position when play cursor is enabled * Scroll down when adding note, and playing, and play cursor is enabled * If trying to scroll past last line, jump to line 1 instead of stopping at last line. * Fix not smoothly scrolling the last line (bug introduced in 3.7.3) * Keep "glide" when pasting pitches. * Keep "glide" when pasting velocities * Switch glide mode in text tracks by pressing T * api: numSignatures/numLPBs/numBPMs * Possible to hide centtext track if notetext track is not visible * vst: Don't do debug printing in the callbacks * Fix vst sliders in radium might not always update if the slider was updated in the native gui. (The bug is quite unlikely to have ever happened though) Changes 3.7.2 -> 3.7.4: * osx: Fix modifier keys when clicking mouse * Hack fixes for positioning leftmost track. We dont show half-tracks anymore on the leftmost part of the editor since its both confusing for the user and complicated to implement. * Fix deleting FX node by shift+right clicking * Handle corner case situation where if we play really extremely fast (probably a billion times faster than anyone ever will ever have use for), editor stops moving. * Make velocity text a bit more yellow/brown * Option to show key code in the editor. Useful when reporting non-working keys. * Cent text track. Enable by right clicking the track header. It is also enabled automatically if there are notes with cents not equal to 0, and other "text" tracks. * Don't paint pianoroll if it's to the left of the track area. * Recreate sound object if pasting a track using a deleted sound object (This also fixes crash if the track with the deleted sound object contained FX) * Use floats for transpose in the note duplicator. Step also changed from 1 to 0.25. * osx: Disable fullscreen (since it makes the program crash) * player: Possible to change play position while playing * Copy audio instrument. (select "copy instrument" in the track header left clicking or pressing F12) * Remove some potential crash bugs by disallowing to replace/load permantent sound object (i.e. buses + main pipe) * Fix instrument assignment for track when selecting new audio -> load preset from track header * sampler: Set browser to the dir of the current sound file * Option to clear all muted tracks (under Edit -> Block) * range paste: Options to cut note at cursor (if any) and pasted notes at next note, and option to automatically scroll down after pasting * AltGr + left/right arrow changes all velocities of a note, not just the first velocity. * Only show Blowfish song in the Project menu on Linux * Fix focus issues for the line requester (e.g. when asking yes/no questions) * Show correct color for current sample file name * OSX: Workaround for various bugs in QColorDialog on OSX. Changes 3.7.1 -> 3.7.2: * Upgrade s7 scheme interpreter * Render: Use thin stipled lines for those vertical fx lines (instead of showing nothing, like now) * Show mixer help window in the help menu, * Right mouse button + shift is now the general way to delete things. * mouse: clean up popup menues a bit * Fix Dry/Wet and Pan slider display * Mouse: Add glide option to fx/velocity/pitch and clean up various tings * popup menues: Close popup menu after clicking on a checkable item * Only draw pianonote text if it is approximately inside the pianobar is the current pianonote * Show the "Please wait, saving backup" message in the editor, not in a popup window * Make automation colors more distinct * Show percentages in bottom bar for automation values (it's impossible to show the real values without doing some tricks we really dont want to do) * FX text (similar to velocity text). Enable by right clicking in the track header and select "FX text". * Only disable autorepeat if the editor currently has keyboard focus * Another attempt to fix resize * Make velocity/fx/mixer help windows non-modal Changes 3.7.0 -> 3.7.1: * Update scroll length in bottom bar when pressing Ctrl+1/2/3/4/5 * Hide all pianoroll track headers from previously visible block when switching to a new block * Set correct x1 value for track slider * Behave correctly if trying to nest Undo_Open / Undo_Close calls. The user still gets a warning though (because there shouldn't be any situations where this is needed). Changes 3.6.9 -> 3.7.0: * Fixed various issues when recording MIDI * Show correct line when playing a block with a low multiplier value * Make sure editor is updated after resizing * Popup menu when right clicking on track header. (copy track / insert track / delete track / etc.) Changes 3.6.8 -> 3.6.9: * Write "Rec." again immediately at the top of a track when starting to record notes via MIDI. * Fix output level on the tracker module template song file. (It was too high and created distortions) Changes 3.6.7 -> 3.6.8: * New and much better tracker module importer. * Optionally edit velocities by text instead of graphics, like in a normal tracker. * Fix race condition bug when replacing instrument. Changes 3.6.6 -> 3.6.7: * Only pause GL thread 200ms (instead of 1 second) when creating new Qt widgets Hopefully that is enough to avoid crash in buggy gfx drivers. * Create a bunch of track headers during program initialization to avoid creating one while playing and causing everything to freeze for one second. * Windows: Disable completely non-native file requesters and file requester filters. None of those works properly (or at all) with Qt on windows. * Render: Draw range better * Copy/cut/paste automation range * Render: Disabled red "Rec" update, cause it caused block to be rendered twice when switching block during playback. * Various OpenGL rendering fixes. Stuttering and/or negative jumps should not happen when changing block or re-render the block in other ways. * Fix possible (but in case, probably very rare) crash and/or undefined behavior when changing instrument for a track. Changes 3.6.5 -> 3.6.6: * Various color tweaks * Don't mistake shift+space or altgr+space as a "play block" command if releasing the shift or altgr key before the space key * Make effect automation lines have the same color every time (i.e don't select a random automation color). * Render: Always paint the small pitch indication lines, and always draw text on top of everything else. * Don't show middle part of very long vertical effect automation lines * Don't erase the stored vblank value when opening the preferences window Changes 3.6.4 -> 3.6.5: * Color tweaks and stronger track background colors * Put back HOME/END keybindings for scrolling to the start and end of a block. * Fix tempo automation undo * Don't crash if deleting the rightmost track in a block * Sample instrument: Don't crash if setting illegal start pos * Cleaned up resampler code. Don't crash if playing too fast. * Fix gfx render freeze if tempo is extremely high Changes 3.6.3 -> 3.6.4: * Lighter default peak colors * Remove the "0x00" prefix for all effect names in the multiband compressor * Draw thicker automation lines * Turn off some warnings in RELEASE mode * Fix assert window showing up when pressing delete two times in the velocity area of a note * Try to narrow down a cursor-related crash-bug caused by setting number of tracks * Don't count playing time when deciding to take backup * Show a dialog window when taking backup (saving file takes a little bit more time now) * Change block when changing playlist position * Don't stop playing if changing playlist position * Fix play bug which happens after playing a song to the end. (had to select "Play Song" twice before) * Sampler instrument: Start vibrato phase at lowest pitch. Sounds cool, plus that this behavior is compatible with protracker (!). * api: Dont crash if providing non-existing blocknum * Updated s7 scheme interpreter Changes 3.6.2 -> 3.6.3: * Rolled forward again to 3.6.1 and fixed the 3.6.1. player bugs * Using non-native file requester by default on windows. The Qt filerequester doesn't seem so slow anymore. * Fix various keyboard focus issues. * Several deep bug fixes * vst: Dont save and store effect parameters manually. General optimization plus crash fix for the CM 505 plugin. * Faster to save VST plugin presets * vst: Use both .dll and .DLL files * Refuse to start radium if OpenGL version < 2 * Fix rare player freeze when CPU is very busy. * Sleep correct amount of time when waiting for vertical refresh and nothing needs to be redrawn (editor might feel less sluggish) * Fix editor sometimes turning blank while playing * Minor jack shutdown fix Changes 3.6.1 -> 3.6.2: * Panic fix: Roll back to 3.6.0. 3.6.1 contained some deep changes to the player, and those changes doesn't quite work yet. Changes 3.6.0 -> 3.6.1: * Fixed many more bugs found by running ThreadSanitizer. * mouse: After moving a piano roll note, let mouse pointer position be the same compared to the position of the note, as before * Fix mouse pointer type when mouse pointer is inside the tempo multiplier track * Fix mouse pointer type stuck in horizontal mode after changing block tempo * mouse: Option in the piano roll to cut note. * mouse: Always let the selected note get a portamento point, when selecting "add portamento point" in the piano roll. (If the track is polyphonic, it was quite random which note would get the point) * Scroll to the right line after changing block. * Swapped default color 1 and 2 * default colors: Make range visible in a track without an instrument assigned * player: Clear scheduler when stopping to play. I.e. no notes or other types of messages can play after pressing the space key. Changes 3.5.9 -> 3.6.0: * Fixed many bugs found by running ThreadSanitizer. Changes 3.5.7 -> 3.5.9: * mouse: Fix moving piano bar note end position for non-portamento notes * Make writing config file safer (less chance of corrupting the file) * mouse: Don't flicker mouse pointer * mouse: Don't make it possible to change track width when pointer is positioned in the track header * Don't update plugin parameters unnecessary while updating radium sliders. This is a general speedup + fixes some occurences of slighly wrong plugin values. * Fix memory leak when updating instrument widget. This also fixes crash on some VST plugins. * Fix transpose * Fix aftertouch sent out of vst plugins * Fix deadlock in MidiMessages plugin * vst: Clear midi buffer at the correct time Changes 3.5.6 -> 3.5.7: * Fix VST plugins producing MIDI * Fixed some race issues with multi core and the Pd and MIDI Messages plugin. * Fix keyboard focus when clicking in the editor * Mouse: Reset mouse cycle if catching exception. (Avoid the mouse pointer getting stuck in the upper left corner) * Mouse: Not possible to move pianoroll notes outside the pianoroll area * When replacing an instrument, autocreate new name if the name of the old instrument was not edited manually * Don't add System Tremolo effect to the plugin menu * Hold player lock when changing the multband compressor limiter on/off parameter. * Update graphics when changing the line zoom (LZ) value, so that it doesn't look like the cursor changed to a different line number. * Don't play muted tracks when scrolling up and down * Improved multicore scheduling Changes 3.5.5 -> 3.5.6: * Don't run memory validation thread in binary releases. (might have a notable impact on CPU usage) * Compile JUCE code with optimization options in windows Changes 3.5.4 -> 3.5.5: * Fix import MOD files. * Don't crash when showing a VST GUI which starts by showing a pop up, for instance informing about running a demo version. Changes 3.5.3 -> 3.5.4: * Undo changing track width * Windows: Use native file requester by default. The one in Qt can be extremely slow Changes 3.5.1 -> 3.5.3: * Draw current track background in lighter color * Fix pianonote editing * Fix some crashes when opening VST gui and other windows Changes 3.4.5 -> 3.5.1: * Updated to latest version of JUCE (might fix some VST plugins) * Some MOD import fixes * Fix comment window keyboard focus * Don't crash if trying to move a pianonote with velocity nodes below last line * Workaround for more possible crashes caused by Qt focus. * Updated s7 to latest version. (Fixes a few random crashes) * Build: Dont create empty files if faust executable doesn"t exist (no need to do "git checkout audio" anymore if forgetting to touch files after checking out) * Compile with "-Og" in non-release mode, plus running lots of memory validation code. * Fix keyboard focus in vst path file dialog + possible crash on linux with older gfx drivers * Compile with -Wextra * Upgraded to faust 0.9.67 * Must always update editor as well after drawing other things * Simplify end pitch. I.e. set it explicitly, dont automatically glide to the next note. Old songs are converted automatically when loading, but songs that glide to a note in a different block must be converted manually. This is not warned about though. * Try to set default mixer zoom level based on system font size, plus always use font size 12 * Fix mouse state after right clicking a piano note * Fix selecting and moving more than one sound object at once * Multicore: Ensure sane number of CPUs. * Replaced various must_redraw=true with must_redraw_editor=true. I.e. only update editor, not everything, if only the editor needs to be redrawn. * Fix slider painting (the x1 value of the indicator block was painted two pixels too far to the left) * Only redraw editor when changing sample player effects * Option to use native file requesters (may be necessary because of slow qt file requester on windows) * Do not disable garbage collection during playback. Might run out of memory if playing for a while, especially if automating things that update waveforms. * mouse: Don"t limit mouse pointer into the upper left corner if something goes wrong * Remove some unrelated tooltips * Render: Option to set the track background colors to the track color (this is now the default) * api: evalPython (for running python code in scheme) * OpenGL: safe mode option Changes 3.4.4 -> 3.4.5: * Tremolo effect for the sampler instrument * Update s7 scheme interpreter to latest version Changes 3.4.3 -> 3.4.4: * Fixed crash reporter on windows, which was broken in 3.4.3 * Updated s7 scheme interpreter to latest version Changes 3.4.2 -> 3.4.3: * Various internal fixes * Exit radium if included file is not found (don't report it as an internal bug when radium is not installed properly) * Som xm import improvements Changes 3.4.1 -> 3.4.2: * Importing fasttracker modules (xm). Quite buggy for now. * Fix common crash introduced in 3.4.1 Changes 3.4.0 -> 3.4.1: * Fix internal ratio bug (less warnings, and probably bugs) * Speed up clearing the mixer. Loading a new song only takes a couple of seconds now. Changes 3.3.9 -> 3.4.0: * Fix import large MIDI files in windows * crashreporter: Ask linux users not to report bugs caused by non-properly compiled versions of Radium * Don't crash if reporting assert failure before mixer has been initialized * Sampler instrument: Add vibrato effect * Updated info texts about various gfx drivers on Linux shown during startup * Remove common warning about non-existing tracks when switching blocks. * Import mod files. Pitch changes, vibrato and portamento effects missing. * Only write ":" in the track header when the trackheader only spans one track Changes 3.3.8 -> 3.3.9: * Workaround for fx rendering crash * Linux: Don't report that crash was just an assert. * Pause GL thread when opening a QLineEdit widget. Should fix more crashes caused by buggy gfx drivers Changes 3.3.7 -> 3.3.8: * Fix glitches in sound when opening a VST GUI while doing automation * Don't move end position of previous note automatically if pressing ctrl * Make it possible to move last position of a note below the start of the next note if pressing ctrl key * Don't limit where to set a pianobar note note start/end position based on prev/next note positions when the moving note has portamento * Don't crash when trying to move the start of a note before the start position of a previous note on a different subtrack * qjackctl: Import newest version from upstream * qjackctl: Fix autocomplete bug for the "Server prefix" text field * qjackctl: Show a "please wait, probing" window if probing audio hardware takes more than 1/2 second. Also made it possible to cancel probing if it takes really long time. * qjackctl: Only probe hardware once * qjackctl: Made hardware selector combobox wider Changes 3.3.6 -> 3.3.7: * Don't show assert window if trying to load broken wave file * Undo/Redo: Move cursor back to where the undo event was made * Fixed keyboard handling for OSX Most important changes 3.3.5 -> 3.3.6 * Windows: Don't show the qt context menu when configuring block * Don't start to navigate menues when using left alt as a modifier key (bug introduced in 3.3.5) * Fix QWERTY_F key (bug introduced in 3.3.5) * Fixed "-S" argument check for jack on windows * Always swallow EVENT_ALT_R to avoid Qt starting to navigate the menues * Ignore autorepeat keyboard events, except for arrow keys and page up / page down * Update editor graphics immediately when pressing the "Edit" button, and write "Edit On/Off" in the status bar, not "MIDI Input On/Off" * Fix open MIDI preferences dialog * Dont run the bubble example when pressing the 7 key * Dont crash if trying to load a soundfont preset name containing non-ascii characters * Clean up keyboard handling a bit, and remove unused setxkbmap build. * Don't reset undo if loading fails * Add "Mouse" and "Menues" to help menu * Fix crash when displaying peaks for soundfonts (and sometimes normal samples too) in the sampler instrument Most important changes 3.3.4 -> 3.3.5 * Mainly use scancode to find key on Windows. Should solve various problems, for instance note order on non-qwerty keyboards * More organized color order * When right-clicking a pianonote, give option to either delete note, delete portamento, or add portamento * Also reset current color in the color dialog color when resetting color * Set normal mouse pointer when leaving editor * Made button color completely configurable * Diffentiate between error and warning, and make it clear that radium has NOT crashed when showing the assertion reporter. * Set assert reporter window title to "Report suspicious state" (not "crashreporter.exe"). * Don't show assert window when trying to create a velocity after note end Most important changes 3.3.3 -> 3.3.4 * Adjusted minimum OpenGL version to 3.0 * Initialize monotonic timer manually. Fix startup crash seen on 32 bit Windows. * Play range loop correctly when block tempo is not 1.0 * Optional play cursor. Instead of scrolling the editor while playing, a red horizontal line moves down instead, denoting the current play position. Enabled when the "PC" button is pressed in the bottom bar. * Fixed some issues with the piano roll and locally zoomed lines * Lots of color configuration improvements Most important changes 3.3.2 -> 3.3.3 * Changed default editor font from Bold to Regular * Loop when playing range * New color configuration dialog. * Not limited to 16 colors * Separated cursor and pianonote colors * Separated peaks and button colors * Possible to configure slider colors * Make it possible to see all popup menu entries if the number of them fills up the screen (the screen must be able to show at least 200 entries at once) * Dont use Qt3Support anymore * Preview samples in both left and right channel in the sampler instrument file browser, not just the left channel. * Improved font rendering, especially for white text * Enable multi core by default, using QThread::idealThreadCount() to find the number of CPUs. * Also update sliders when changing vst preset * Don't use saved keyboard octave when loading songs. * Optimized VST preset widgets updating Most important changes 3.3.1 -> 3.3.2 * Possible to select VST presets in the instrument widget * Possible to change name of the current VST preset in the instrument widget * Don't crash when deleting vst plugin (bug introduced in 3.3.1) * Don't add undo if we couldn't create fx node or pitch * Don't assert crash reporter if trying to create an fx node in the first legal position, or the last legal position. Only show assert reporter if trying to create before first legal position, or after last legal position. Most important changes 3.3.0 -> 3.3.1 * Fix crash during startup on windows 32 bit. Bug (re)introduced in 3.3.0 (the NDEBUG option again). * Fix a copy-and-paste error which caused ppqPositionOfLastBarStart to always have the value 0.0. Might make a difference on some VST plugins. * Automatically uncheck the "GUI" button in the instrument widget if the native plugin gui was closed by closing the window directly. Most important changes 3.2.9 -> 3.3.0 * Windows: Turn off jack "-S" checking in production again. Still doesn't work. * Don't inform more than one time about a newer version of radium * Removed comment in the preferences dialog about MultiCore being an experimental feature. It seems stable. * windows: Use a home made jack process thread to make the unhandled exceptions filter work also when crashing in the main audio thread. * Pause the gl thread for a second when opening a new window or dialog. This might prevent some crashes caused by buggy gfx driver * Turn off modal windows by default for AMD/catalyst and Intel drivers on Linux since the pausing seems to fix the crashes Most important changes 3.2.8 -> 3.2.9 * Windows: Don't start crash reporter all the time when loading and using VST plugins. Bug was introduced in V3.2.5 * VST: load/save FXB and FXP files * Fix note add bug. Dont make it polyphonic unless polyphonic is true. Bug was introduced in V3.2.4. * Update instrument widget after undo/redo (fix for non-moving peaks after undoing/redoing) * Try to fix cpu label width in Windows * Do automatic backup every minute if there are unsaved edits and radium is not playing. The backup interval can be changed in the preferences. It can also be turned off. * Replaced a bunch of calls to RError with calls to GFX_Message (RError was used the wrong way, causing uses messages to be reported as program errors) * Always show message if there is a disk error * Write to temporary file first if saving to an existing file to avoid destroying an existing file if saving fails * Tried to improve stability after jack has shut down. Still not working well though. User should not do anything else than save and exit if jack shuts down. * Fix plugin names in crashreporter when running multi core Most important changes 3.2.7 -> 3.2.8 * Remove sound object from mixer before freeing buffers (might fix mysterious crashes) * Fix audio glitches when changing number of CPUs * Show the crash/assert window for most warning/error messages * Fix a LADSPA bug where sometimes the effects were set to default after undoing a deletion. * api: printMixerTree (mostly for debugging) * Finding peaks is approx. 2-4 times faster by using code from the JUCE SDK. (juce::FloatVectorOperations::findMinAndMax) * Made the CPU widget fixed size. The bottom bar doesn't move left and right anymore. * Removed old sound object scheduling system. Everything now goes through through the multicore scheduler, even when running single-threadedly. * Fixed realtime update of waveforms when changing track volume and track panning * Rewrote bus system. Buses are now just hidden sound object connections. Can in some situations improve multicore performance. * Draw current sound object in darker color when selecting with left button, not only right button Most important changes 3.2.6 -> 3.2.7 * Mixer: Must press left mouse button on a sound object to select it. Dont just set the the one currently under the mouse. * Added volume value to connections. This is both necessary to later optimize/simplify the bus system (especially in conjuction with multi core), and to be able to control the volume of a connection. * Dont start making an audio connection in the mixer if the start pos doesnt have inputs or outputs * Fixed a bug which could cause the program to freeze when deleting sound objects, loading songs, undoing, redoing, etc. Bug was introduced in V3.2.2. *** Radium between V3.2.2 and V3.2.6 are particulary unstable. *** * Make sure song comment window is shown on top of all other windows after loading a song. Most important changes 3.2.5 -> 3.2.6 * Fix: 1. General realtime performance, and: 2. Crashes when multicore is enabled. (Don't use QString in realtime code, and especially don't access the same QString from several threads simultaneously.) Bug introduced in 3.2.5. * Always block crash/assert-reporter in non-RELEASE mode, and never block in RELEASE mode * Avoid showing assert reporter when exiting after jack has shut down. Most important changes 3.2.4 -> 3.2.5 * Start crashreporter also when just hitting an assert. * Improved crash reporter. Should hopefully work better in Windows. The reports also includes a simple event log now. Most important changes 3.2.3 -> 3.2.4 * Make all dialogs modal by default if using intel or binary amd driver on linux (to avoid crashes) * Ensure all notes starts before they end, when recording from MIDI input. * Various note positions and value validations * Unset OPENSSL_CONF environment variable during startup. Fixes rare crashes during startup. Most important changes 3.2.2 -> 3.2.3 * Fix qt version mismatch problem on linux binaries (and possibly windows and osx as well) * windows: Fix search for missing "-S" argument for jackd. * Replaced the use of QSemaphore with a native one based on this code: https://github.com/preshing/cpp11-on-multicore/blob/master/common/sema.h The previous code could in rare situations cause priority inversion. * Improved multi core a lot. Seems to work fine on Windows now. Most important changes 3.2.1 -> 3.2.2 * Show message during startup if there is a newer version of the program available. * Reorganized the edit menu a little bit * Moved show/hide line numbers configuration from the menues and into the preferences dialog * Windows: Don't inform that Radium was unable to find jack process command line arguments in RELEASE builds * "CPU": Show min/avg/max instead of just max. Useful while figuring out multi core implementation. (it's not working that well on Windows yet) * Remove some unnecessary locking/waiting in the multicore scheduler (probably has very little impact on performance though) Most important changes 3.2.0 -> 3.2.1 * Another default color scheme. A little bit darker and white text. * Increase default font size from 10 to 11 to get less flickering when using a white-on-black color scheme * Make color schemes with white text on black background look better. * Shut down jack at the right moment. Avoids crash at exit. * Fix some mixer UI/GUI issues. * Changed various button handlers from "pressed" callbacks into "clicked" callbacks. Fixes buttons stuck in pressed state. * Removed the "scrollplay" and "window update" options from the menues. * Moved the MIDI preferences stuff from the MIDI menu and into the preferences dialog * Band-aid to avoid crash if song is saved with a patch that has no corresponding chip. * Tooltip for the quantization value in the MIDI post-recording dialog. * Also delete elinks when deleting all connections, not just the links. Fixes crash if redoing an undoing of a deletion of a sound object. * Improve multi core by running most cpu intensive sound objects first * CPU: Show the maximum CPU usage which was measured during the last second, not just the current CPU usage. * Include the custom qjackctl in the 32 bit windows binaries, not just the 64 bit binaries. Most important changes 3.1.4 -> 3.2.0 * Include a custom version of qjackctl in the Windows version. (i.e the "Jack Command" program) Hopefully there will be less struggle to start jack now since this version has better default options and some bugs fixed. * Ensure all source files are compiled with sse support (-mfpmath=sse -msse2) in the binaries. * Move scrollplay and the "multiply etc." option into the preferences dialog under a new "Edit" tab. * Save scrollplay in config file * Rename the default "Chorus" and "Reverb" buses to "Corus Bus" and "Reverb Bus" * Moved OpenGL, CPU and VST preferences into a new Preferences dialog. * Dont stop processing plugins if using too much CPU. Some plugins might overcompensate when they start again. Instead just stop playing, and if that didn't help, stop processing plugins as well. * Fix soundfile saving (don't stop because using too much CPU) * Show warning message if unable to acquire real time priority * Multithreaded audio processing (i.e. "Multi-core") Most important changes 3.1.3 -> 3.1.4 * If plugin is not found during loading, give option to select a different plugin * Show the sound object menu when right-clicking on an existing sound object in the mixer (doing the same as "replace" in the instrument widget) * Add "replace" button to instrument widget * Send inital values first time a "MIDI Messages" object is playing. * Fix plugin info dialog * VST: Update Radium sliders when changing controllers in native GUI. This indirectly causes automation to update the sliders as well, but that's actually what happens underneath for VST plugins too, so that's a good thing. * Rendering: Reset gfx timing when jumping to the start of a block. (removes the "dragged by a spring" effect) * Linux: Show info during startup about the Gallium AMD OpenGL driver (if using that driver) Most important changes 3.1.2 -> 3.1.3 * Don't crash if reducing the number of lines in a block. (This also fixes some crashes when importing MIDI file) * Sort notes by pitch for same-positioned notes. * Handle gracefully if jack shuts down. (dont freeze program) * Fixed moving the start of a pianonote when the pianonote has pitch changes. Most important changes 3.1.0 -> 3.1.2 * Fix automation after loading song * Fix a memory corruption for plugins with more than 2 channels * Send automation messages when track is ON, not OFF Most important changes 3.0.7 -> 3.1.0 * Weak-link to the Jack library to avoid having to use the included version of Jack. * Don't crash if EL=0 and mousewheeling, plus behave like EL=1 if just scrolling and EL=0 ("edit lines"). * Don't crash if pressing redo after loading a song. * Write notename above notes in the pianobar, and other graphical improvements. * Fix mouse issues when first pitch or first velocity in a note. * A new sound object called "Midi Messages" which can be used to send MIDI messages to other sound objects. Can for instance be used to send pitch bend changes to VST plugins. * Option to show linenumbers instead of bars/beats * Updated ladspa rdf info for the kokkinizita plugins. * Customly compiled LADSPA plugins for OSX, Win32, and Win64. The included plugin sets are now: calf, caps, cmt, swh, tap, and all kokkinizita plugins. * 64 binaries for windows * Include instructions on how to get audio from other simultaneously running ASIO programs in and out of the Radium mixer. Most important changes 3.0.6 -> 3.0.7 * Fix track-width mouse handling when pianoroll is visible Most important changes 3.0.5 -> 3.0.6 * Simple pianoroll (Left Alt + P or Let Ctrl + P to enable/disable) * Fix crash that sometimes could happen if scrolling to rightmost track * Updated s7 scheme to latest version * Some minor changes to VST initialization which might prevent some plugins from crashing during startup. Most important changes 3.0.4 -> 3.0.5 * Always scroll-play when pressing up or down arrow, even "edit lines" is bigger than 1 * Fix more than two vst plugins in the full version * load/save: Fix bug where empty string was saved as "" instead of "_________empty__________", plus hack so that some old songs where this happened can be loaded again. Most important changes 3.0.3 -> 3.0.4 * MIDI: Option to always record velocity Most important changes 3.0.2 -> 3.0.3 * Add options to multiply the number of lines to scroll by the "Edit lines" value * VST: Fix crystal and other plugins using "main" instead of "VSTPluginMain". (forgot this when switching to juce for hosting vst plugins) Most important changes 3.0.1 -> 3.0.2 * Ctrl+J jumps to bar/beat instead of line. (line numbers are not visible anymore) * Don't update effect values for plugin while loading a plugin. Might stop buggy plugins from crashing. * Option to record MIDI line by line and monophonic in the MIDI menu. (as before) * Fix realtime color update in the editor when using the color config dialog * Append "-qt4" to the last resort value in find_moc_and_uic_paths.c. (Arch linux fix) Most important changes 3.0.0 -> 3.0.1 * Added a note that the qjackctl "Delay time" value might need to be increased on windows for the system to start up. * Windows: Enable left win key again when radium is not active * Remove the "createVelocity: placement before note start for note #%d" error entirely Most important changes 3.0.rc22 -> 3.0.0 * Bumped version number to 3.0.0 Most important changes 3.0.rc21 -> 3.0.rc22 * Readded calf chorus effect to new_song and demo song. Most important changes 3.0.rc20 -> 3.0.rc21 * Don't show error window if trying to create velocity before start of the first note * build: Check for the steinberg vst headers in check_dependencies.sh Most important changes 3.0.rc18 -> 3.0.rc20 * Compile the windows version with -fno-tree-vectorize since audio/SoundProducer.cpp crashed in windows 8 when using mingw gcc 4.7.2. (that behavior started in 3.0.rc15) Most important changes 3.0.rc17 -> 3.0.rc18 * Fix crash in certain situations if changing instrument for a track with automation data, while playing Most important changes 3.0.rc16 -> 3.0.rc17 * Set octave 4 as keyboard octave in new_song.rad (not 10) * Fix scheduler memory handling. Crash fix. * Turn up main volume on the demo song Most important changes 3.0.rc15 -> 3.0.rc16 * Remember the path of the last loaded / saved preset. * Use the Qt file dialog instead of the native one, since filters don't work in the native file dialog in windows 7 * Fix saving in Windows * Loading and saving presets now saves the whole instrument, not just the slider/button values. * Added "Load Preset" to the plugin menu. * Fix realtime peak updates when changing the slider values for the sampler instrument (again) * Don't create undo if just changing current instrument * Changed lpb from 8 to 4 and bpm from 78 to 156 in the Blowfish song * Clean up bars/beats rendering, and draw a single-pixeled line between all tracker lines again * Upgrade bdw-gc to 7.2f, and add "-g -O2" flags for the build Most important changes 3.0.rc14 -> 3.0.rc15 * vst/linux: Wait for child window to be created (fix for no content in vst window) * Fix memory corruption for plugins with more than 2 output channels when running in 32 bit mode, and more than 4 output channels when running in 64 bit mode. * Fix crash when the cursor is placed on the last line and changing the LZ value. * windows: Provoke crashreporter to kick in when selecting "quit" in the error/warning window * Minor improvement to the vst preferences dialog * VST: Make sure all timing info are defined * Remove support for CFLAGS and LDFLAGS. Seemed like the rtmidi (or possible) juce cflags somehow smitted over to radium somehow. * Fix non-realtime behavior in VST plugins. For instance, audio shouldn't stall for a short while anymore when opening the GUI. * Provide ppq value of the last bar start to VST plugins. * Hack juce into not compiling -march=native. Might fix issues with VST plugins on computers with AMD CPU or older intel CPU. * Don't show a show/hide track popup when right-clicking on the reltempo slider * Hide LPB track in new_song.rad * Draw cents on top of the peaks, not below. Most important changes 3.0.rc13 -> 3.0.rc14 * Windows: Don't abort program if glGetError() returns an error. (i.e. compile the visualization library with the -DNDEBUG option) * Show opengl info, qt version and credits in the "about window". * crashreporter: Include QGLFormat::OpenGLVersionFlags in report * crashreporter: Add running time to report. Useful to see if the crash happened during startup. * crashreporter: Only insert opengl info and plugin name in the first call to CRASHREPORTER_report_crash * tooltip for the MSAA opengl option * Some post MIDI recording tool ui tweaks * Use color #8 for bar num * Tooltips for LPB and BPM widgets Most important changes 3.0.rc12 -> 3.0.rc13 * Metronome * Sample player: Enable looping for all sounds, not just wav * Protect reset effect value with player lock * Protect all remaing calls to Q::exec() with GL_lock() (Linux Intel/AMD gfx card crash fix) * Fix graphical coordinates not updated when changing font size and possible other situations (bug introduced in 3.0.rc12) * Adjust tempo color graph and line number width a little bit Most important changes 3.0.rc11 -> 3.0.rc12 * Show bars and beats instead of line numbers * Rearranged timing tracks order. * Don't show signature and lpb track in the demo song * Update lz tooltip * Protect all calls QFileDialog with GL_lock() (Linux Intel/AMD gfx card crash fix) * Show popup for selecting instrument when right-clicking in the fx area of a track * Update editor graphics when pressing or releasing mouse in the mixer * Don't crash if pasting track containing deleted instrument * crashreporter: Send OpenGL information * crashreporter: Try to make the text clearer about only sending one report per crash * Fix focus issues in the MIDI tools post recording dialog * Adjusted grid track width * More quantization options * Readd chorus effect to newsong.rad * Fixed bug in path resolver * Darker color for measure start beat * Import time signatures from MIDI files * More accurate tempo graph rendering * VST plugins: Never set isLooping to true since we never jump back in time * Improve the examples when adding/editing note/pitch * Add popup menues to show/hide the time tracks * Ctrl+J jumps to line * Time signature track * Hide some menu entries in win/mac that only works in linux Most important changes 3.0.rc10 -> 3.0.rc11 * Make the default track volume 100%. (MIDI recordings should not sound differently when played back) * Windows: Fix left alt key * Improved waveform graphics rendering. Improved quality and put a limit on cpu usage * Make the fluidsynth instrument support pitch wheel and control change when played directly from MIDI. * Fixed a few MIDI input issues * midi/alsa: Use SCHED_RR for input threads, not SCHED_OTHER. * Improved PPQ/BPM calculation * Crashreporter: Detect currently running plugin * Linux: Don't report that Nvidia users have AMD card. * Pause plugins for 5 seconds if using too much cpu * Show a "stop playing" button in the realtime warning message window. * midi: Send all raw midi data from input into current patch * VST: Send and receive raw midi, not just "note on"/"note off"/ "polyphonic aftertouch". * scheduler: Run events generated by RT_process functions functions right away if they belong to the current audio block * Make sure the sampleposition values genereted by vst plugins are in the legal range * Fix block tempo timing for events generated by a VST plugin (still not tested though, need plugin to test with) * clap: The "time" argument for RT_Process is already a "steady_time" variable. (not necessary to manually generate one) * Ensure event-producing soundproducers are run before the receivers * Pd: Fix MIDI velocity when receiving notes * Show warning/error message as popup window in RELEASE mode. * "About" window Most important changes 3.0.rc9 -> 3.0.rc10 * Render: Write "rec" in the track being recorded (MIDI that is) * Windows: Fix crash if get_windows_command_lines fails * MIDI post-recording tools dialog (make monophonic and quantitize functions) * Proper implementation of PlaceAdd/Sub/Mul/Div (actually just use s7 rational) * Protect g_times_storage with mutex (crash fix) * Use rational number for quantization (no rounding errors anymore) * Allow strings with just one number when reading rational string (grid/lz/quantization) * Add a "split track into monophonic tracks" function * Dont stop playing if adding a stop "note". * Function to make track monophonic destructively * Refactor UpdateReallines to avoid holding the player lock all the time * Dont let error window be a popup window. (Couldn't switch virtual desktop then) * Record MIDI note on/note off accurately while playing, as a MIDI sequencer * Use posix priority inheritance in Linux instead of boosting/unboosting manually + various threading/mutex fixes Most important changes 3.0.rc8 -> 3.0.rc9 * Don't use clang in Linux. SIGSEGV signal is not catched, and crashreporter is not working (tested both 3.4 and 3.5) * Update nouveau warning * Don't give additional warning about mesa if using intel or nouveau driver on Linux. * Use custom THREADING_get_priority/THREADING_set_priority functions for manual priority inheritance (crash fix when using MIDI input). * Update graphics when adding notes using MIDI input Most important changes 3.0.rc7 -> 3.0.rc8 * Both read and write config files as unicode. Earler it only used unicode for writing, and not reading, and that led to growing and growing files on windows * windows: Fix AltGr key * mouse: Fix left win key on windows Most important changes 3.0.rc6 -> 3.0.rc7 * opengl: Update instructions for intel driver * opengl: Show instructions for AMD users during startup * Just show() the comment window, dont run exec() on it * Fix degree symbol in the pan slider (ascii->utf8 fix) * Don't freeze program if moving the cursor beyond the leftmost track when either the lpb, bpm, or the reltempo track is not visible. * OpenGL preferences dialog * Upgrade to latest visualization library from github (fixes for AMD, etc.) * Fix crash when undoing block while playing * opengl: Use TRIANGLES+shader to draw that gradient line above the note name instead of GL_LINE+textile * OpenGL: Dont use GL_LINES. Create lines from triangles instead. Seems like only nvidia draws GL_LINES decently. * opengl: Reduce number of contexts by OR-ing 15 into the color values. Doesnt seem noticable, and cpu usage is reduced significantly * Tweaked how the tracker cursor looks Most important changes 3.0.rc5 -> 3.0.rc6 * build: Remove NDEBUG flag from RELEASE_BUILD_OPTS since it makes radium crash on windows. Strange stuff. * Replaced "" with "(click me)" * Give option to init LADSPA first if initing VST first and TLS is empty * Fix write access check * Don't resolve VST plugins during startup if initializing LADSPA plugins first. Just assume it is a VST plugin if the suffix is right. * Dont show GUI button for gui-less vst plugins. (and don't crash if double clicking it in the mixer) * Upgrade to latest visualization library at github * Fix keyboard handling in windows * Give warning and option to exit if OpenGL is older than 1.4. * Mouse: Fix one-track blocks * Clap plugin skeleton Most important changes 3.0.rc4 -> 3.0.rc5 * Workaround for empty TLS when loading VST plugins (Fix for u-he plugins) * Support VST shell plugins * Fix VST GUI close and re-open (not just show/hide window) * VST sub menues * Only keep LADSPA plugin libraries in memory when they are used * Cleaned up native keyboard handling a little bit * Force message window in front * Various OSX fixes * Improved gfx driver warnings * Give specific information about Intel GFX, instead of warning about using MESA * fix "./" in the sample file requester * More unicode fixes Most important changes 3.0.rc3 -> 3.0.rc4 * Make sure packages are not built with -march=native for the binaries * Fix nasty memory corruption bug (introduced in 3.0.rc3) * Calculate current BPM from beat position values (used by VST plugins) * Always show cents if cents!=0 * Always show notes graphically when noteshowtype==GFXTYPE1 * Right mouse button reset slider values in the editor * Show warning if there is no write access to the binary directory Most important changes 3.0.rc2 -> 3.0.rc3 * Fix pd plugin on fedora 21 (and other distributions having wish8.6) * Fix various crashes related to changing the number of visible lines while playing * Use Unicode everywhere. Don't crash if running Radium in a non-ascii path. * Fix "use last estimated vblank value" button * Fix clang 3.5 compilation * Give specific warning if using the Nouveau driver * Fix memory leaks when loading samples Most important changes 3.0.rc1 -> 3.0.rc2 * Ignore environment CFLAGS so that binary is not built with march=native. Most important changes 3.0.beta2 -> 3.0.rc1 * Mouse handling rewritten * Various graphics enhancements * Lots of bugs removed * Lots of features added Most important changes 3.0.beta1 -> 3.0.beta2 * Set CMAKE_BUILD_TYPE for Visualisation library to RelWithDebInfo Most important changes 1.9.x -> 3.0.beta1 * Rewritten editor graphics. Using OpenGL instead of Qt. * Smooth scrolling. Most important changes 1.9.42 -> 1.9.43: * Remember and edit jack port names * Removed use of libiberty.h. Also add check for -liberty in check_dependies.sh * Pd: Simplified API a bit and added r_time.pd * Simplify install instructions * Also exit crashreporter if main program crashes extremely hard * Also reset patch timing when stopping to play * Pd: Upgraded to latest libpds. It contains a bunch of new radium entries in the Put menu * Pd: Finishing the new API. Various fixes, improvements, documentations * Make sure FX are scheduled with highest priority (i.e. ensure effects are sent out before note on), plus clean up the scheduler priority system * Pd: pipe help patches, and Note_Off_Position.pd example patch * Pd: Message for setting block reltempo * PD: Finishing the note api * Fix bug in scheduler * Pd: Add native functions for sending and receiving notes. (r_note_on, r_note_off, and radium_receive_note_on and radium_receive_note_off messages) * Pd: Fix duration bugs in r_line and r_subline * Fix voice is not turned off * Use float for notenum everywhere, and use id as note identifier. * Pd: Frame-accurate time information + line and subline duration * Temporary fixes for crashing if deleting System Out. * 1024x800 tweaks * Various smaller bug fixes and internal improvements Most important changes 1.9.41 -> 1.9.42: * Support 1024x800 screens * Add show/hide buttons for sample browser and plugin controls. Most important changes 1.9.40 -> 1.9.41: * Fix VST plugin scan Most important changes 1.9.39 -> 1.9.40: * Temporary fixes for crashing if deleting System Out. * Ask each 30th seconds if continuing searching for vst plugins. (prevent program from spending a long time if, for instance, searching root) Most important changes 1.9.38 -> 1.9.39: * Never disable the voices widget (instrument widget) Most important changes 1.9.37 -> 1.9.38: * Fix crash-bug when inserting lines * Add "dontshowagain" button to RT_Message * Give proper warning when jack port init fails, and dont crash Most important changes 1.9.35 -> 1.9.37: * Add "All files" option to the file requesters * Proper postfix filter in filerequester when importing midi file * text draw: Fix for crash when painting ranged notes with subpitch * vst: Return correct samplePos in audioMasterGetTime * Fix GFX_Menu not being able to return selection higher than 9 * Pd: radium_time message (containing time and line information) * Non-OSX: Search for VST plugins recursively * Get "keys" file path the same way as color and config, plus support comment after key * Bottom bar and mixer widget tooltips (Atte Jensen) * Atte Jensen's patch to read key names from ~/.radium/keys * Make left alt open menues * Fix ESC and Arrow keys while navigating menues. * Fix keys for non-US language setting * Reset Font size resetted to the default font size, not user font size. Fixed * New event keys: CALCULATOR, MAIL, HOMEPAGE * Add missing key events, such as 0R1, LR1, etc. * Turn off drunk velocity by default * Changed default ADSR(+H) values to neutral * Put the instruments first when selecting track instrument (F12) * Always write cents if track is wide * Fix keyboard modifier keys * Configurable line separator opacity * LPB line coloring (opacity can be set in edit -> global config) * Renamed "MIDI input on/off" to "Edit On/off" (because that's what it really is) * Update midi input checkbutton when pressing esc * Fix SPS spinbox focus * Only show song files in load/save requesters * Added $HOME/.ladspa to the list of ladspa paths, when LADSPA_PATH is not defined * Instructions on where radium gets menues.conf and keybindings.conf * Use $HOME/.radium/menues.conf and $HOME/.radium/keybindings.conf if they exist * Mapped XK_ISO_Level3_Shift to EVENT_ALT_R * Fix open editor when editor is "emacs -nw" * Make escape key exit string req, same as return * Add "import radium as ra" in top of keybindings.conf, plus example code how to make space play/stop depending on whether you are playing * New API function: isPlaying * Updated ubuntu/debian package list in README Most important changes 1.9.34 -> 1.9.35: * sampler instrument/crossfade: Remove debug printing in realtime code * fast_log_exp.dsp: Fix pun_float_to_int proto in the faust "ffunction" * build: Print out message if a command isn't found (make "which" more verbose) * Pitch area widens when right-clicking inside it, not when moving mouse on top of it. * Add effect to correct track when right clicking. Most important changes 1.9.33 -> 1.9.34: * Disable pd for all builds except linux (since libpds only exists on linux for now) * windows: Add media keys (mute, volume down/up, stop and play). * dont crash when a pitch is deleted while its being moved with the mouse * Avoid memory corruption if settings_version is not in settings * Patch color, step 1: some experimentation (some diffuse colors used in track headers and the mixer sound objects. * When switching to a new block where current line is the last line, set current line to first line instead. * Possible to switch block while playing. * Adjustable crossfade length (when looping) for the Sampler instrument * windows: Add EVENT_MENU button Most important changes 1.9.32 -> 1.9.33: * Pitch glide between notes. Implemented for the Pd instrument, the sampler instrument and all the Physical modelling instruments. * Edit pitches with mouse * Automatically make current track wider * Show Resize cursor when its possible to resize track * mouse: ctrl: slows down, lshift: limit horizontal, lextra: limit vertial * sampler instrument: Fix saving loop on off button state * Made MENU button open block configuration (left meta is often unavailable) * Made VOLUME/PLAY/STOP/MUTE keys configurable in keybindings.conf * Fixed memory corruption in blocklist when name of block was longer than 20 (!) * Use standard paths for LADSPA plugins if LADSPA_PATH is not set * Give message if a plugin generates abnormal signals, plus zero the signal. * menues: Be more intelligent about which program to open keybindings.conf/menues.conf/externals_list.txt with. * pd: Upgrade libpds to latest version (Use system clipboard to store cut/copy/paste data (to cut/copy/paste between different pd instances)) * Fix MMD loader * Note play indicator visual improvement (blinking circle) * Enable volume up/volume down/mute/play keyboard buttons Most important changes 1.9.31 -> 1.9.32: * Button for setting random effect values. Most important changes 1.9.30 -> 1.9.31: * New demo song: BlowFish! Made by www.magnetophon.nl * Save hashmap elements in sorted order so that songs can more easily be compared textually * Menu entry to show name of all included pd externals * Help menu options to edit keybindings and menues * Song comment dialog * Fix "Switch Window Configuration" menu option * Removed "Error. y2>=window->height: ..." error. Just print to stderr instead. * Removed the "Something strange just happened in the function Blt_markVisible" warning (print to stderr instead) * Option to set number of scrolls per second. Scrolling too often can be tiresome for the eyes. * Make it easier to connect objects and see connections in the mixer, plus adjust object sizes * Patchbay sound object * Fix crash loading Soundfonts in the Fluidsynth and Sampler instrument * Show stars around filename if theres unsaved data * When quitting or loading, only ask sure/yes/no if edited since last save. * Change "Set Patch For Track" to "Set Instrument For Track" in the instruments menu. The word "patch" should not be exposed to the user anymore. * Be able to load files with DOS char set * Changed internal radium block size to 64 (similar to Pd) * Sending note events between sound objects (green lines) * Enable undo for on/off effect controllers * Pd extended is included as a sound object. 921 externals are included. GUI is working. Several instances is working. Can be used to write both audio effects and note effects. * Fix qt paths on Archlinux (Javafant/archlinux) * Many minor bug fixes Most important changes 1.9.29 -> 1.9.30: * Fix for saving floats in wrong format for certain country settings * Always show slot indicator in mixer gui Most important changes 1.9.28 -> 1.9.29: * Make it compile Most important changes 1.9.27 -> 1.9.28: * Revert back to fausts denormal handling. Hopefully fixes crash on CPUs without sse2. * Fix vst plugin memory corruption Most important changes 1.9.26 -> 1.9.27: * Undo/redo for the compressor. Most important changes 1.9.25 -> 1.9.26: * Fix union compilation error. Most important changes 1.9.24 -> 1.9.25: * System compressor * Compressor and equalizer GUI can be shown/hidden. * Use fast log/exp functions for the multiband compressor. (Huge improvement in CPU usage for the demo song) * Fixed key used for shared memory in crashreporter. * Various Most important changes 1.9.22 -> 1.9.24: * Crashreporter works in Windows. * Write settings to disk when selecting Set Default Editor Font * Dont crash when using MIDI menu unless the current instrument is a midi instrument * Workaround for bug in newer versions of libbfd, causing compilation to fail. Patch from James Morris * Wait to handle events until program has started. Hopefully fixes a crash reported by the crashreporter once. * Remove check for jack in rt midi in check_install script. Most important changes 1.9.21 -> 1.9.22: * Crashreporter. * Linux version works properly without first cd into the path of the radium binary. Most important changes 1.9.20 -> 1.9.21: * Change system font to Lato Black (http://www.latofonts.com) * Fix crashes on Windows related to garbage collection. (Could for instance happen when loading the demo song) Most important changes 1.9.19 -> 1.9.20: * alsa: Fix name of input port, not always use "in". * Menu option to GFX_message Most important changes 1.9.18 -> 1.9.19: * All stops are hard stops (Fix for stopping not always stopping sounds) * Loop on/off button for samples * Custom GFX for checkboxes and pushbuttons * Fix color for qcomoboxes. * Run check_dependencies.sh before making packages * Remove separator between Reset and Help Most important changes 1.9.17 -> 1.9.18: * Remove loop from guitar sample in demo song Most important changes 1.9.16 -> 1.9.17: * Fix alsa midi input. (two ports named "in" made chaos) * Radium can be used as midi sampler now. Only one instrument is supported though, but as a work-around, several Radium instances can run simultaneously. * Get wav loop points from smpl chunk, not by using Loop Start/Loop End cues * Support looping for wav files with more than one LIST chunk * Less verbose when pressing keys * Remove textborder and minnodesize options Most important changes 1.9.15 -> 1.9.16: * Circumvent confusing GC_is_disabled API (fix for playing sometimes taking many seconds to start) * Dont update gfx from jack thread (horror) Most important changes 1.9.14 -> 1.9.15: * Update linenumber width (fix for blocks with more than 1000 lines) * Fix building packages when theres no python2 executable * Fix import midi files with many notes in tracks in non-polyphony mode * Remove limitation on delete track Most important changes 1.9.13 -> 1.9.14: * Remove some divide by zero bugs Most important changes 1.9.12 -> 1.9.13: * Many gui improvements. Adjusted colors, etc. * Switch shift and right-alt keybindings for left/right arrow. Now: * Right Shift + left/right moves cursor to previous / next track * Right Alt + left/right changes velocity for note playing under cursor. * Need to press altgr or right shift less than 0.25 seconds to play. * Radium doesn't freeze when trying to play after it has been running for a few hours. * Dont create block undo too often. (Most notable when changing velocity using keyboard) * Don't reset temponode size when zooming. * Fix pesky memory bug, sometimes causing the program to quit because it ran out of memory. Graphics should also be snappier in some situations after this fix. It was caused by the gfx queue growing and growing when QWidget::paintEvent wasnt called directly after drawing something. * Doesn't add the first caracter in the shortcut starting a line reader. Was only a problem in windows. * Dont crash when pasting block in certain situations. * Remove reading of uninitialized memory in slider painter. Most important changes 1.9.11 -> 1.9.12: * Fix various horrible bugs for those with non-C locale settings Thanks to "DoosC" for helping to debug. * Various graphical improvements * TAB switches between common window configs * Show message box if parsing soundfont file fails * Add -Wall option to RELEASE build * Make track headers of current instrument more distinct * Larger window during startup Most important changes 1.9.10 -> 1.9.11: * Fix missing sound on AMD phenom processor. Thanks to DoosC for helping to debug. * Disable text border by default (except for line numbers), and ignore saved text border setting * Ignore minnodesize and use font height*2 instead. * Only show gfx nodes for the track the mouse is currently placed over. * Implement reset font size for qt * Demo song audio adjustments * Set default colors/fonts menu options * Qt: set DontUseNativeMenuBar on all systems, not just osx. Menues requires mono font to look right (fix for unity) * Dont stop playing when changeing patch for a track * Various graphical improvements Most important changes 1.9.9 -> 1.9.10: * Use x instead of STP. Idea: Damir Sijakovic Most important changes 1.9.8 -> 1.9.9: * Better looking temponodes. Most important changes 1.9.6 -> 1.9.8: * "make install" should work without first running the program. * Fixed denormals on 32 bit Linux. (-mpmath=sse) * Shift+left/right to change note volume works even if cursor is not placed on the same line as the note name. * Fixed zooming-in-a-lot bug. * Breakpoint nodes for velocity lines are only shown when mouse cursor is placed in the track. * Breakpoint curves for velocity replaced grayed areas. (looks much better) * Waveform data is shown in the editor for the sampler instrument. * Pan-per-note for the sampler instrument. Means that the track panner works for that track only. * Fixed samplefile font in sample file selector. * Improved graphics for breakpoint curves/nodes for effects. * Different panning algorithm. (Dont just lower volume in one channel on stereo files) (Warning: may change sound of existing songs) * Remove -mtune=native for linux builds. * Linux: Use standard paths for lrdf files * Instructions on how to compile from git Most important changes 1.9.3 -> 1.9.6: * Undo sample change * Text looks better. * Upgrade bdw-gc to 7.2d * Play block when pressing "Alt Gr" or Right Shift alone. * Menu improvements and clean ups. * Gradient color tempo-show track. * Midi Input port can be configured. * Radium window icon * Filename is shown for the Sampler Instrument and the FluidSynth instrument * Current "chip" (mixer object) is drawn in more distinct colors. * Fixed release value in Sampler instrument. * Notes can be added while playing. (works quite okay) * Keyboard is functional in the font and color setting windows. * Menu option to configure system font. * GUI should look okay also for other system font sizes than 8. * Chip (mixer object) name is updated properly. * Demo-song clean-up. * The looks when zoomin in on a single line is cleaner. (Left shift + up/down) Most important changes 1.9.2 -> 1.9.3: * Never expand editor area when changing track width * Various build fixes from Dominique Michel * Use system font size for menues, not 8 * Adjust slider text position * Dont crash if loading plugin fails Most important changes 1.9.1 -> 1.9.2: * Give editor keyboard-focus when clicking it * Option to set number of lines to scroll when adding notes. (suggested by Florian Paul Schmidt) * Right click to reset slider value * Properly load samples. (Thanks to Erik de Castro Lopo for explaining the libsndfile API) * Avoid playing samples two times (almost exactly on top of each other) when clicking the filename of a sample. (Bug found by Florian Paul Schmidt) * Make bindir and libdir overridable in the Makefile. Requested by Dominique Michel to easier make ebuilds for Radium. * Support several paths in LADSPA_PATH (Bug reported by Florian Paul Schmidt) * Fix readline build errors (Bug reported by Florian Paul Schmidt) Most important changes 0.69.3 -> 1.9.1: * Audio. * A quick-to-use modular mixer. Jack ports can be inserted anywhere. * VST plugins and instruments (native, not via wine) * LADSPA * Fluidsynth instrument * 20 STK instruments. (Physical modelling) * Sampler instrument (soundfiles, xi instruments, soundfonts) * Multiband compressor * Built-in filters and equalizers. * Simple arpeggiator * Drunk input velocity * Various GUI improvements * Pitch expand made available in the menues. * Tapiir plugin * Zita reverb plugin * Demo song * Reconfigured keybindings * Various bug fixes Most important changes 0.69.2 -> 0.69.3: * Fix font update problem after changing size * Add Append Track function. Using F key, same as Append Block. * Add forgotten Swap Tracks function to menues * More defined editor color * Changed default build to use Qt for visual on Linux. QImage seems to be as fast as GdkPixmap. Most important changes 0.69.1 -> 0.69.2: * Graphics is updated after changing font * Dont clear graphics to the right of rightmost track * Check graphic update regularly instead of the player signalling the main thread * Bug fixes and source cleanups. Most important changes 0.69.0 -> 0.69.1: * Faster and fancier graphics for Windows and OSX * Use less memory Most important changes 0.68.9 -> 0.69.0: * Less automatic increase of window size * More shortcuts for keypadless computers: Left Shift + 0...9 : Select track Left Ctrl + 0...9 : Select track on/off Most important changes 0.68.8 -> 0.68.9: * Snappier graphics. * Fix graphics after loading * Better keybindings for keypadless computers * Changed solo track function to switch between solo track and all tracks on, depending on whether it was on or not. * Don't crash when exiting while playing Most important changes 0.68.7 -> 0.68.8: * Fix colors and font on mac. (The default configuration file was not found.) Most important changes 0.68.6 -> 0.68.7: * Update status bar also if mouse button is not pressed. * Print track volume and track pan in status bar also when mouse button is not pressed. * Remove GFX artifacts after loading. * Enable RELEASE build for OSX binary. Most important changes 0.68.2 -> 0.68.6: * Windows and Mac OS X port. * Replaced GTK Requester and GTK popup menu with Qt code. * Focus fixes * Fix Qt build. (GTK is still the default on Linux, but Windows and OSX only uses Qt.) * Fix Add Instrument menu option. (F12) * Qt: Ignore TEXT_BOLD font flag. Let the user decide instead. * Fix CLang 3.0 compilation on Linux. * Qt: Check periodically if program should quit. * Make Radium work without write accesss to binary folder. * Display correct Instrument after loading. Most important changes 0.68.1 -> 0.68.2: * Fix left mouse down when selecting font or FX. Most important changes 0.68.0 -> 0.68.1: * Clean up jack when exiting * Proper fix for lost KDE left mouse events in Ubuntu 12. * Requester focus fixes * Use bold font by default Most important changes 0.67.3 -> 0.68.0: * Use GTK popup menu for selecting FX * Replaced use of xterm with GTK widget. * The "X11_Qtstuff" is not needed anymore * Windows version is fully functional, except keyboard handling. * Various keyboard focus fixes. * Qt: Move wheel event handler to the main window. Make the mouse wheel work everywhere. * Fixed nasty list bug which caused player bugs. * Removed setproctitle. Radium is now a normal executable. * End Ctrl+C process when main process dies * Various tweaks and fixes. Most important changes 0.67.2 -> 0.67.3: * Checkbuttons for system style and system color * Fix embedding * Don't crash if cancelling import midi * Don't crash on Ubuntu if setproctitle was already installed * Fix SpinBox focus * Various windows fixes Most important changes 0.67.1 -> 0.67.2: * Fix make install * Mingw fixes Most important changes 0.67.0 -> 0.67.1: * Fix colors Most important changes 0.66.1 -> 0.67.0: * Ported GUI to Qt4 (Editor graphics is still written in GTK2, running in an embedded wiget.) * More colorful default colors * Fix left mouse in KDE * Various build fixes * Compiles under mingw. (Tested in wine and Windows7, but it doesn't work very well yet.) Most important changes 0.66.0 -> 0.66.1: * Various build fixes Most important changes 0.65.12 -> 0.66.0: * New GTK2 visual backend. (enabled by default) * Looks better and has less focus problems. * Makes it possible to port the rest of the program to QT4 without losing graphical performance. (QT4 is very slow.) (Mixing QT3 and QT4 in the same binary doesn't work.) * RELEASE buildtype. * Various build fixes * Various bug fixes and improvements Most important changes 0.65.11 -> 0.65.12: * Include the gc-7.2c.tar.gz file. Most important changes 0.65.10 -> 0.65.11: * Fix nodeline selection Most important changes 0.65.9 -> 0.65.10: * Antialiased lines * Adjusted tempo colors Most important changes 0.65.8 -> 0.65.9: * Fix race condition for midi input * Remove memory allocation in the rtmidi jack process * Fix broken ringbuffer implementation in rtmidi. (Quick fix, it's probably still broken on some (or all) platforms. Planning to use the portaudio ringbuffer implementation in a later commit.) Most important changes 0.65.6 -> 0.65.8: * Midi input editing. * Removed the custom resize window box. (extremely buggy, and not very useful) * midi: increased latency from 1.95ms to 5ms. (This should probably be configurable) Most important changes 0.65.0 -> 0.65.6: * Setting port for instrument will not crash the program * Many build improvements * Blocklist and Playlist are properly updated when loading standard midi file. * Sample accurate jack midi * Accurate mouse coordinates * Closing the xterm window will not lock the program * Options to turn off overriding of Qt colors and Qt style * Fast jack port probing * Only create one jack client * Works even if python links to python3 instead of python2 * Fixed All Sounds Off menu option * Graphics fully updated after using menu