Fetching contributors…
Cannot retrieve contributors at this time
6020 lines (5229 sloc) 262 KB
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: 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
* Build: Fix building sndlib
* Editor: Fix mark instruments as being assigned to an editor
* 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
* 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,
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
* Make it possible to let the second argument for
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
* 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. (
* 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
* 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
* 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"
* 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
* 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
* 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
* 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
* 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.
* 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,
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
* VST/AU: Might prevent some badly written plugins from crashing in rare
* 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
* 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.
* 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
* 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
* 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
* Audio recording: Never reset the "take" counter when autocreating
* 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
* 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
* API: seqtrackIsRecording, setSeqtrackIsRecording
Changes 5.6.7 -> 5.6.9:
* Linux: Include the 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
* 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
* 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/
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 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
* 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
* 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
* 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
* 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
* 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.
* 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,
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
* 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,
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
* 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
* Mixer: Add "Show GUI" checkbox to the popup menu in the
modular mixer.
* Mixer: Change "Show GUI" entry in the popup menu into a
* 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
* 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,
* 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
* Error message: Fix assertion reporter popping up when when
reporting an error from a different thread than the main
* 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,
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
* 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
* MIDI: Don't show assertion reporter when receiving MIDI
in some situations right after starting to play.
* Crashreporter: Include time since last received MIDI
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
* 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,
* 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
* Playlist: Don't show "Pause player" message briefly when
changing block or playlist position.
* Editor: Popup menu to switch between showing line numbers and
* 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
* 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
* 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
* 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:
* 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,
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
* 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,
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
* GUI: Let all windows obtain keyboard focus by default when
* 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
* 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
* 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
* 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
* API:
* New functions: setMixerStripCommentsVisible,
mixerStripCommentsVisible, getStoredInstrumentEffect,
* 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
* 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
* 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
* Build: gcc4 compilation fixes
* Mixer strips: Buttons to enable/disable plugins and sends.
* Add support for LLVM 4.0.1 in faust2. From
* 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
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"
* 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
* New functions: isDoingRequest, gui_getEditorGui,
getAudioConnectionEnabled, setAudioConnectionEnabled,
undoAudioConnectionEnabled, gui_getParentGui,
gui_drawEllipse, gui_filledEllipse, openExternalWebBrowser,
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
* Documentation: Updated
* Edit: Add keybinding tool tips to the quantization buttons
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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,
Changes 4.9.6 -> 4.9.7:
* Mixer strips: Add option to set number of rows in the popup
* 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
* 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
* 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"
* 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
* GUI: Reset "Half" and "Full" mode when the instrument is
* 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
* 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
* 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
* 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
* 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
* GUI: Show full screen and close buttons on all windows by
* OSX: Fix strange error message during startup about missing
* 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
* 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
* Crashreporter: Make sure window is big enough to show all
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
* 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
* 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
* 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
* 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
* 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
* Ratio GUI: Possible to write floating point numbers.
* Ratio GUI: Writing e.g. "9/b" will be converted to "9/1", not
* Ratio GUI: Writing e.g. "b/9" will be converted to "0/9", not
* Import mod: Fix keyboard focus in file requester
* Progress window: Fix flickering, and fix not always working
* 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
* GUI: First argument to gui_ratio can also be a string or a
* 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
* Let radium_check_jack_status also check opening input ports.
* Make the crashreporter window always pop up in front of other
* 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
* 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
* Add info about whether a plugin is an instrument to the plugin
info window.
* Save old file as <filename>.bak when saving file.
* Inform that Radium should be restarted after scanning plugins
(in case an unstable, but non-crashing, plugin was loaded while
* 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,
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,
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
* 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
* Various fixes to make sure windows are put on top of the
correct window.
* API: gui_addKeyCallback, openPluginManager, addMessage,
gui_setText, gui_setStaticToplevelWidget, getDateString,
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 "<Load New Preset>" 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,
instrumentPresetInClipboard, autoconnectInstrument,
gui_addDeletedCallback, gui_addRealtimeCallback
* Removed: instrumentDescriptionPopupMenu,
* 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
* 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
Changes 4.6.9 -> 4.7.0:
* Various fixes to prevent the s7 garbage collector from collecting
* 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
* 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
* 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
* 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
* Menus: remove "(under development)" from the mixer strips window
* 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
* 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,
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
* 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
* 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
* 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
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
* 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
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
* 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
"" 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
* Fix the default track separator colors
* S7: Don't allow any redefinition of global symbol during
* 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/
* 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
* 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/
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* Mixer: Remove the "Zoom in" and "Zoom out" buttons.
* Mixer: "Reset Zoom" -> "<snake-arrow>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