diff options
author | Robert Jonsson <spamatica@gmail.com> | 2010-10-13 19:34:22 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2010-10-13 19:34:22 +0000 |
commit | 8a2c2824a59d7644e13bc52c9a0ecbd641f21f95 (patch) | |
tree | 064ad3f2bf8daab0ad27b128abd86a9bbdb1e496 /muse2/ChangeLog | |
parent | a27706d9629e8b592cca4659f865b70adef24e6d (diff) |
new branch muse2, first checkin
Diffstat (limited to 'muse2/ChangeLog')
-rw-r--r-- | muse2/ChangeLog | 3703 |
1 files changed, 3703 insertions, 0 deletions
diff --git a/muse2/ChangeLog b/muse2/ChangeLog new file mode 100644 index 00000000..a5cd7d5e --- /dev/null +++ b/muse2/ChangeLog @@ -0,0 +1,3703 @@ +09.10.2010 + * Fixed: Gluing of midi track parts, over tempo changes, caused incorrect note times and lengths. (T356) + - Fixed Song::cmdGluePart(). +08.10.2010 + * Disabled: Precount does not work, disabled function in gui (rj) + ======================================= + * 1.1 tagged (rj) + ======================================= + * added: missing headerfile in dssihost.cpp, required for building on Ubuntu Maverick (rj) +21.09.2010 + * Fixed: Mixers not restoring their size properly upon song load. (T356) + - Rearranged MusE::loadProjectFile1() slightly so mixer resizing done at end. Tested OK. + * Changed: Disabled some optimized code always enabled in Dsp::cpy(), for now, in case of 64-bit issues. (T356) +16.09.2010 + * Created rc2 release for 1.1 (rj) + * Fixed: Delete track(s) not disconnecting track routes, causing routes to hang around and store in song file. (T356) + - Fixed major regressions (my fault) in Song::insertTrack2() and ::removeTrack2(). + * Fixed: Dummy audio device: Crashes when Jack midi device created in device manager, or loaded from song. (T356) + - This allows to create Jack midi devices even when dummy audio driver is used. + - Tested OK loading complex Jack midi based songs with dummy audio driver. + * Fixed: AlsaTimer cannot start, with dummy audio device. (T356) + - Reverted: Back to default SND_TIMER_GLOBAL_SYSTEM in AlsaTimer, for now until a better fix. + - Also replaced pop-up warning in dummy loop with terminal output instead. + * Changed: MidiDevice <-> Track routes replaced with MidiPort <-> Track routes. (T356) + - This allows to change a port's device (even to <none> !) while keeping all the track channel routes. + * Changed: Single midi <-> track route with channel mask, instead of one route-per-channel. (T356) + - Potentially saving very many routes from memory and in song file. +10.09.2010 + * Fixed: regression with oR routing for Aux strips (rj) +05.09.2010 + * Fixed: shortcut for insert moved to Ctrl+Shift+X (rj) + * Added: Select all toggle for midi channels iR menu (rj) + * Added: Auto-route-connect old songs with obsolete midi input port/channel masks (before iR button added). (T356) + - Added MidiTrack::setInPortAndChannelMask() and called it from MidiTrack::read(). +03.09.2010 + * Changed: Updated German localizations muse_de.qm and muse_de.ts from <babarosa [at] gmx.at> (T356) + * Added: Instrument definitions and drum maps for Kurzweil SP2X, from <babarosa [at] gmx.at> (T356) +28.08.2010 + * Created rc1 release for 1.1 (rj) + * Added: Instrument definitions for AKAI SG01 and Waldorf-microQ from <babarosa [at] gmx.at> (rj) +23.08.2010 + * Added: Possibility to turn on/off move-armed-track with track selection in settings (rj) +21.08.2010 + * Renamed: Soft synth configuration changed to Synth configuration, as per patch from Geoff King (rj) + * Fixed: Shortcuts with modifier keys wasn't working for global shortcuts, should be now (rj) + * Added: Shortcuts for changing len of events, default Ctrl+Shift+Left/Right (rj) +>>>>>>> .r459 +10.08.2010 + * Fixed/Changed: Grid reacts to midi resolution change (rj) +01.08.2010 + * Added: Move track selection when part selection is moved, is this a good approach? (rj) + * Added: Backspace unarms all armed tracks (rj) +24.07.2010 + * Feature: Audio and midi routing popup menus now stay open, for making rapid connections. (T356) + * Fixed: Delete some objects hanging around upon close like song, audio, midiSeq, and prefetch. (T356) + TODO: Find a way to delete the 'muse' object without causing problems like seg faults. +21.07.2010 + * Improved: Note lanes in pianoroll and marking of C-notes (rj) +20.07.2010 + * Fixed: illegal shortcut no longer reported on startup (rj) +18.07.2010 + * Fixed: Handle errors during timer initialization more gracefully (rj) +15.07.2010 + * Added: Volume control for audio metronome (rj) +12.07.2010 + * Fixed: When wave files were edited allocation was on stack which caused crashes for larger selections, now done on heap (rj) + * Added: Print svn version in -v and About box. (rj) + * Fixed: Bug with RemoveShortEvents plugin script, would not remove anything due to index error (rj) +10.07.2010 + * Added: Insert measure, inserts empty space and moves everything after playpointer to the right and + Part-insert, pastes parts and moves everything after the paste point to the right + it's currently not possible to change the shortcuts for these, wip (rj) +06.07.2010 + * Added: Button in transport to enable/disable jack transport. (rj) + * Fixed: Dropdown Snap and Type in arranger toolbar no longer steal focus, annoyed the helloutame (rj) + * Fixed: Making edits to larger chunks in wave files no longer cause a crash, heap is used for allocation (rj) + * Improved: Part selection when navigating with keyboard, previously there was sometimes a need to use the mouse + to get a part selected, now the first one should be selected (rj) + * Added: some automation (very)wip stuff, not enabled, just to get it off my harddrive (rj) +22.06.2010 + * Fixed: Crashes loading a song while another is loaded. Or worse, it loads but saving corrupts the file! (T356) + - Song::clear(): Clear all midi port devices. Delete Jack midi devices, and remove all ALSA midi device routes. + - Route::read() Ignore bogus midi routes in med file if the device they refer to is not in use by the song (port is -1). + - MidiJackDevice::writeRouting(), MidiAlsaDevice::writeRouting(): Ignore and do not write midi routes if the device + they refer to is not in use by the song (port is -1). This prevents bogus midi routes writing to med file. + - Fifo::~Fifo(): Free the buffers! Fifo::getWriteBuffer(), Fifo::put(): Verify allocation. Fifo::get(): Verify buffers. +15.06.2010 + * Fixed: Jack midi output: Sent pitch bend and program values were incorrect, if coming from midi keyboard. (T356) + - Reported by Pieter while using Hurdy Gurdy vst under fst. Tests OK now, here. + * Fixed: Drum editor: Controller graph not in current tool mode (pencil, eraser etc.), when first opened. (T356) + - Call setTool() in DrumEdit::addCtrl(). + * Fixing: Drum editor: Velocity controller graph showing incorrect for selected drum, or showing for all drums, when first opened. (T356) + - WIP. Still not quite correct, but at least now it doesn't show all drum velocities when first opened. + (This is interesting! I will try to allow 'no drum' list selection, to show all drum velocities at once, just like piano roll.) +13.06.2010 + * Fixed: More fixes to marker list, selected item was still not right. (T356) +03.06.2010 + * Fixed: Time signature editing problems in master track list and gui. (T356) + - Fixed SigEdit::outOfRange(). Added Sig::isValid(), and check it in LMaster::returnPressed() to fix crash with 0 n or z. + * Fixed: Marker/list problems. Double entries. Pianoroll/arranger timescale 'shift-left/right-click-to-add/del-marker' fixed. + Marker 'lock' (smpte/ticks) works now. Up/down buttons fixed. Marker list selection 'stays put' now + when adding or deleting markers. (T356) + * Fixed: Graphics corruption in arranger and track list when vertically scrolling. (T356) + - Changed rectangle to full w/h in 'shift down' section of View::setYPos() and TList::setYPos(). + Should not have to do this, but it cured my problems. No noticable change in speed. + - Arranger corruption occured on more than one machine with xorg nv, ati drivers. More severe arranger AND track list + corruption occured with proprietary drivers. Corruption is also observed in several other windows (ex. ladspa browser) + but there's not much I can do, the corruption is found in ordinary usage of QListView for example. + * Changed: Increased arranger vertical scroll step, was too slow to scroll. (T356) + * Possible fix: Auto-scroll in pianoroll and arranger take waaay too long to stop scrolling. (T356) + - Increased timer timeout from 40 to 80 ms in Canvas::scrollTimerDone(). Helped for me, on a 1.6Ghz P4... + * Changed: Ladspa plugin guis now have scroll bars. Helps when there are many controls. (T356) + - Still toying with the code a bit, please bear with me while I try to get it right. + * Started: Addition of MusE-native ladspa guis for dssi synths. (T356) + - No visible changes yet, just under the hood. Added class PluginIBase which is inherited by + DssiSynthIF and PluginI. Changed class PluginGui and DssiSynthIF to fit. +07.05.2010 + * Fixed: Xml file trouble: Tag attributes not storing xml-friendly entities, trouble reloading song. (T356) + - Fixed all usages of Xml::nput, ::put, ::tag, and ::etag. Discovered by Geoff B. +06.05.2010 + * Fixed: Audio Input tracks: Loud noises or DC output with unconnected input routes. (T356) + - AudioInput::getData(): Do not get buffers of unconnected client ports. Causes repeating leftover data. + * Fixed: Audio Input tracks: Stereo processing not correct if both input routes connected to same port. (T356) + - AudioInput::getData(): Just copy the buffers always, don't set buffer pointer directly. + * Fixed: Effect rack plugins: Not saving correct number of plugin channels. Upon reload, channels are wrong. (T356) + - PluginI::writeConfiguration() and PluginI::readConfiguration(): Write and read the channels, not instances. + - Optimize TODO: Is xml plugin 'channel' really necessary? Well not now, but later if we optimize the effect rack + by not creating redundant plugin instances if the next plugin in the rack doesn't need them. + What I have changed is always make the number of plugin channels equal to the number of track channels. + PluginI::setChannels() and PluginI::initPluginInstance() then sort out the details of how many instances to create. + * Fixed: Effect rack plugins: Some plugins crash MusE, for example plugins with no audio outputs. (T356) + - PluginI::setChannels() and PluginI::initPluginInstance(): Be more aware of different audio ins and outs. + * Added: First draft help file README.effects-rack titled "Understanding the Effects Rack". (T356) + - Details how MusE uses plugins, especially now with these changes. +27.04.2010 + * Changed: Building: Separate --enable-dssi --enable-osc configure options. (T356) + --enable-dssi (Enable dssi synths AND special handling of dssi-vst ladspa effect plugins. No guis if by itself.) and + --enable-osc (Enable dssi guis. Useless by itself at the moment). + Use both for best features. + * Feature: If dssi and osc support are enabled, audio track effects rack dssi-vst plugins can now show their NATIVE guis. (T356) + * Fixed: Storing dssi synth states. Remembers current program, all configure strings, and control settings - for current program ONLY. (T356) + - With dssi-vst synths, some better are than others at remembering program. + - Todo: Ignore unwanted dssi-vst config strings/values like "guiVisible" "<name-of-fifo-file>" (gives non-fatal error on reload). + * Fixed: Dssi native synths (hexter, LTS etc.) should actually work now. Their gui controls operate the sounds now. (T356) + - Todo: If using large audio buffers (Jack), my 'one-at-a-time-per-audio-process' osc control fifo streams kinda suck, + with a delay in their processing. Want to try MULTIPLE 'run's or 'run-multiple's PER audio process, for SAMPLE accuracy and + better quicker message processing. Just need to add a timestamp to my osc fifo items, then all forms of change - whether + control, midi event, or program - have a timestamp with which we can SPLIT UP the runs into 'runs between changes'. + * Tip: Currently a patch to dssi-vst is required for their guis to update properly. (For now, ask about this on our lists.) +21.04.2010 + * Fixed: Shortcut for moving between tracks in arranger. Ctrl+Up/Down (rj) +19.04.2010 + * Patch: Fix for libdir bug causing synths to not be available on some 64bit systems. By Orcan Ogetbil (rj) + * Fixed: Drawing of grid when snaping to less than measure (rj) +12.04.2010 + * Fixed: LADSPA rack effects: Do not display LADSPA output controls (such as latency). (T356) + * Fixed: Bug when cancelling 'save as' operation, says 'file exists'. Caused by my earlier compressed save fixes. (T356) +11.04.2010 + * Fixed: DSSI requested midi mapped controls were not correct. (T356) + * Changed: Working on controllers, and saving their state. Synths like Organ should remember their state now. (T356) + - Working on DSSI controls... Working on OSC stuff... +06.04.2010 + * Fixed: Jack midi, and DSSI: Midi controller knobs, sliders, boxes etc. not updating with current values. (T356) + - Copied code in MidiPort::sendEvent() to JackMidi::processMidi() and DssiSynthIF::getData(). + * Fixed: DSSI: Crashing with unkown controllers sent to synths. (T356) + - Ignore unkown controllers in DssiSynthIF::processEvent(). +05.04.2010 + * Added: Rec enabled track moved with selection when only one track is rec enabled (rj) + * Changed: Made canvas show grid the default (rj) + * Added: Jack midi ports can now be renamed in the ports list dialog, by clicking on the name. (T356) + - Also cleaned up ports list behaviour and added tooltips. +30.03.2010 + * Major reworks: Jack midi, routing system, multichannel synth ins/outs, midi strips and trackinfo pane. (T356) + - WORK IN PROGRESS. Should be usable for current projects. + - ADVISORY: If opening current projects you are advised to "save as" or back up your med files (waves should be OK) + until all is deemed to be working OK. It is possible more changes to .med file structure are needed later. + - Some .med project file structures have CHANGED (like routing). I have tested opening large existing projects, + then re-saving them. OK so far. + However, I have not added importing code for the old midi trackinfo panel 'input port' and 'input channel' boxes (gone now). + If you want to wait, I am planning to do that, but later... Otherwise you must re-enter them with the new midi input routing. + - ** Multichannel synth inputs and outputs: Fairly satisfied with popup menus, hopefully no major reworks... + Routing system fully supports multichannel synth mono/stero paths but is NOT COMPLETE yet. + When changing a connected track from stereo to mono, there is no coding yet to ensure the existing stereo routes are + changed from stereo to mono (just like the audio input and output tracks have always done with Jack routes). + Also coding must be added to avoid simultaneous mono and stereo routes - make them mutually exclusive - although + there's nothing technically wrong with it, it's just not desirable. + - ** Jack midi: You now create your own Jack midi ports. I have not added any means to delete them yet, but I believe + if you 'unselect' them in the midi ports list so that they are not used, then the saved .med file will ignore them. + - Multi-instances of MusE should work OK now - all ports should hopefully have unique names. + - Number of midi ports increased from 32 to 128. It's a bit much for the ports list, was planning "create your own + midi port as needed" (like RG). Obstacles seem to have been cleared now, but it would be a big job (lots of places to change). + - Along the way various tweaks and fixes when I spotted them. +18.02.2010 + * Added: Separate Jack midi client ports per MusE port. (T356) + - For now, you will have to manually add further connections to those ports if desired, each session. + - Tested OK rec/play so far. + * Fixed: Some inconsistencies in midi controller number decoding. (T356) + - Everything now references the values listed in midictrl.h + * Fixed: Some Jack code was not calling free after calling certain functions. (T356) + * Changed: Midi priority now deaults to audio priority +1. (T356) + - Thanks to RJ for the convincing argument. +14.02.2010 + * Added: Jack midi input should be working now. Controllers, too. (T356) + - Tested with large 1024 frame buffer. Events are recorded with good sub-tick (frame) resolution, + as viewed in pianoroll with 64T snap grid. +13.02.2010 + * Fixed: Jack midi output should now be frame-accurate, support variable length events (like sysex), + and most controllers should work. (T356) + - TODO: No record yet. Just playback. + - TODO: I have code in place for multiple device listing (like ALSA) with auto-connect, + instead of single 'jackmidi' device, but it doesn't seem to want to actually connect. + Simply enable the #define JACK_MIDI_SHOW_MULTIPLE_DEVICES in driver/jackmidi.h + and it will magically switch. Shows port names as their alias #1 (with a rem'able line to + revert to non-alias names - to be made configurable later). I swear it was working, + then intermittent, then not at all. Hmm... +06.02.2010 + * Fixed: MusE hanging on close, with Jack driver. (T356) + - Unregister Jack midi ports on destruction of JackAudioDevice. +05.02.2010 + * Fixed: Top level windows: Do not open if there are no parts. Case: bogus -1 top-level part index stored in med file. (T356) + - Changed MusE::readToplevels() and stuff in listedit.cpp + - Was causing crash of list editor upon loading a song saved with the list editor open. + Somehow a bogus -1 top-level part index can make it in to the .med file. Checking this... + * Changed: Preparations for audio processors: Moved stuff out of class Event and into class WavePart. (T356) + - WavePart needs a converter map to lookup events in the part's (shared) event list, in case clones exist ! + Ughh, it's going to be tough to ensure the map is always correct because an event cannot tell what part owns it... +04.02.2010 + * Improved: Grid handling in arranger improved, it should now be actually usable (rj) +01.02.2010 + * Fixed: Jack midi output: Stuck or missing notes. (T356) + - Must only be one jack_midi_event_reserve() per event in handle_jack_midi_out_events(). +31.01.2010 + * Changed: Midi sync window: Clock is now seperated from other real time commands (play/stop etc). (T356) +31.01.2010 + * Fixed: Midi sync in: Should be very solid and 'in time' now, play/stop/continue. (T356) + - Re-coded to begin incrementing immediately upon first-clock detection. Forbid MusE to send transport commands + while in external sync mode - our sync router handles that. Was causing problems. + - Tested OK: Ensoniq ESQ-1 KB (sends clocks ony between start and stop) and Roland TR-505 drums (clocks always running). + The measured general timings were quite different, but (thankfully) clocks and events were not. + - MusE responds better to the TR-505 than the ESQ-1 does with a direct midi cable connection! (ESQ gains ticks on continue). + * Added: Midi sync window: 'Rewind on start' column. (Also a 'Send first clock delay' box - not implemented yet). (T356) +29.01.2010 + * Feature: Dummy audio driver: Added global settings for sample rate and period size. (T356) + - The period size affects midi resolution, and the default was just too long. So this was added. +27.01.2010 + * Changed: Don't process audio prefetch, or getData() in Audio::copyData(), if track is 'Off'. (T356) + * Added: Arranger track list: Quick 'right-click' or 'ctrl-click' or 'ctrl-mouse-wheel' toggling of Track On/Off. (T356) + - Note this includes midi tracks now! Remains to be seen whether allowing midi off is useful and will work, + or should be filtered out. **TODO: Turn off remaining controls in midi strips, turn off actual midi playback and record. + * Feature: Initial Jack midi support. Imported from Larry Valkama's GIT repo. (T356) +26.01.2010 + * Fixed: Import midi 'replace' broken last fixes. (T356) + * Fixed: External midi sync: Wait until first clock after start to start transport, and >= second clock to increment ticks. (T356) +24.01.2010 + * Added: Midi sync: Added 'Jack timebase master' checkbox, removed requirement of MusE being tempo map master. (T356) + * Added: While on external sync and Jack timebase master, reports correct MusE BBT info to Jack. (Tempo not correct yet). (T356) + * Added: Midi import option: Whether to split imported tracks into multiple parts. (T356) +23.01.2010 + * Fixed: External midi sync in: MusE transport not rewinding upon reception of start. (T356) + * Added: Midi sync: MusE now transmits and receives some MMC commands, and displays some MTC and SMTPE info. (T356) + - No transmit MTC or receive MTC syncing yet, just transport control stuff. + - Tested OK with Rosegarden and Ardour, but they do not seem to have an option to sync to the input midi clock, + only MTC or internally. Must test when MTC output added to MusE. + * Improved: Midi sync editor window: Shows MMC and MTC activity and works with them now. (T356) +21.01.2010 + * Fixed: First tests: External midi sync in works now! Should be rock solid no matter what is thrown at it. (T356) + - All changes are labeled "p3.3.25" + - Switched to a 'direct drive' method instead of 'calculation of tempo' method. + Drift between source of master and slave is non-existant since the incoming midi clocks + drive the midi engine directly. This is at the expense of exact 64th note resolution. + At MusE's fixed 24 midi clocks per quarternote, triplet 32nd notes are resolved (32nd note divided by three). + MusE's default 'division' (ticks per quarternote) is 384. 384/24 gives a division of 16 MusE 'ticks' per midi clock. + - Normally when using the tempo map (external sync is off), device play event times are in frames, + because the tempo map provides for that kind of sub-tick frame resolution. + But now, during external sync, device play event times are in ticks, not frames. + Hence the compromise between exactness of note times, and master/slave drift. + - Tested heavily with a Roland TR-505 which has a variable 'analog' tempo knob. + Combined that with a complete midi song, and other test 'tick' tracks driving external synth KB, + was rock solid going 'absolutely nuts' with the tempo knob up to 260BPM, surprisingly good resolution. + - TODO: Check safety of 'midiExtSyncTicks = 0' inside audio thread while midi thread is counting it up. + Also fix seek operations and check for any more place needing these 'tick'frame' alterations. + * Changed: Some more changes for compressed files operations. (T356) + - More to be done, but tests OK so far. +19.01.2010 + * Fixed: Saving/loading compressed .gz/.bz2 MusE .med files, + loading compressed .mid/.kar files (save broken, off for now). (T356) + - Changed filedialog.cpp:getSaveFileName() and MusE::loadProjectFile1. + - Added seperate save file dialog filters in globals.cpp. + - Disabled exporting of compressed midi/karaoke files (.mid/.kar) for now because + a compressed file is opened as a pipe, and pipes can't seek, resulting in a + corrupted midi file in MidiFile::writeTrack(). +18.01.2010 + * Added: Piano roll and drum editor edit menus: "Select prev/next part". With default hotkeys Alt+Left/Right. (T356) + - This is an easy way to switch parts when multiple part editing in one window (via Ctrl-E or Ctrl-D). + And it was absolutely essential, for multiple dedicated controller track editing since there are no notes, + and no (other) way to select another part to edit. +17.01.2010 + * Feature: MusE now has two mixers, with selectable track type display. (T356) + - Changes to .med file were needed. Tested OK so far with old and new song files. + * Fixed: Builtin freeverb and TAP reverb ladspa GUIs, or custom user GUIs not showing controls. (T356) + - Broken since removal of musewidgetsplugin library months ago. + Added PluginWidgetFactory class to handle local creation of controls. + (Custom user GUIs must be done by hand since the removal of musewidgetsplugin library). + * Fixed: Appearance settings red colour adjustment larger than others. (T356) + * Changed: Default controller graph foreground colour from blue to medium orange. (T356) + - Avoid clash with blue colour used by left and right markers. +12.01.2010 + * Release: 1.0.1 (rj) +10.01.2010 + * Fixed: python detection exchanged for script from http://libvirt.org/ (rj) +09.01.2010 + * Removed: Disabled watchdog thread. (T356) + - Tested OK (normally) without it, although behaviour needs to be tested if audio or midi thread + would stop unexpectedly. + * Changed/Fixed: Thread priorites: Added command line switches for audio (-P) and midi (-Y). (T356) + - Audio (-P) applies to dummy driver only. (Else audio priority is fixed by Jack). + - Also changed default settings so that no two threads have same priority. May fix problem reported + by user GB, concerning high midi latency. + * Added: Enable/disable LASH command line switch (-L), (if LASH support is compiled in). (T356) + - Helps prevent some issues like auto-starting Jack, or automatically routing midi to fluidsynth (observed). +07.01.2010 + * Fixed: BUG ID: 2879426: *.med does not save meta event types. (T356) + - Changed midievent.cpp MidiEventBase::write(). Now saves value A, B, C and sysex/meta data. Tested OK. + * Fixed: Midi meters now show for each track even if they're all on same device and channel. (T356) + - Oversight, long overdue. The meters AND automation control needed to be 'per-track'. + * Applied: muse-destdir.patch Scripts and utils packaging fix submitted by Orcan Ogetbil. (T356) +06.01.2010 + * Feature: Jack transport enable/disable in Midi Sync settings window. Stores setting per-song. (T356) + - Should be Ok to use and test. Needs a bit more work. See jack.cpp and jackaudio.h + * Fixed: Speedups of audio pre-fetch especially when moving the cursor around (seeking). (T356) +23.12.2009: + * Added: DeicsOnze2 initial import. (ng) + * Fix: deicsonzepreset.cpp for Xml muse 1 API +20.12.2009: + ======================================= + * 1.0 tagged (rj) + ======================================= +19.12.2009: + * Feature/Fix: Audio metronome: Send output tracks now selectable in Settings->Metronome. Also fixed bad noises.(T356) +15.12.2009: + * Patch: New patch for 64-bit memory issues, from Daniel Kobras (rj) + * Reworked: Output of configure script to point out deprecated stuff and list the interesting stuff (rj) + * Fixed: Old bug: WaveTrack muting slow to respond or odd behaviour. (T356) + - Removed track mute check in WaveTrack::fetchData(). Was causing 'delayed repeated muting' since the mute check is + done at a time when audio segments are fetched which are to played a few seconds into the future. + Tested OK so far, playing and bouncing wavetracks. Mute is now quick to respond and does not 'repeat' or 'delay'. +14.12.2009: + * Fixed: Overhauled AudioTrack processing. Fixes noises if multiple output routes exist. Eliminates costly redundant + processing of audio tracks, and their effects racks. Waves, groups, inputs, outputs, synths etc. (T356) + - Made better use of AudioTrack::outBuffers, as a 'post-effect/pre-volume' caching mechanism if the track has more than one + output route. WaveTrack was already using this scheme, but I moved it up 'higher' and now all tracks benefit from it. + - See AudioTrack::copyData() and ::addData(). Most changes there. (Comments included!) + * Fixed: Old songs made before recent synth changes were not loading their synths. (T356) + - In .med file, added synth 'label' tag to go with existing 'class' tag, to support synths like dssi-vst. + - Songs made recently after the changes might not load their synths and will simply have to be re loaded and re-saved. +07.12.2009: + * Fixed: Add Synth popup menu: Show names AND descriptions. Now sorted, too. Also separate MESS, DSSI, VST, and Other. (T356) + - Added app.cpp:populateAddSynth() function. + * Fixed: Increased buffers for reading xml. Song files with large patchdata from vstis caused crashes (rj) + * Fixed: Self inflicted bug with setting inital song loading in general configuration (rj) +06.12.2009: + * Fixed: List popup synths by description. Cleaned up soft synth main list. Added persistent names, descriptions, ver, etc. (T356) +05.12.2009: + * Fixed: ddsi synths: Ticking or crackling when more than one output route path. (T356) + - The synths were being run more than once per process cycle, due to multiple out routes eventually calling getData. + - ** Work in progress - must also do MESS synths and other track types which should only process once per cycle. + * Feature: SSE support configure build option and SSE enabled dsp routines added. (T356) + - Currently none of the routines are actually used, yet... Borrowed from MusE-2. + - They appear to only be enabled for 64-bit CPUs. Investigating why not 32-bit... + * Feature: i386 optimized dsp float buffer copy routines. (T356) + - Should work on all i386 compatible CPUs (uses asm movsl). Borrowed from MusE-2 + - I couldn't bear to add yet another unoptimized memcpy usage, so I added this. + * Changed: All audio buffers now allocated with 'posix_memalign' instead of 'new'. (T356) + - Borrowed from MusE-2. +03.12.2009: + * Fixed: Support for initial vst chunk storage support if available in dssi-vst + requires a patch to dssi-vst. + * Fixed: Better cleanup on closing MusE. (T356) + - Added Song::cleanupForQuit called from Muse::closeEvent. Disconnect gracefully from LASH before app quit. + Clean up memory. Make vst synth processes which were in undo or redo list at close go away. +02.12.2009: + * Fixed: Do not send default midi values back to dssi synths. Let them handle their own default setting mechanisms. (T356) + - Also saves a bit of loading time for synths with hundreds of controls. See MidiPort::setMidiDevice(). +02.12.2009: + * Fixed: dssi: Crashes when loading most vst synths. (T356) + - All ports must be connected even if not used. + Made sure all audio in/out and control in/out ports are connected, + including latency control out port. Test Ok. +30.11.2009: + * Added: Configuration option for vst plugin in-place processing, fixes ladspa vst plugins not working or loud feedback. (T356) + - Hmmm, they were working before when I upgraded OS. Now they're not. Extensive testing: It seems this is not MusE's fault. + - R.J. reports they weren't working too. Investigating... +29.11.2009: + * Fixed: dssi: Loading of synths with more than 2 out channels. (T356) + - Currently only the FIRST TWO channels of the synth will be used. + - Tested ok so far with A.D. drumkit. +28.11.2009: + * Fixed: dssi: List only synths found, not effect plugins. (T356) + - Does the exact opposite of what dssi-vst does for ladspa plugins, + therefore all plugins should be covered - effects will be listed + in ladspa effect dialog, while synths will be listed as synths. +27.11.2009: + * Fixed: dssi: Both native guis and vst guis should open now. Ooooh - pretty! (T356) + - ** But still: Keep an eye on your process list and manually kill any + synth instances lying around after exit. For now try to 'politely' + close dssi guis and delete any dssi synth tracks before exiting muse. + - Working on gui open-close-reopen-show-hide stuff. Kinda weird esp. with vsts right now... +26.11.2009: + * Fixed: Loading dssi crash bug. Should at least load them now. (T356) + - Also some controller functionality via track controllers... +25.11.2009: + * Feature: Dis.. Dis.. Disposable wha? (T356) + - dssi support. Work in progress. + - ** VERY IMPORTANT Currently you must manually 'kill' any synth instances lying around after exit !!! + - Should work OK for tests and fun... +22.11.2009: + * Added: Support for reading ogg files through libsndfile (rj) +18.11.2009: + * Fixed: Audio and synth tracks not processing when output path ultimately leads nowhere. (T356) + - ALL tracks now always animate meters, and process audio 'quietly', and synth tracks + process their gui messages, if output path leads nowhere. + - This fixes a few problems: For example fluidsynth was not allowing loading of soundfonts. + And synths would suddenly 'dump' any backlogged events when processing was turned back on. + And during play, when disconnecting and reconnecting the track outputs, the audio would be + out of sync because it was not processed during that time. + - See Audio::process1() to understand the changes more. Follow from there to SynthI, SynthIF etc. + * Fixed: Minor issue with port 0 display in track list port column for synths, from previous fix. (T356) +17.11.2009: + * Changed again: Arranger: Track list: Left click synth track's port column now lets you choose a port. (T356) + * Fixed: Do not list synths as instruments in ports/synths settings window. (T356) +16.11.2009: + * Added: Script functionality moved from PianoRoll to song class, available in main menu (under 'Midi') + and drum editor (mg) + * Added: 'Add synth' sub-menus now automatically assign the instance to a free midi port. (T356) +15.11.2009: + * Added: Added 'Add synth' sub-menu to main 'Edit menu' and Mixer 'Create' menu. (T356) + * Changed: All audio track types now start with two channels and 0db volume. (Input tracks remain muted as usual). (T356) + * Fixed: Organ synth: Drawbar harmonics and sustain midi controllers were not working. (T356) + - Applied auto-bias corrections. +14.11.2009: + * Added: DoubleSpeed plugin script for PianoRoll (mg) + * Fixed: Disable Python ifdefs (mg) +13.11.2009: + * Feature: Mixer labels: Auto-Font-Size(TM) using Appearance Settings font # 6. Word wrap (only with spaces) supported. (T356) + - The mixer labels will try to fit the text, trying font size from font #6 point size down to point size = 5. + * Feature: Arranger: Track list: Right-click 'Add ...' now lists soft synths ! (T356) + * Feature: Arranger: Track list: Left/right click synth track's output port column now shows synth gui ! (T356) + * Changed: Midi track info: Removed redundant track name box, changed label to behave like mixer strip. (T356) + * Fixed: Appearance Settings: Manual entry into font name boxes now works. (T356) + * Fixed: Appearance Settings: Added tooltips to font #0 - #6. Explains which font does what. (T356) +12.11.2009: + * Fixes: Some Python API refcount code added (mg) +10.11.2009: + * Added: Effect disable/enable + add/remove track to Python API (mg) +09.11.2009: + * Feature: Added 'Echo recording to output' button to midi track info panel. (T356) + - Turns on or off echoing of incoming record events to output device. + * Fixed: Midi tracks not recording when no output device selected. (T356) + - Now tracks will record with no output device selected. + * Fixed: Problems since increasing number of midi ports from 16 to 32 several months ago. (T356) + - Added Xml::parseUInt() and ::uintTag(), utils.cpp:u32bitmap2String() and string2u32bitmap(). + - Fixed saving and loading of input port mask in med files. + - Fixed display of input port mask in track info panel. +08.11.2009: + * Added: First test shot at part managing app in Python (mg) + * Added: Python api functions for selected track + import of part file (mg) +06.11.2009 + * Fixed: Python configure.ac problems. (T356) + * Removed: musewidgetsplugin (QT3 Designer widgets plugin) which may cause CVS build to fail with libtool2. (T356) + - Infamous '-o' trick no longer required to build from CVS. Removed until further notice. +04.11.2009 + * Added: Shortcuts to drumeditor + pianoroll: goto current pos, scroll left + right (mg) + * Fixed: Added command line switch (-y) for enabling Python control - disabled as default (mg) + * Added: Shortcut keys added to pianoroll and drumeditor (mg) + * Added: Startup dialog showing 'good to know' info, can be disabled (rj) + * Added: Song info dialog, can be used to record song related arbitrary text information (rj) + * Changed: the output limiter is now configurale, and by default off (rj) + * Fixed: Midi loop recording now honours the transport cycle record mode setting. (T356) + - Cycle mode REPLACE: Only record notes in current loop. Erase any previous loop notes from rec stop pos to loop end. + - Cycle mode NORMAL: Same as REPLACE, but don't erase any previous loop notes from rec stop pos to loop end. + - Cycle mode MIX: Keep all recorded notes from all loops. + - Use the transport record mode OVERDUB or REPLACE as usual to either mix with or replace existing track notes. + * Fixed: Midi record (incl. new part, looping, part auto-extend) now honours the arranger snap selection. (T356) + - Previously the left and right ends of the part would always be 'snapped' to bars, and any new notes recorded + past the end would not snap the part. + * Changed: muse/mpevent.h: Changed MREL list from using audioRTalloc to midiRTalloc. (T356) + - This must have been a mistake? midiRTalloc was not even being used anywhere before. The comment lines gave clues. + * Fixed: Multiple copies of wave events appearing in wave parts after resizing part. (T356) + - Changed EventList::find() to respect wave or midi. D'oh! Missed this obvious one from changes I made many months ago. + * Fixed: Audio loop recording now respects arranger snap setting. (T356) + - Previously the left and right ends of the part would always be 'snapped' to bars. + * Fixed: Audio recording now respects punchin and punchout points. (T356) + * Fixed: Audio loop recording now works (currently replace mode only). (T356) + - WORK IN PROGRESS: Only overwrite (replace) mode supported. Working on overdub mode... + - If recording is started INSIDE the loop points, then allowed to loop, the + 'zeroth loop' wave contents will be 'shifted' back to the left loop point. + This may have to change if mix mode is to be supported. In other words + keep that 'zeroth' portion of wave in place. May change it anyway. +02.11.2009 + * Added: Midi track controller + audio track volume to Python interface (mg) +28.10.2009 + * Fixed: No, or badly shifted wave recording, since libsndfile 2008-05-11 (T356) + - Fix for recorded waves being shifted ahead by an amount equal to start record position. + - Removed _recFile->seek() in AudioTrack::record(). Since libsndfile 2008-05-11, "seeking past + end of file during write" is allowed, which caused problem with the line seeking the record + file to an absolute frame which *included* the recording start position. +25.10.2009 + * Added: Mute functionality to Python interface (mg) + * Fixed: Midi mixerstrip mute update issues (mg) + * Fixed: initialization in pandelay ladspa plugin (rj) +21.10.2009: + * Added: functions for looping to Python interface (mg) +19.10.2009: + * Added: more functions to Python interface: deletePart, set position of locators, get/set song + length, get division, set midi track parameters (mg) + * Added: now possible to create and modify parts via Python bridge (mg) +18.10.2009 + * Added: backported ladspa plugins doublechorus and pandelay from svn-muse (rj) + * Fixed: Mixer was not updating when a midi track's channel was changed. (T356) + - Created a new song changed flag SC_MIDI_CHANNEL and used it to only update mixer midi strips, + not the whole mixer. Changed AudioMixerApp::songChanged() and ::updateMixer(). + * Fixed: Mixer was not shrinking enough when a track was removed, leaving space between strips. (T356) + - Added a couple of lines to AudioMixerApp::updateMixer() STRIP_REMOVED section. + * Fixed: Bug with reading soundfonts from song dir fixed (rj) +17.10.2009 + * Examples: added some example scripts, DoNothing and RemoveShortEvents (currently requires PyQt4) (rj) + * Added: more tags to plugin format in pianoroll, see readme in dist: share/scripts (rj) + * Added: Updates to Python API, now possible to modify part data. Needs a lot of testing (mg) +16.10.2009 + * Added: Added a few functions to Python remote API (start/stop playback + location queries) + * Feature: Each drum instrument listed in the drum map now has a playback 'volume' setting. (T356) + - Currently it affects playback only. I am looking to maybe add record level, too. + * Changed: Default drum map velocity level 3 (110) and 4 (127), now 127, 110. (T356) + - To allow easy (no key hold) drawing of default 110 velocity notes. + (Hold shift = 127, ctl= 90, shift+ctl = 70) + * Fixed: Drum editor controller graphs now align perfectly with editor canvas. (T356) + - Changed DrumEdit::newCanvasWidth(). + - Tested OK with various appearance themes, and various vertical splitter positions. + * Fixed: Drum map length, velocity level, and volume columns rapid mid-/right- clicks causing left double-clicks. (T356) + - Now the columns can be quickly mid and right clicked (decrement/increment). + * Fixed: Fluidsynth now realizes that a soundfont was located in the song-dir and then omitts + the path in the configuration data. (rj) + * Changed: Changed the format of the datafile for the automation option in the pianoroll + Mathias, we can wrestle about it later ;-) (rj) +15.10.2009 + * Feature: First version of MusE remote Python control (mg) + * Fixed: Drum canvas 'select' functions not updating, can't copy/cut etc. (T356) + - Added updateSelection() to the end of DrumCanvas::cmd(). Tested OK. +12.10.2009 + * Feature: External scripting functionality added via PianoRoll menu: (mg) + PianoRoll scans INSTPREFIX/share/muse/scripts and ~/.muse/scripts for executables, which modify part + data via data stored in temporary file + +25.08.2009 + * Proposal: new default colors for various stuff (rj) +12.08.2009 + * Fixed: bug 2811156, soft synth and marker window no longer appear when hidden for XFCE window manager (rj) +15.07.2009 + * Patch: from bug 2819312 (by Gerardo Exequiel Pozzi) added. Allows muse to launch with never glibc. The fix is + perhaps not fully understood but it looks harmless. (rj) +09.07.2009 + * Changed: Track info program, vol, and pan spinboxes now lose focus with one enter press instead of two. (T356) +05.07.2009 + * Fixed: Small fix on behalf of T356, Jack should not be started if running -a (rj) + * Fixed: Help menu -> Report a Bug: Set address to current muse org bug address. (T356) +01.07.2009 + * Fixed: Dropdown menus in transport no longer grab focus, make space start/stop work again (rj) + * Fixed: Dropdown in Mastertrack editor no longer grabs focus (rj) + * Feature: Added denormal protection, by default on, can be turned off in global config (rj) +25.06.2009 + * Fixed: Recording of midi sysex was not working. (T356) + - My fault since recent midi sync changes. Fixed the last few lines in alsaProcessMidiInput(). + * Fixed: Segfault when certain movements are done in track list. (T356) + - Added valid track check to RESIZE section of TList::mouseMoveEvent(), + and a few other places. +23.06.2009 + * Testing: A fix for some Jack-2 net problems... (T356) + - Added missing break statements, and JackTransportNetStarting detection + (hard-coded as '4' for now so that muse will build with Jack 1 and 2 - we need + config detection of Jack version!) to processSync(), and JackAudioDevice::getState(). +21.06.2009 + * Feature: Added Jack freewheel mode. (T356) + - Dramatically speeds up bounce to file and bounce to track operations. + With freewheel enabled, you don't have to wait for Muse to play the song + at normal speed while bouncing - it goes as fast as possible. + - Added configuration option for it. See 'Global Settings -> Audio'. +20.06.2009 + ======================================= + * 1.0rc3 tagged (rj) + ======================================= + * Feature: Jack transport master functionality added. (T356) + - Allows other Jack client apps to properly disply Muse's current bar, beat, and tick. + - Especially useful for songs with tempo and time signature changes. + - It is activated / deactivated by clicking on Muse's transport 'Master', + or Muse's graphic Mastertrack window 'Enable'. +17.06.2009 + * Fixed: Segfault after creating simpledrums instance, then adding a midi track. (T356) + - Return non zero in SimpleSynth::getPatchName(). +15.06.2009 + * Removed: Some code in jack driver which may cause shutdowns or static noise with Jack version 1 (T356) + - Tested several hours here, no shutdowns or sudden static noise. Thanks to the Jack team for that one... +13.06.2009 + * Fixed: New midi right-click popup menu 'add/set event' and 'erase event' not working for drum controllers. (T356) + - Also, on 'add/set', added check and ignore if an existing event value is already equal. + * Fixed: Midi track info vol, pan, prog 'Rec' buttons were allowing duplicate events. (T356) + - Added check for existing event in Song::recordEvent(). + - Also added check and ignore if event value is already equal. +10.06.2009 + * Fixed: Link error concerning libmidiedit.a and CtrlEdit.a (T356) + - Somehow the list of link libraries was out of order. Reordered, tested OK. +05.06.2009 + * Fixed: Users in some locales reported audio automation save/load corruption. (T356) + - Changed CtrlList::read() to use QString and QLocale instead of strtol() and strtod(). + - Checked: Other places using QString::toDouble() work OK because QString will fallback + to 'C' locale if formatting using current locale fails. (Hmm... But is it a speed hit?) + * Fixed: When linking, get errors concerning uuid functions not found. (T356) + - Added a section in configure.ac to test for uuid.h and libuuid. + - Added uuid lib to list of linked libs. + * Fixed: Midi port controller values not erased upon song load. (T356) + - There were leftover ghost values in the controller graphs between song loads. + - Added MidiCtrlValListList::clearDelete(), called from Song::clear(). + * Added: Right-click automation popup menu to all midi controller knobs/sliders. (T356) + - Contains add/set event, and erase event. + - When activated by the muse mixer midi controls, it 'prefers' selected parts on the track + over unselected parts, otherwise it chooses the first part found. If no part is found, + it creates a new one to contain the event. + - When activated by pianoroll or drum editor controller graph, it uses the currently + selected part (within the editor). + - Adding 'previous event', 'next event', 'erase range' and 'clear automation', just like + the audio automation popup menu, will take more time. Not implemented yet. + * Disabled: Midi mixer strip automation type button. (T356) + - There is no midi automation recording mechanism (yet). Disabled to avoid confusion with users. + * Added: Some new instrument .idf files submitted by MST (Michael). (T356) + - Akai SG01v, Korg MS2000R, Korg X5DR, Korg X50, Waldorf MicroQ. +02.06.2009 + * Applied: Some patches by Mandriva packagers. (T356) + - muse-1.0-fix-str-fmt.patch for deicsonze printf fix. + - muse-1.0-linkage.patch fixes compiler hang up at deicsonze.cpp. +01.06.2009 + * Fixed: Instrument editor 'Save as' was not working right. (T356) + - Was overwriting existing instrument. + - Now prompts for new instrument name. + * Added text in ctrl view to explain how to add controller values (rj) + +24.05.2009 + * Fixed: Missing uuid header in two files. (T356) + - My fault. Added include uuid/uuid.h to songfile.cpp and pcanvas.cpp. + * Fixed: Bounce to track: Wrong message "Select one audio output track", to "Select one target wave track". (T356) + - My fault. Message is displayed when there is one output and one or more wave tracks, and the user has clicked + on the output but not a track, too. + * Added: Start 'Wave editor' edit menu item, with configurable shortcut key. (T356) + - This will handle mutiple wave part editing. The existing right-click wave part popup menu + 'wave edit' item did that too, but now has been reverted back to opening a single + wavepart only, just like midi parts. + * Streamlined: All reading of 'part' xml is now done by a new routine. (T356) + - Replaced new PartCanvas::readClone(), and existing Part::read(), with standalone readXmlPart(), + in order to block creation of parts with mis-matched type, which don't belong on a track. + - Allowed mixed part .mpt files (midi and wave), and made a new clipboard type 'text/mixedpart'. + - Mixed part files can be dragged, imported or pasted to either a wave or midi track, and only the + relevant parts will be created. + - Added warning dialog showing how many, of how many total, parts couldn't be created. + - Added a parameter to Event::write() and EventBase::write() to force full wave file paths to be stored. + Used for copying, pasting, dragging, importing, exporting parts, but not for the song file itself. + * Added: Right-click wave part popup menu now has 'export', just like midi parts. (T356) + - As mentioned above, the full wave path is stored so there's minimum confusion when re-loading + the export, unless of course the file moved or was deleted etc. + * Fixed: Some issues with clones, controller events, and port controller values. (T356) + - It means "What you see on the controller graph is what you get, when you move the play cursor." + Port controller values are used when moving the cursor, they make the knobs move and send + values to the midi port. However, during play, they are not used, the song's controller events + themselves are used. Synchronizing these two mechanisms is what this is all about. + Fortunately, during play, "What you see on the controller graph" is ALWAYS correct, and is sent + to the midi port. + - TODO: Not quite done yet. Some functions may not update port controller values properly still, + like splitting or gluing clone parts. +06.05.2009 + ======================================= + * 1.0rc2 tagged (rj) + ======================================= + +02.05.2009 + * Feature: Right-click popup menu on a clone part now has "Select N clones", where N is number of clones. (T356) + - Major addition: Part "clone chaining system". (See part.cpp for new functions). Speeds up searches for clones. + * Feature: Added 'Paste clone' to arranger edit menu. Pastes clones of copied parts. (T356) + - 'Paste' will behave as always, only making a fresh copy of non-clone parts, while cloning clone parts. + - 'Paste clone' will always make a clone no matter if the parts are clones or non-clones. + * Feature: Added 'Paste to track' and 'Paste clone to track' to arranger edit menu. (T356) + - 'Paste' (and 'Paste clone') now attempt to paste to the original track(s) which the parts belonged to, + or if the original track has been deleted, then the current track. + 'Paste to track' and 'Paste clone to track' paste all copied parts to the currently selected track, + which was the previous behaviour of 'Paste'. + - Much work went into making sure that all scenarios work with these features, like copy/paste, drag/drop, + drag/drop .mpt part files, drag/drop between different instances of muse etc. + * Fixed: Importing or dragging midi part file (.mpt) into muse now supports multiple parts in the file. (T356) + - Changed MusE::importPartToTrack(). + * Fixed: Midi record into existing part past part end, in 'Replace' record mode, works now. (T356) + - Finished an erase events 'TODO' block in Song::cmdAddRecordedEvents. + * Fixed: Midi record into existing part, past part end, was decreasing part aref count, causing de-clone of clones. (T356) + - Removed extra "part->events()->incARef(-1)" from Song::cmdAddRecordedEvents(). + * Changed: Number of midi ports from 16 to 32. (T356) + * Added: Muse application desktop file, and added installation of it plus the muse icon, upon 'make install'. (T356) + - Desktop file submitted by Orcan Ogetbil. + - Note if muse is installed to /usr/local, the desktop file might not find the icon. + * Fixed: "-mcpu= is deprecated" compiler warnings. (T356) + - Changed configure.ac to use -mtune and -march. + * Speedups: Some heartBeat routines (such as Meter) were constantly drawing, wasting time and causing flicker. (T356) + - Also fixed Track Info midi detect light, and Midi Sync lights. + * Fixed: Midi strip vu meters now have a peak indicator. (T356) + * Fixed: Audio mixer strips now update when config minimum meter/slider value changed. (T356) + - Also fixed blocky 'aliased' drawing at low signals / low minimum meter settings. + - Changed Track::_meter and ::_peak from ints to doubles for more accuracy, eliminate 'false' draw update triggers. + * Added: Configurable shortcut key: "Transport: Goto start". Default 'W' key (as in reWind to start). (T356) + * Added: Appearance configuration button: Clear background picture. (T356) + - Also fixed Appearance::apply() to clear the string if <none> selected. + - Also fixed Arranger::configChanged() to set canvas null background QPixmap. + - This means clearing the filename in the 'select picture' dialog also works now. + * Changed: Selected cloned parts now draw (inverted) dashed border, just like unselected parts. (T356) + * Changed: Part drag-clone key from Shift-Ctrl back to Alt. (T356) + - My fault. Was changed to Shift-Ctrl, but Ctrl is for selecting all items in a row or limiting movement to x or y. + - Still not a good thing. Some desktops even reserve Alt, Shift-Alt etc. for window move, snap etc. + - TODO: Must find a way to override desktop setting. Without Alt, we don't have enough keys to work with! + Don't want user to have to disable setting. + * Cleanups: Moved some methods outside of Part and Track classes which I had put inside them. (T356) + - Methods like addPortCtrlEvents() deletePortCtrlEvents() etc. + * Changed: Muse wants qt >= 3.2, but some .ui files had version 3.3. (T356) + - Changed editinstrumentbase, editgainbase, aboutbox, configmidifilebase, gensetbase, midisync, + fluidsynthguibase, and vamguibase .ui files. + * Fixed: Midi Track info panel was allowing track name change to an already existing name. (T356) + - Fixed Arranger::iNameChanged() to warn. Changing the name in the arranger Track List already warns OK. + * Fixed: Crash or bizarre behaviour when undoing a track rename operation. (T356) + - Replaced default simple Track class assignment operator with custom method. Added a flag parameter to + Track::clone and Track copy constructors to indicate partlist is simply assigned, not parts cloned. + Also removed the lines reassigning each part's track (!). Can get away with this since track rename + is the only operation to use that, but something better would be needed if more 'normal' behaviour + was needed in copy constructor and assignment operator ! +05.04.2009 + * Fixed: Arranger part cloning works now! (Hold shift-ctrl while moving part - note dashed border on cloned parts). (T356) + - In Song::cmdChangePart() do not call "oldPart->events()->incARef(-1)" if new part is clone of old part, + (that is, old/new parts' eventlists point to same eventlist). + - Changed from 'alt' to 'Shift-Ctrl' button combo to activate cloning in Canvas::viewMousePressEvent(). + Alt is reserved for moving the whole window (on my machine), so most people probably never knew about cloning? + - This also fixes a reference count problem when renaming a part, ref count was being dec'd past 0. + Quite possibly fixes some other issues, too. Testing... + * Fixed: Transport window was disappearing by itself. (T356) + - Removed WStyle_Tool from Transport constructor. Seems to test Ok now. + - Gave it a caption "Muse: Transport", to appear on task bar. + * Fixed: Big time display now shows MTC minutes, seconds, frames, and subframes. (T356) + * Fixed: Wave editor MTC cursor time readout was not right. (T356) + - Use samplepos to set pos2 value in WaveEdit::setTime(). +03.04.2009 + * Followup: Track info panel program, volume, and pan were not allowing editing values. (T356) + - Fixed the track info heartBeat function. + * Followup: Some more changes to respect MidiDevice open flags, set in midi config window. (T356) + - Strangely, midi config 'write enable' lights still weren't stopping events from being played, + even though the port was clearly unsubscribed successfully for writing (!) + Also, strangely, only if Jack Midi was disabled, some device putEvent() error messages were appearing. + I expected the messages to ALWAYS occur but it didn't happen, even though events were always played. + - Added MidiDevice::_writeEnable and ::_readEnable, set when the device is opened or closed. + - Changed the various ::putEvent methods to respect _writeEnable. (_readEnable not used yet, because + port unsubscribtion for reading IS working - events stop arriving). + * Added: Instrument definition file for playing to an Emu 4MBGSMT SoundFont. (T356) +01.04.2009 + * Fixed: Midi config window: Clicking on green in/out enable lights was not actually dis/enabling in/out. (T356) + - As initiated from MPConfig::rbClicked(), MidiAlsaDevice::close() was seeing the NEW flags, not the old. + So, in MidiAlsaDevice::close(), removed _openFlags check, and added snd_seq_get_port_subscription() check. + - Tested Ok disabling/enabling ins/outs, and clearing/setting port's device. + * Fixed: Muse was not storing midi port 'openFlags' in the song files. (T356) + - Muse could read the old 'record' flag and the new 'openFlags' tags, but only stored the + old 'record' tag (well, it was actually storing rwFlags by mistake). + - Added the necessary tag to file write. (Related to the fix above - now it stores the port in/out enable). +01.04.2009 + * Fixed: Compile problem with muse widgets plugin "undefined reference to `main'". (T356) + - Added -c to musewidgetsplugin_so_CPPFLAGS in muse/widgets/Makefile.am + - Re-ran automake, configure, built, tested ok. + - To be tested by users... + * Fixed: Compile error: "editctrlbase.cpp:53: error: invalid use of incomplete type 'struct PosEdit'" (T356) + - Added a <customwidget> section to editctrlbase.ui + - To be tested by users... +31.03.2009 + * Feature: Midi file export: Configuration options added for 2 or 4 byte time signatures + note off optimizations. (T356) + - For 4 byte timesigs: Add fixed "metronome" value of 24 (once per quarter-note), and "32nd notes per quarter-note" value of 8. + - For note off optimizations: Replace note offs with zero velocity note ons. + * Fixed: Midi track info panel now updates when external changes occur, such as keyboard program changes. (T356) + - Changed track info window from songChanged based updates to periodic heartBeatTimer based updates. + * Feature: Added midi input detect indicator to track info panel. (T356) + - Detects all note on-off, controller, aftertouch, program change, and pitchbend (but not sysex or realtime) + events on the selected channels, on the selected midi ports. + * Fixed: Midi program adjustment controls now respond when external program changes occur. (T356) + - Added a section to handle ME_PROGRAM in MidiPort::sendEvent(), so that visual controls can update, + such as trackinfo 'program' , and pianoroll 'program' controller adjustment knob. + * Fixed: Some issues with 'Follow Song' setting and position cursor position/visibility. (T356) + - Added 'xorg' in ppos calculations in Canvas::setPos() (and others like WaveView, but that still isn't quite right.) + - For windows which have an appreciable x origin (space at the left of the contents), the play cursor was + too far right or not visible sometimes, especialy with large horizontal zoom, particularly the arranger. + With 'Follow Continuous', the play cursor should now stay about in the middle of the windows. + With 'Follow Page', the view should now more or less always move in full 'pages'. +27.03.2009 + * Fixed: Track info 'instrument patch' list box was not correct when selecting another track with unknown patch. (T356) + - Broken last fixes. + * Improved: Support for & < > \ " characters in xml files. (T356) + - Fixed xml.cpp + - Many places in muse can now use them (ex. track name, instrument names/patches/controllers etc.) + - TODO: Writing: Must still check for places which manually use Xml::nput, put etc, but at least muse + should now read them all without trouble. + * Fixed: Instrument Editor was still asking to save sometimes even if user clicked save already. (T356) + - Call instrumentNameReturn() patchNameReturn() and ctrlNameReturn() from various places, to force update. + * Feature: Redesigned Midi Sync Editor and sync system. To allow multiple inputs/outputs, and more. (T356) + - See tooltips or click on What's This to see detailed explanations of each item. + - TODO: Only realtime MC events are tested at the moment. MMC and MTC are not tested, or not working yet. + - TODO: Fix midi sync clock input. Observed problems: wandering, even reversing(!) song cursor time. + Can be stored in .med file that way (tempomap->fix is negative number!) making a bad file which won't play. +12.03.2009 + * Fixed: Global configuration dialog 'Displayed Resolution', and added 'Midi Resolution' boxes. (T356) + - Separate midi/gui configurations were allowed, but not implemented. + - TODO: Now make the 'Displayed Resolution' setting actually do something. + The 'Midi Resolution' currently sets BOTH what should be separated into midi and gui. + Only config.division is used throughout muse, not config.guiDivision. + Also, now that these settings are working, they reveal some issues with drawing, such as + not enough pianoroll zoom-out ability with high resolution. + * Improved: Midi Clock output. Was improper, causing external devices to misbehave. (T356) + - Changed MidiSeq::processTimerTick(). + - Tested: With RTC resolution at 8192, the target device slowly drifted out of phase with muse after + about 20 bars. With RTC resolution at 1024 it was actually more stable (100 bars or more), despite + more clock jitter. + Used an equalization scheme to balance the time out. Must test if stability improves without this scheme. + MidiSeq::processTimerTick() still needs some tweaking. + - You may see severe phase difference if moving the cursor around and playing. Try playing from the song start. +19.02.2009 + * Patch: Patch to find best available ALSA timer. (T356) + - Submitted by Pedro Lopez-Cabanillas. Patch was named "muse_alsatimer_2nd.patch". + - "This patch adds selection logic to ALSA timer initialization, trying to find + the best available ALSA timer (a non slave timer with lowest resolution). + Currently muse uses only the ALSA system timer, even when the system has an + ALSA RTC or ALSA HPET drivers available, which are probably better for many users." + * Patch: Patches for printf%zd/size_t, and grepMidi/gcc4.4 issues, and fix some compiler warnings. (T356) + - Submitted by Orcan Ogetbil. + - Patches were named muse-size_t.patch, muse-gcc44.patch, and muse-fix-some-compilation-warnings.patch + * Fixed: Some more issues with manipulating drum tracks and underlying controller events. (T356) + - Changing a drum track's output port, (and allowing muse to change the whole drum map), + was not changing existing port controller values. + - Also changing a track from 'midi' <-> 'drum' was not changing the port controller values properly. + - NOTE: I still observed occasional 'ghost' midi port controller values. Tracking this issue... + * Fixed: Seek or Init Instrument with XG instrument caused double loading of controller init values. (T356) + - Moved controller init code from MidiPort::sendGm/XgOn() to a new MidiPort::sendGm/Gs/XgInitValues() + and changed Audio::initDevices() to call them. + * Added: 'Value' readout on menu toolbar (beside 'Cursor' readout), in Drum Editor. (T356) + - Just like pianoroll, except it only shows controller values. + - Now you can read the values you are drawing on the Drum Editor controller graph. + * Fixed: Some issues with configuration, and appearance window. (T356) + - Muse now remembers configured 'selected track foreground/background' colours. + - Added "Midi Editor -> controller graph" colour configuration option (default navy blue). + - Fixed Arranger and Style/Fonts windows not showing current values. + * Fixed: Segfault with Appearance configured to show events, with a part tick > 0 on part canvas. (T356) + - Added limit checks on from/to variables in PartCanvas::drawItem(). + * Fixed: Midi controller graphs were displaying 'quantization' vertical lines instead of 'snap' lines. (T356) + - Changed CtrlCanvas::draw() to use raster instead of quant value. + - Also changed gray background colour to darkGray, so 'major' snap lines can be seen. + * Added: Send 'null' midi controller parameters after each RPN/NRPN controler event. (T356) + - Symptom: After muse sends any RPN/NRPN controller event, operating the 'data' (MSB/LSB) + midi controllers affects that RPN/NRPN controller. + - Cause: The RPN/NRPN parameters are still active, open to any subsequent data adjustments. + - Cure: Send 'null' parameters after each RPN/NRPN event, so that subsequent data adjustments + are sent there instead. + - Added adjustable 'null' parameter numbers to the instrument editor. Typically they should + be '127/127', but they are adjustable (select an unused controller number) if desired. + They can also be turned off, if desired, by selecting 'off/off', so that muse will NOT send + them. Turning them off is useful for instruments which do not use RPN/NRPN controllers. + * Changed: GS/XG instrument patches high banks from 18 to 128, 17 to 127, and 5 to 65. (T356) + - Was it a typo? XG specifications say high banks should be 128, 127, 65 etc. + - Also, in instrument editor, reorganized XG Drum patches into Drum Kits and Sound FX. + - TODO: Other instruments may have to be changed, too. + * Fixed: Track info 'Rec' button: If new part was created, it was too short even to see. (T356) + - Changed Song::recordEvent to round (tick + 1) up one bar. + - Added separate record buttons for program (and bank), volume, and pan. +18.02.2009 + * Added: Missing midi program controller to pianoroll/drum edit controller graph and adjustment knob. (T356) + - Since the range is limited to 1-128, this only edits the program byte, NOT the program MSB or LSB! + - Since only the program byte is edited, adding new values to the graph uses the CURRENT + program MSB and LSB, as shown in the track info pane (H-Bank/L-Bank). + If the current program is 'unknown' (all off), then the graph uses MSB=off, LSB=off if the song type + is GM, and MSB=1, LSB=1 if not. + - I considered using the 'previous value' on the graph for the MSB/LSB, but then there would be + no way to quickly set the MSB/LSB when adding new values to the graph. + - The only other way is to draw on the graph, and then use the midi event list editor to change + the program MSB/LSB values. + - TODO: Fix the track info H-Bank/L-Bank/Program behaviour. Do not allow program to be 'off' + if H-Bank/L-Bank are not 'off'. + * Changed: Instrument editor behaviour. Allow a 'user' instrument directory PLUS the 'built-in' directory. (T356) + - Muse now looks first in the MUSEINSTRUMENTS directory (default MUSEHOME/muse_instruments, where MUSEHOME + is default HOME/), then looks in the 'built-in' instrument directory (/usr/share/muse etc.) + - Instruments found in the user directory OVERRIDE instruments with the SAME NAME in the 'built-in' directory. + - This allows users to quickly experiment with existing instruments while keeping the same instrument name. + - TODO: add a 'Delete' button to the instrument editor. + * Added: Pitch bend sensitivity controller to fluidsynth. (T356) + * Fixed: Organ synth: Volume not working. (T356) + - There is no volume gui control to return proper min/max values. + - Added a trap for CTRL_VOLUME in Organ::getControllerInfo() and + set min/max to 0/127. + * TODO: Fix some broken VAM synth midi controllers with improper range. (T356) +09.02.2009 + * Fixed: Drum map: Grey vertical lines not proper when map header rearranged. (T356) + - Used header->mapToSection when drawing grey vertical lines in dlist.cpp. +08.02.2009 + * Fixed: Drum map - Changing ANote, Channel, Port now updates controller graph and knob. (T356) + - Changing ANote, Channel, or Port of a drum map item now updates the controller graph + and adjustment knob. Useful for XG/GS drum controllers. + - TODO: Fix 'Undo' changing ANote, Channel, Port. + * Fixed: Drum map - List item drag and drop works properly now. (T356) + - Was not manipulating events properly, although port controller values were still OK. + Useful for XG/GS drum controllers. + - TODO: Fix 'Undo' of drag and drop. + * Changed: All calls to some new message sending routines with direct calls. (T356) + - Replaced all calls to msgSetTrackOutChannel, msgSetTrackOutPort, msgRemapPortDrumCtlEvents, + and msgChangeAllPortDrumCtrlEvents, with direct calls (song->remapPortDrumCtlEvents etc.), + bracketed by audio->msgIdle(true) and audio->msgIdle(false). + - For complex operations, 'msgIdle' technique seems to be preferred over sending messages. + - Tested such operations while in stop mode, and while playing. Tested OK. +06.02.2009 + * Changed: Hard coded LADSPA paths in plugin.cpp and ssplugin.cpp to include /usr/lib64/ladspa + and /usr/local/lib64/ladspa. (T356) + - Suggested by Orcan Ogetbil + - Note that the environment variable LADSPA_PATH still overrides these hard-coded paths. +06.02.2009 + * Patch applied: Removes duplicate implementation of fast_log*() functions in ssplugin.h (T356) + - Submitted by Orcan Ogetbil +05.02.2009 + ======================================= + * 1.0rc1 tagged (rj) + ======================================= +04.02.2009 + * Fixed: Track info panel 'Rec' button not changing existing values on controller graph. (T356) + - Name changes: MidiCtrlValList::add, ::del, ::find to ::addMCtlVal, ::delMCtlVal, ::findMCtlVal + to make it easier to spot all usages of them. + - Simple fix in MidiCtrlValList::addMCtlVal: Return false if the value is already found for the part. + - TODO: It takes three 'undos' to undo the 'Rec' button push. It is because prog, vol, and pan + are changed. This should be unified into one undo... + +01.02.2009 + * Fixed: Compile error on 64-bit systems, in audiotrack.cpp at cacheJackRouteNames(). (T356) + - Changed from unsigned int pair key, which required pointer conversion, to AudioTrack* pair key. + - Test OK (on my 32-bit system). ** Need 64-bit users to test it. ** + * Fixed: Segfault when playing a note in a drum map, when the note's port says 'none'. (T356) + - Added a line in the 'don't echo controller changes back to software synthesizer' block of + Audio::processMidi(), to check valid device. + * Fixed: Missing or stuck notes or events on recording (or rec-armed only) midi track. (T356) + - Symptom: Playing live (rec-armed only), or recording, on a midi track gives stuck or + missing notes and other events. Very annoying bug! + - Cause: A single list was used for recording midi events, while muse was also reading from that list. + - Employed a 'flipping' two-list technique for MidiDevice::recordEvents(). + - In Audio::processMidi(), process one list while MidiDevice::recordEvent() writes to the other. + * Fixed: Manipulating controller events in midi track parts was not changing midi port controller values. (T356) + - Symptom: Change a part's midi controller events, or move or delete a part, or delete a track, then the underlying + midi port's controller values are not altered, leading to 'phantom' or 'ghost', or duplicate controller values, + even where there is no part or no track, or no controller values where there should be ! + - Oops, how did this major bug go unnoticed so long?... + - Major rewrite: Created a struct MidiCtrlVal{int val, Part* part}, and changed class MidiCtrlValList from + std::map<int, int> to std::multimap<int, MidiCtrlVal> + Changed MidiCtrlValList::add(int tick, int value) to MidiCtrlValList::add(int tick, int value, Part* part), + and MidiCtrlValList::del(int tick) to MidiCtrlValList::del(int tick, Part* part), + and added MidiCtrlValList::find(int tick, Part* part). + Changed Song::addEvent(), Song::changeEvent(), Song::deleteEvent(), Song::addPart(), Song::changePart(), + Song::removePart(), Song::insertTrack2(), and Song::removeTrack2() to make sure port controller values + are added/removed properly. + Changed a few other things to make it all work. + Reasons: The Part* member was added to each controller value item in the list, so that the system can + know exactly which part was responsible for putting a value in the list. + This helps when we have overlapping controller values from events of different parts on the same port and the same channel - + if one of the parts is deleted or moved, the overlapping values from the events of the other part are NOT disturbed + within the port's controller value list. + The list was changed from 'map' to 'multimap' to accommodate the multiple values from events of different parts. + - NOTE: When there are overlapping values from events of different parts, the system will arbitrarily choose the + first value it finds at a given time. I considered 'mixing' the overlapping values together + (by averaging, or maybe highest/lowest value), but I felt it would just cause more confusion for the user. + Therefore it is up to the user to be aware of overlapping controller events and deal with them. + If you are looking at a controller graph and it shows a particular value at some time, but the + midi knobs/sliders and actual midi output does NOT correspond to what you are seeing, then + most likely ANOTHER part on the same port and channel has an event at that same time, and that + event's value is likely the one that is being used by the system. + * Fixed: Changing a midi track's out port or channel was not updating the ports' controller values. (T356) + - Changed MidiTrack::setOutPort() and MidiTrack::setOutChannel() calls to new MidiTrack::setOutPortAndUpdate() + and MidiTrack::setOutChanAndUpdate(), which make sure the port's controller value list is properly updated. + - Part of the larger fixes above. + * Fixed: Midi adjustment knob on controller canvas was not working after moving the part to another track. (T356) + - Added some code to CtrlCanvas::songChanged() to set curPart and curTrack and update the knob, + upon SC_PART_MODIFIED. + * Fixed: Clear midi input transforms when song cleared. Update transform dialog when song changed. (T356) + - Symptom: Repeated loading of songs causes duplication of midi transforms, causing .med song files to grow big ! + - Added clearMidiInputTransforms() to midiitransform.cpp, called by Song::clear(). + - Added updatePresetList() and slot songChanged() to MidiInputTransformDialog, triggered by Song::songChanged. + - Added some code to readMidiInputTransform() to **auto-eliminate** duplicate transforms in existing .med files. + - Still some 'quirkiness' with the dialog buttons, but it works better now. + - ALSO: Applied those same fixes to midi transforms and the midi transform dialog. + * Fixed: Notes not recorded to track for a drum map 'instrument item' having non-default (track) port. (T356) + - Changed to drumRecEvent.setPort(port) in 'Track::DRUM' section of 'if(recording)' section of Audio::processMidi() + so that buildMidiEventList() would accept the notes. + * Fixed: Removed jack midi port names from audio in/out port lists. (T356) + - Added JACK_DEFAULT_AUDIO_TYPE to jack_get_ports calls in JackAudioDevice::inputPorts and ::outputPorts. + * Fixed: Notes were being mixed up when switching a track type between midi and drum. (T356) + - Changed to drumMap[pitch].enote in 'Drum -> Midi' section of TList::classesPopupMenu(). + * Completed: Moving multiple events from multiple parts when editing in pianoroll or drum editor. (T356) + - Work had begun several commits ago. Completed. + - Now you can select and move multiple events from different parts in the editors. + * Feature: When editing multiple parts in the pianoroll or drum editor, controller graphs are now overlaid! (T356) + - When you are editing more than one part at a time in the editors, the controller graph will overlay + all of the graphs together! + - The currently selected part will show its controller as normal blue columns, as before, but the other + unselected parts will draw their controllers as a gray 'ghost' outline on top. + - TODO: Add menu items, hot keys etc. to cycle through each part (in case there are no notes to select in a part!) + * Improved: Support for GS/XG midi drum controllers. (T356) + - Added MidiPort::drumController(). Tells if an event is a drum controller event, according to the port's instrument. + Does it by looking up the event in the instrument's controller list. + Would prefer a 'marker flag', eg use the event 'dataA' high bit to mark as drum controller event, but it's too risky! + Used MidiPort::drumController() a dozen or so places where drum controller events needed remapping/manipulation etc. + May be a speed hit with many/large controller graphs? Test further... + - Added code to update port controller values when changing drum map ANote, channel, or port. + - KNOWN BUGS: Still a few loose ends to tie up: Port controller values (but not track events) may not be correct when: + 'Swapping' (by dragging) items in the drum map, and + loading a song with a drum map which had 'swapped' (by dragging) items. + Some stuff (midi value adjustment knob) is not updated when changing drum map ANote, channel, or port. + Workaround: Be sure to select another drum map item, then reselect the changed item again, after such operations. + * Changed: All softsynth midi controllers now have default initial values. (T356) + - Added default initial values to all softsynth controllers such as fluidsynth's controller map. + - Added 'initval' argument to all ::getControllerInfo() methods, which is passed to the newly created + controller (new MidiController) in SynthI::initInstance(). + - These initial values will then show on the various gui midi adjustment controls, knobs etc. + * Changed: Fluidsynth master gain and reverb initial settings. Gain was too loud and there was too much reverb. (T356) + * Fixed: Follow up - some issues with instrument editor. (T356) + - Instrument editor was sometimes falsely detecting instrument had changed. + - Also, do not list 'internal' instruments like generic midi, soft synths, vst etc. + - Also, upon 'Save As', prompt for a new instrument name if the user hasn't changed it, to avoid duplicates. + - Remove any unsaved (new) instrument when moving to another instrument, closing etc. + - Fixed up tab order of instrument editor controls. + - TODO: When muse wants to close, trap it in the instrument editor so we can save. + * Fixed: Problem in xml parser. '&', '"' etc were being read as '&&', '""' etc. (T356) + - Added a couple of lines, and removed one, in Xml::stoken(). + * Fixed: Zero bias midi controllers (with a negative minimum value, like 'pan') weren't working right. (T356) + - Broken after last changes. Added an updateBias() line to MidiController::read() 'controller' tag end section. + * Added: Send all instrument controller initial (default) values to all of a port's midi channels, + except where explicitly initialized by the song. (T356) + - Added some code to MidiPort::setMidiDevice to initialize controllers from instrument, if needed. + - When setting a midi port's device (such as in Settings->Midi Ports, or simply when loading a song), + then any specified controller initial values in the instrument are sent to ALL of the port's channels, + EVEN if the controller is NOT in the song. This ensures better consistency between songs, so that + chosen controllers are not left in undesirable 'leftover' states. + (Taken from important comments in MidiPort::setMidiDevice(): ) + For example: A song is loaded which has a 'reverb level' controller initial value of '100'. + Then a song is loaded which has no such controller (hence no explicit initial value). + The 'reverb level' controller would still be at '100', and could adversely affect the song, + but if the instrument has an available initial value of say '0', it will be used instead. + - It is desirable to have defaults for some controllers, but it is wise to have NO default for certain + other controllers, like the 'reset all controllers' and 'sustain' controllers (actually, zero would be OK). + * Changed: Clicking Midi->InitInstrument (or moving to song position 0) now initializes controllers + from instrument controller initial values, if they exist, or previously hard coded values if not. (T356) + - sendGmOn() and sendXgOn(), which are called via Audio::initDevices(), now use instrument controller + initial values if they exist, or the previously hard coded values if not. + * Changed: Non-softsynth non-GM drum tracks: Patch popups now show all drum AND melodic patches on ANY channel. (T356) + - For drum tracks, if the song type is not GM, and the track's port is not a softsynth, then all patches + including drum AND melodic are shown for ALL channels when 'select instrument patch' popup is clicked, + regardless of the patches' 'drum' flag setting (in the instrument editor). + (Softsynths handle their own patch popup lists). + - Added a 'bool isDrum' parameter to all populatePatchPopup() methods, which is passed 'true' only + if it's a drum track, and changed a couple of lines in the only class which uses the drum flag - MidiInstrument. + - Previous behaviour was to show drum patches ONLY on channel 10 of drum tracks. + - Reasons for change: 1): A midi device might have a non-standard drum channel(s), so drum patches + as well as melodic patches are shown for all channels. 2): Since any channel can be used in the drum map, + melodic patches are shown as well as drum patches so that any patch can be selected for any channel. + NOTE: Each of a drum track's channels which are used in the drum map should be set to a patch number, + otherwise it doesn't work right ! (**) This is true for softsynth devices too ! (**). + So it was imperative that the user be able to select ANY patch on ANY channel, to suit their setup, + for flexibility. + (If that same flexibility were applied to regular midi tracks (non-drum tracks), it might make the + 'drum' flag for patches obsolete, since there would be no reason to filter them from the list !) + * Changed: All midi controller event values sent to a midi port are now constrained (limited) to the port's + instrument controller's range (if that instrument controller exists). (T356) + - Example: Incoming events from a midi keyboard's pitch wheel range from -8192 to 8191, but it is + desired to limit that range to, say -200 to 8191. One could use the midi input transformer to + accomplish this, but instead now you can simply adjust the chosen instrument's pitch controller range + (in the instrument editor), and then the pitch wheel's range will be limited to that range. + - This only affects playback events (and therefore 'live' incoming events), but does NOT affect + actual recorded data, so that by simply readjusting the instrument controller's range, + or by changing instruments, the range can be restored with no loss of recorded data range. + * Fixed: Cleaned up all .idf files and changed ranges of all 'zero-bias' controls (-64/63 'pan' etc). (T356) + - Many .idf files had bare '&' characters in them, causing corruption of names and values when reading. + - Also turned on the 'drum' flag for ALL drum patches in MANY .idf instrument files. + Some .idf's I was uncertain about, and did not change : AlesisQS6, Waldorf Q. + * Changed: Fluidsynth pan controller range from 0/127 to -64/63. (T356) + - To be consistent with .idf file changes. + * Replaced: All direct calls to MidiPort::setHwCtrlState() from GUI thread, with new Audio::msgSetHwCtrlState(). (T356) + - My fault, I was not paying attention to iter-thread communications. + * Optimizations: Optimized MidiPort::setHwCtrlState(), MidiPort::sendEvent(), and calls to MidiPort::setCtrl(). (T356) + - Optimized MidiPort::sendEvent(). + - Replaced code in MidiPort::setHwCtrlState() with more optimized code. + - Replaced several clumsy calls to MidiPort::setCtrl(), which checked for and created the controller, + with a new optimized MidiPort::setControllerVal(). +06.01.2009 + * Fixed simpledrums/ssplugin.cpp to build with recent Ubuntu 8.10 (FN) +17.08.2008 + * Feature: Muse now has an instrument editor, complete with a midi controller editor! (T356) + - Click on the menu "Midi->Edit Instrument". + - You will see a sysex editor there too, but it is non-functional. (Use the midi event editor instead). + - >>> Tooltips and "What's This?" are provided with IMPORTANT information. <<< + >>> If you want to understand how to use instruments, patches, and controllers in your song, <<< + >>> READ THEM! <<< + * Added: Environment variable MUSEINSTRUMENTS, so a (writable) instrument directory can be chosen + instead of default /usr/share/muse/instruments etc. (T356) + - Also added display of environment variables recognized by muse to command line help (muse -h). + * Fixed: Popup displays of instrument patches to filter according to GM, GS, XG song type, and whether + on drum channel 10. (T356) + - Use the new instrument editor to set these GM, GS, XG, and drum filters. + * Changed slightly: Creation of a new drum track - initialize to channel 10 instead of 1. (T356) + * Fixed: Force audio prefetch seek when play is pressed. (T356) + - In Audio::seek, changed the call of audioPrefetch->msgSeek to force a prefetch, + to ensure the most recent data. Things can happen to a part before play is pressed + such as part muting, part moving etc. Without a force, the wrong (old) data was being played. + - If you perform those same operations while playing, there may be a few seconds delay before you + hear the changes (the play cursor must move a certain distance before they're heard). + - TODO: How to make the same thing happen when transport is externally started, such as from qjackctl. + OR: How to force a prefetch at specific places like when a part is muted, and when it is moved, + instead of just before play is started. That way the operations can be done quickly while playing. + * Fixed hangup: Upon loading of songs with fluidsynth soundfonts which can't be found. (T356) + - (!) Removed error message box from FluidSynthGUI::processEvent causing freezeup. + - You can still read fluidsynth errors by running muse on a command line. I figured it was + better to be able to load the song and to see errors, instead of just letting it freeze. + - This should now allow you to share fluidsynth songs with other people (without the soundfonts). + * Fixed: Audio aux tracks not working, intermittent. (T356) + - Aux functionality was intermittent depending on whether the aux had out routes, + and whether any tracks feeding the aux had out routes, and other factors. + - In Audio::process1, rearranged, and added, some code to make aux work all the time now. + * Speedups: To some songChanged() functions. Ignore unnecessary flags. (T356) + - For example simply adjusting midi gui controls would cause costly and + unnecessary rebuilding/redrawing of certain areas, like parts of trackinfo, and controller graphs. + - Noticeably less 'slugglish' when adjusting controls now. + * Fixed: Midi controller events not being added to midi port controller, after record with no part. (T356) + - Symptom: If you record midi controllers without first creating a part, muse creates the part + for you and creates the controller graph OK, but when you move the play cursor around, the graphs + have no effect. This doesn't happen if you first create the part to record into, or manually edit a graph. + - Symptom: As above, the graph is OK, but the controllers don't show up in the list when you click 'ctrl'. + - Changed a line in song::cmdAddRecordedEvents() to use addEvent() instead of adding directly to list. + * Fixed: Automatic detection of pitch bend wheel not working. (T356) + - Added some code to MidiPort::sendEvent to detect ME_PITCHBEND events. + - Note: There appears to be a sound system bug (using ALSA 1.0.15): The system will NOT deliver any pitch + bend events to muse until ANOTHER controller is detected, ex. move the modulation wheel THEN the pitch wheel. + Verified with another app - RG - and with a real midi hardware to hardware connection (not my KB's fault). + * Observed: Stuck or missing midi notes when recording or even just 'record armed only' 'live' playing. (T356) + - The sound system appears to be having occasional trouble detecting midi events, including note-off ! + Verified with muse and RG (using ALSA 1.0.15). Not sure why or when this started, seems early this year... + * Linked: All midi knobs and sliders with their labels. (T356) + - Now they work together when displaying and adjusting. + - After careful consideration of the meaning of 'off' in those + labels, you now double click the label to turn the midi control on/off. + Off does not mean 'zero'. Rather, it means: + 'Don't save this current value in the song file'. + When a midi control is 'off', loading the song won't initialize the controller with a value. + 'Off' means the current value is set at 'unknown'. 'Unknown' means the actual + 'behind the scenes' hardware value is the last value that was set. The knob or slider still + shows this value, or a default initial value, or if both of those are unknown, then 0. + * Changed: Midi and audio level slider/knob labels to show '---' for infinite attenuation. (T356) + - As mentioned above, the midi level slider labels can also show 'off'. + * Fixed: The new midi controller knob in pianoroll and drum editor. (T356) + - It was not adjusting anything. + * Fixed: Midi vu meters again. Now they should work! (T356) + - They were not responding to play events with an off velocity other than zero. + * Fixed: Marker view window doesn't remember if it is open or closed. (T356) + - Add a markerClosed function to app. + * Reverted: Back to audioRTalloc in mpevent.h (T356) + (!) - I had changed it to midiRTalloc, but that may have been causing problems like + midi shutdown (audio OK) after a few hours, and crash soon afterwards. + Verifying... No more midi shutdowns after a few hours, so far... + Ooops, not so fast, happened again... +30.04.2008 + * Fixed bug in drum editor. Dragging the splitter too far left causes runaway resize, stuck in loop. (T356) + - Tried several different arrangements, but QSplitter won't behave the way I need it to. Best I could do, so far. + - You may notice some strangeness, like the controller graph not aligning with the matrix, if the right edge + of the window is offscreen. + * Added 'add/set event' to audio automation right-click popup menus. Ancient request by R.J. (T356) + * Fixed arranger midi strip and arranger top controls not giving up keyboard focus after adjustment/entry. (T356) + - Further request by user G.B. Changed all relevant QSpinBoxes to custom SpinBox, which behaves like this: + Click up/down, or mousewheel, or hit enter with un-modified text (which means enter TWICE for modified text), + and the control will give up focus, thereby allowing you to use global shortcut keys afterwards. + Up/down keys still keep the focus. + - TODO: Piano roll and drum editor. + * Fixed major problem with lost jack routes upon file save, when save causes a jack shutdown. (T356) + - Symptom: You click save, but jack shuts down during the save, causing lost jack routes in the file. + - Fix: Cached the jack route names before file save, then used them during AudioTrack::writeRouting() xml code. + Note this doesn't actually stop shutdowns from happening - now it just saves your files without losing jack routes. + * Fixed mysterious intermittent wave part muting, as mentioned in 11.03.2008 (T356) + - !!! PartList and EventList are now sorted by frame instead of tick, for wave parts only. Because fetchData() + didn't like sorting by ticks. This is a radical change. So far, no other areas found requiring further coding, but... + * Overlapping wave parts and events now mix together, instead of one part or event taking priority over others ! (T356) + - Virtually no speed hit, since muse was already cycling through all the wave parts/events, + just not mixing them together. So the very LAST wave part/event in the part/event lists was + taking priority over others. + * Fixed default instrument midi controller min/max values. (T356) + - Symptom: Some pianoroll midi controller graphs much too small or too big, vertically. + - Cause: You added these controllers to your track as a midi instrument, ex. General Midi (GM), then you + changed the instrument, ex. to 'Generic Midi' or another instrument without those controllers, + which set improper min/max values. + - Fix: Added code to MidiPort::midiController() to set proper min/max values based on standard controller type. + However, if the original instrument used CUSTOM min/max values, the graph may still be distorted. + * Fixes to midi event list editor. (T356) + - Added true sorting of event list. Now you can click on column headers to sort as desired! + - Added formatted program number display (like 1-1-120) for 'Val B' column. + - Fixed Poly After Touch events display in list. They were being listed as Channel After Touch. + - Fixed crash when 'Delete events' clicked with no actual items selected. + - 'Edit Contoller Event' dialog: + - Fixed 'Create New Controller' popup list: Now it actually creates the selected controller. + - Fixed 'Program' controller not showing correct program after selecting other controllers in list. + - Fixed too high initial value displayed for controllers without an initial value in the instrument file. + - 'Enter Poly After Touch' dialog: + - Fixed uneditable note box. Switched from PitchLabel to PitchEdit. + * Feature added - Pianoroll and drum editor controller graphs now have a static manual adjustment knob ! (T356) + - Now you don't have to enter controller graph values to adjust a setting, just turn the knob. + * Changed 'Create New Controller' in event editor 'Edit Contoller Event' dialog, and 'add new...' controller popup + list in piano roll. (T356) + - Now they only list controllers not already added, instead of all of them. + * Fixed 'Position Edit' controls (0001.01.000 + up/down buttons) - click 'down' nothing happens. (T356) + - Added updateButtons() call to PosEdit::setValue(). + * Fixed Mixer midi strip variation, reverb and chorus send knobs not enabled after controllers added. (T356) + - Now you only need to create the controller to enable the knobs, allowing you to set a manual value without + having to actually create one or more controller events first. + * Fixed midi trackinfo pan value not the same as midi mixer strip pan value. (T356) + - Trackinfo pan now goes from 'off' (-65) to -64 to +63. + * Fixes to fluidsynth. Would crash when getting patch names from an 'unspecified' soundfont. (T356) + - In fluidsynti.cpp, various places check for FS_UNSPECIFIED_FONT only. Added check for FS_UNSPECIFIED_ID. + - Not sure if FS_UNSPECIFIED_FONT is redundant and unnecessary, but left it there anyway. + * Fixed old bug - IntLabel control - right click causes popup and runaway increment. (T356) + - Fixed NEntry widget. Same fix as for double entry widget (DEntry), somewhere way down on this change log... + * More fixes to wave part gluing/splitting/drawing/playing. (T356) + - Now all splitting/gluing of wave parts, even overlapping ones, even multiple times, should work. + - Fixed problem in WaveTrack::fetchData causing it to read too many samples of wave events. + * Fixes and changes to bounce functions. (T356) + - Fixed garbled target track or file. processWrite() was writing ALL the Audio Outputs to the file or track, instead of just one. + - Feature: Bounce to track (from menu): You now first select any single Audio Output track, and any single target Wave track. + - Feature: Bounce to file (from menu): You now first select any single Audio Output track. + * Fixed some problems with Mastertrack window. (T356) + - Mastertrack window was causing tempos to be inserted into tempo list, if window open when project loaded. + - Added signature list change event handling - to update signature value box. + - Fixed drawing of signature scale after signature list change. + * Fixed wave editor 'reverse' function crashing. (T356) + * Fixed track list not highlighting wave tracks (default green) when selected in the arranger window. (T356) + * Fixed midi VU meters, again. (T356) + - Borrowed idea from Muse 2. Self-decay the meters in midi strip code, rather than the midi thread code. + - The midi VU meters self-decay at a rate determined by the GUI update rate in the configuration. +11.03.2008 + * Fixed arranger controls not giving up keyboard focus after adjustment/entry. Requested by user G.B. (T356) + * Fixed gluing/splitting of waveparts. (Known bug of 02.02.2008 is gone now). (T356) + * Fixed playing, and arranger/waveeditor drawing, of glued waveparts. (T356) + - 'Working on' of 26.01.2008 is done. + - Drawing of waveparts, even 'glued' ones, now fully respects tempo changes. + * Fixed 'glued' mono + stereo wavepart drawing. Was drawing outside track if track height small. (T356) + * Fixed soloed/muted wavetrack audio 'bleeding' into other wavetracks. fetchData() was not checking isMute(). (T356) + * Fixed part colour popup to change unselected clicked item colour if no parts selected. (T356) + * Fixed recent possible accidental(?) change of tracklist xml tag 'header' to 'header1'. (T356) + - Muse was complaining: Tlist: unknown tag <header> at line 32 + * Fixed MREventList in mpevent.h, to use midiRTalloc instead of audioRTalloc. (T356) + - Possible accidental(?) coding error since there is no other usage of midiRTalloc at all in muse. + - If it does help at all, it might just ease RT congestion a bit. + * Working on MIDI VU meters. They're too fast to see with jack, but should be OK with dummy driver. (T356) + * KNOWN PREEXISTING BUGS + - If you move waveparts around AFTER the current play position, then play, muse actually plays the same + arrangement as if you had not moved the waveparts at all, just one time - rewind the play position and + it corrects itself. This is because muse does not prefetch the audio again after the movement of the parts. + Workaround - After moving waveparts, be sure to rewind the play position to a point AT LEAST before those parts. + - Wave parts will sometimes mysteriously go silent for no reason. Move the parts slightly, or reload, or do + certain other operations, then the sound comes back. Working on this important issue! +02.02.2008 + * Fixed a slight error in BigTime absolute display. Now shows proper absolute tick and frame values. (T356) + * Added an extra arranger wavepart right-click popup menu item - "file info". + Shows what wave file(s) are used by the wavepart event(s). + TODO: Either remove duplicate file names or list the files by event number. + Spice up with more info like wave starting/ending points etc. (T356) + * Removed some debug output lines from dummy driver - may have been causing intermittent crashes when moving position. (T356) + * Some more fixes to arranger partcanvas wavepart drawing - speeded up and tightened code. + KNOWN BUG: Does not correctly display more than one wave 'event' (file) per wavepart. (For ex. two waveparts 'glued' together). + Working on this issue ! (T356) +27.01.2008 + * Fixed MIDI mixer strip VU meters. Let there be light! Not the best solution, a choice between two so-so methods. + Looking at how to improve it... (T356) +26.01.2008 + * Pianoroll and drumedit now open at the current cursor position. (T356) + (The cursor position is that moving black vertical line on the time scale). + This means you just click on an arranger midi part where you want to open the editor. + * Arranger, pianoroll, drumedit and waveedit now stay at their current (left-side) position when you use the scale bar. (T356) + * Fixed 'end of part' drawing problems - now you are guaranteed to see about 1+1/4 extra bar after the end + of a pianoroll/drumedit (also compensating for drumedit drummap/canvas splitter), allowing you to + add/move/clone notes past the end and allowing muse to properly auto-extend the part (to the right). + TODO: Auto-extend parts to the left when necessary. (T356) + * Added vertical, and fixed horizontal, lasso/parts/events auto-scroll - even past the end of parts. (T356) + * Fixed drawing of wave parts in arranger. Now you can rely on the 'picture' of the wave inside the part + lining up correctly with the time scale, regardless of tempo/timesig changes in the song. (T356) + * More fixes to wave editor. Fixed drawing of markers - they were much too close together. + Added songChanged synchronization with arranger (you move/resize a wave part and the wave editor readjusts, etc.) + WORKING ON: In the arranger, if you move a wave part to the left, the wave editor will readjust but the + wave may be chopped off at the end. Investigating... (T356) + * Corrected the drawing order of items from ALL parts in pianoroll and drumedit. For multiple-part viewing. + WORK IN PROGRESS: Added ability to select items from different parts at once, and to move them. + For now, only items from the currently selected part actually move. (T356) + * Added small checkbox to Big Time display. Now you can switch between formatted or absolute time display. + Absolute is handy for syncing with another app, or just knowing, absolutely, where you are in the song. Absolutely. + Added ToolTip popups describing each 'group' of numbers (bars, beats, ticks etc). (T356) +20.01.2008 + (ml) + * Added function for deleting note overlaps in piano roll (usually makes fluidsynth grumpy - silencing the following note). + * Some work on opening the editor at current position and selecting the leftmost item + (ws) + * fixed hanging note when editing multiple parts in midieditor and + switching part +19.01.2008 (ws) + * fixed Song::changeEvent(): part tick offset was not used + * fixed removing of controller events in Song::deleteEvent(); this affects midi recording + in replace mode and controller editing +12.10 + * Fixed automation right-click popup menu 'prev/next event' not working after a tempo change. (T356) + - Now you are guaranteed to be able to navigate the automation events, regardless + of how many tempo or time signature changes are in the song, or if you change the tempo/sig(s) + AFTER adding automation events. +12.06 + * Fixed softsynths 'Fluidsynth', 'Deicsonze', and 'Fluid' to allow pitch wheel changes. (T356) + * Fixed softsynths 'Fluidsynth' and 'Deicsonze' to allow MIDI patch changes. (T356) + Note that I included MIDI patch change code in 'Fluid', but fluid is slightly broken + and still doesn't respond. 'Fluid' should be removed from muse. It's obsolete. Use Fluidsynth. +11.22 + * Fixed LASH loading and saving. (T356) + - Symptom - Muse fails building with error about 'lash_get_fqn' not declared in scope. + - Cause - You are building muse with LASH > 0.5.1, where certain header files have been removed. + - Fix - Replaced both calls to lash_get_fqn with QString manipulations instead. + * NOTE! I encountered a muse segfault when you use LASH to close the project. + It says 'received unknown LASH event of type 10' (which is LASH_Server_Lost), then it says + 'received unknown LASH event of type <<some big random number>>, then segfault and + a glibc backtrace due to 'double free or corruption'. Not a big deal, but this will need to be fixed. + * Tested OK saving and loading projects with LASH 0.5.4 + +09.02 + ======================================= + * 0.9 final tagged (rj) + no changes from pre3 + ======================================= + +08.22 + ======================================= + * 0.9pre3 tagged (rj) + ======================================= + +08.20 + * Fixed bug 1650953 - select and move segfault (T356) + - Symptom - In piano roll, select some notes and move them past the end of the part, + then muse crashes. Also occurs when pasting or adding notes past part length. + - Cause - Canvas was not adding the new resized part to the midi editor. Also a bunch + of other stuff needed to be fixed for it all to work OK. + * Fixed broken master list editor. Should also cure bug 1687166 (T356) + - Symptom - Open master list and nothing is listed (should be at least one default + tempo and one default time signature). Click to add new tempo or sig and muse crashes. + - Cause - Some code was added to lmaster.cpp: LMaster::updateList() which broke it. + * Added auto part resizing to drum canvas (T356) + - Symptom - In drums editor, there is no auto part resizing, like in piano roll. + - Cause - Missing all part resizing code. Added. + * Fixed intermittent crash when cutting a part. Improper 'delete while iterate' STL operation. (T356) + * Fixed arranger part selection - selected parts now draw on top of non-selected parts. (T356) + * Fixed arranger part operations (move etc.) to use selected part. (T356) + * Fixed arranger keyboard left and right previous/next part selection. (T356) + - Now you can use left/right arrow keys to cycle through parts in a track, + expecially useful for overlapping parts! + * Regarding part selection - A remaining problem is that there is no 'z-order' drawing + scheme. The part item list has no such ordering support. + - This means a selected part will (now) appear on top of others, but when unselected, + it will not stay on top. Adding that support could be messy. + - Best to leave it alone for now. At least you can (now) cycle through overlapped parts... + * Tested arranger part operations with worst case scenario - multiple tempo changes + and multiple parts. Test OK. All should be OK now. (T356) + * Added tooltip to song length box in arranger with text 'song length in bars'. (T356) + * Fixed wave editor - Black selection bar intermittent drawing. (T356) + - Symptom - In wave editor selecting a portion of the wave caused intermittent drawing + of the black selection bar. + - Cause - Unsure of exact cause or a permanent cure, but it's better now. + But it still draws intermittently if you zoom in (x magnify) very very close. + Working on this issue. + * Added feature - Wave editor now allows you to open multiple selected wave parts and + will display only those parts and you can edit them. Tested wave editor 'functions' + menu and it works OK on some or all selected portions of the multiple wave parts. + - This is in preparation for a possible automation viewer and/or editor. + - Work in progress. Some rough parts still to clean up. (T356) + * Fixed intermittent arithmetic exception crash in wave viewer. (T356) + * Fixed bad wave drawing above certain zoom level in wave editor. (T356) + * Enabled serial numbers in my deltaTick2Frame and deltaFrame2Tick routines, and + merged code. Makes it a bit faster. (T356) +======= +08.16 * Reverted change in synth.cpp, realtime playback of softsynths did not work (rj) + * fix for sustain pedal to work as suspected when looping. (rj) + * Above involved adding "managed-controllers", whenever a controller is found + time will tell if this is the right solution (rj) +02.13 + * Feature request: 1650957 space bar should start/stop playback fixed by + adding this possiblity, old style is possible with property setting in + configuration. (rj) +02.09 + * Fixed bug 1645575 - Eraser tool causes segfault in drum editor (T356) + * Added the project AUTHORS (whooo are you... who who...) (T356) +01.27 + * Fixes to remove lots of warnings and potential errors in the code (WillyFoobar) + (rj by proxy) + * Fix for bug #1074808 "NRPN - still 128 values?" from Sebastian Gutsfeld (rj) +01.06 + * Changed 'exit' to 'return' when plugins are invalid (rj) +01.05 + ======================================= + * 0.9pre2 tagged (rj) + ======================================= + +2007.01.03 + * Fixed some major issues with undo/redo. (T356) + - Symptom - Delete track(s), then undo, muse crashes. + - Symptom - Rename a track, then undo, muse crashes. + - Cause - 'Delete' destroyed the track(s), so undo would attempt to restore + non-existent object. Other problems caused rename crash. Still more undo/redo code + was causing problems, like left-over synth instances hanging around after loading a new song, + or crashing upon loading a new song if certain redo items were still in the redo list... + - Known bugs - DON'T rename a synth track then undo, muse still crashes. Not sure why yet. + After 'un-deleting' a synth track, you will have to open the 'MIDI Ports/Soft Synth' window + and manually restore its MIDI port. + Don't do anything too crazy like deleting multiple tracks while playing, might possibly crash. + After undeleting an audio wave track, its sound might not be sync'd with the rest of the song - + simply hit the fast-forward or rewind button to cure that. + * Prevented saving, and segfault upon loading, of routes in med file with empty names. (T356) + - Symptom - Jack shuts down, so instead of attempting to restart audio, you save your work, + but when you try to reload your song, muse crashes. + - Cause - Upon Jack shutdown, all audio in and out Jack routes were erased, and muse saved + the song like that. Upon reload, muse would crash due to the empty routes in the .med file. + - Note that this does not cure the original cause of this (Jack routes erased), so although you + can now re-load the song without muse crashing, you must manually restore all the audio in/out + Jack routes. So please try to restart the audio first. (Trying to fix this issue...) + * Add new soloing system. Check it out! (T356) + - Symptom - You click solo on a track but you hear nothing, and all other tracks are muted. + - Cause - Wasn't really broken, you just had to solo all other tracks in that routing path + to make sure whatever you were attempting to solo made its way to its destination so you + would hear it. + Inconvenient, yes. Especially with a large song with a lot of tracks, groups etc. + With this new system, this is done automatically for you. Even MIDI tracks driving synth + tracks, too. + - Known bug - If a MIDI track drives some external MIDI device which you feed the audio + back into muse, there's no way for muse to know how to couple the MIDI and audio in + tracks together. Sorry you'll have to manually solo both. + BUT - I'm CONSIDERING adding this - If an audio in track's name BEGINS WITH the name + of a MIDI track, I could couple them that way. For example - MIDI track named 'Track1' and + an audio in track named 'Track1 Input', then muse could mutually solo both tracks properly... + * Enabled MIDI mixer strip solo buttons. (T356) + * Some other minor fixups here and there. (T356) + - Other known bugs - Due to an earlier oversight, if you use your own custom LADSPA plugin + GUI's (see README.ladspaguis), QCheckbox and QCombobox controls may not automate quite right. + Note that this includes just one built-in custom GUI - for the 'TAP Reverberator' plugin. +21.11 + * Fixed loading of .med files, with plugins, created before muse-0.9pre1. (t356) + They will load, then save, correctly now. + - Symptom - Load an old song with plugins and some of the plugin controls can't be moved. + - Cause - Controller id's in med file mixed up, not save correctly, because of moving rack + plugins around, which never properly switched the id's before muse-0.9pre1. + * Fixed soloing (again). (t356) + - Symptom - Delete a soloed track, then soloing is messed up - other tracks may be muted but don't show it, + only way out is to reload. Speaking of which, loading also did not set track soloing correctly. + - Cause - Upon deleting a track or loading a song, track solo ref count was not updated. + * Added infrastructure for an improved soloing system, much more intuitive. (Not done yet!...) (t356) + * Fixed spelling mistake - Freeverb "Rooom" size. (t356) +13.11 + * By T356 + * More automation fixes. Everything should be working now, check it out! + * Although still no automation editor, all of these changes so far should help + manipulate and navigate the events. + * Fixed touch mode events storing, was not right. + * Fixed a couple of stray signal connects which may have caused wacky controls. + * Sliders, knobs and labels now respond to mousewheel and paging properly. + * Linked slider/knob labels with sliders and knobs so paging or mousewheeling + a label works smoothly and linearly, even with logarithmic controls. + * Fixed integer controls (like Glame Bandpass 'stages'). + * Fixed external plugin gui's to look like the built-in freeverb. This means + they now scale properly with different fonts. :) + * Hopefully the last of major automation conceptual changes - making sliders, knobs, + labels and checkboxes work together with the four automation modes, barring any fixes, + and a few tweaks to follow (like shift key for label mousewheeling, and how to make + a label stop updating so values can be entered). Some more right-click menu options + may follow (like store event, enable automation, enable interpolation). + Automation readme to come (need it!). + * Still to fix - Controls' right-click automation menu still a bit confused upon tempo changes. +10.11 + * reworked mute, old solution caused problems for solo + * solo is now united between midi and audio, they were previously + interdependant. This has the downside that if a soft synth is + soloed both the midi and the audio needs to have solo enabled (rj) + * fixed issue with hanging notes for softsynths when stop is pressed (rj) + * Backported fix from HEAD for using a file descriptor from two different + threads, should make it work somewhat better with SMP (rj) + * fixed faulty off value for aux when set to max (rj) + * Allow wheeling of tracks from track list (rj) +08.11 + * reenabled mute for outputs (rj) +07.11 + * Fixed timing bug causing MusE to depend on jack buffer setting + this needs testing, it involved uncommenting some code that might + have been commented for a reason (rj) +05.11 + * Added support for auto-scroll for other drag operations but + rubberband (rj) +04.11 + ======================================= + * 0.9pre1 tagged (rj) + ======================================= +04.11 + * Adopted RT locking method from 1.0 branch. (rj) + * Preparations for 0.9pre1 (rj) +31.10 + * By T356 + * Fixed old bug - DoubleLabel right click causes popup and runaway increment. + * Currently the increment/decrement is fixed at 1, so that's why it doesn't + work for pan or other controls with 1.0 or less max. + - So fixes to that are next... +29.10 + * By T356 + * Changing global tempo now updates things. (Like resizing wave tracks). + * Fixed segfault upon lengthening a blank new wave track part. + * Removed some thread-unsafe code from my first patch + * Fixed ladspa plugin automation not working until plugin displayed. + * Improved automation and ladspa plugin automation behaviour. + - While stopped and in touch mode, clicking an automateable control immediately + writes the value to the list, so you don't have to press play then stop + just to store one value. + - Smoother slider transitions from last touched value to previous stored values, + so that they don't suddenly 'jump' to previous stored values when you let go. + - Checkboxes now automated. Their behaviour in touch mode is slightly + different than sliders - they remain 'touched' until you stop, but store + only up to the last toggle done. + - Checkboxes now check as soon as you click them. + - Sliders now have 'mouse cursor capture (tm)' so you can actually grab onto + the thumbs even if they are moving too quickly due to automation. Paging can + still be done with right button. + - Sliders and knobs now work properly if you 'page' them (click outside the thumb + or dial). + - Added right-click popup menu on all automateable controls with + previous event (seek) + next event (seek) + erase event (if cursor is on one) + erase range (between left and right markers) + clear automation (clear all events) + Known bug: Becomes slightly confused if tempo is changed after doing automation. + Workaround for now: Press play to update the cursor to a new position. +04.10 + * Select the right item when items are stacked on top of each other, for pianoroll + and arranger (rj) + * Do not display resize cursor when last track cannot be resized (rj) +03.10 + * Apply effect rack before sending aux, changed after discussion with Thorsten Wilms (rj) + * Auto assign internal softsynths upon creation (rj) + * New method for pasting parts. If several parts are pasted they are now spaced + according to their original spacing. This only works reliably when the copied parts + are all on one track. (Possibly copying parts from several tracks should be + disallowed), fixes bug #1516294 (rj) + * Muting of midi-tracks no longer mute input, bug #1092343 (rj) +01.10 + * Fixed issue with playing of controllers when moving playhead. basically + all events from all parts where played at the beginning, fixes bug #1316542 (rj) +30.09 + * Cached peak files are now updated when wave files are more recent, bug #1469177(rj) + * Fixed bug with recording notes to existing part, bug #1552783 (rj) +29.09 + * MusE now asks when imported wave file has differing samplerate, bug #1428248 (rj) +28.09 + * Always restore sequencer configuration even when song + is loaded without config, fixes bug #1092289, midi mixer settings not restored (rj) +27.09 + * Optimizations and fixes to rubberband scrolling (rj) + * Aux changed to be affected by volume and pan (rj) + * Aux now affected by mute (rj) +26.09 + * Fix for pianoroll selection of events in/outside loop with respect to part offset (ml) + * Added lasso/rubberband scrolling in arranger, drumedit and pianoroll, bug #1057732 (rj) +24.09 + * Followups by T356 + * Fixed rack plugin change not clearing automation + * Fixed moving an empty rack position + * Fixed moving a plugin onto itself + * Changed colours of audio output and wave track + strip names to match icon colours +20.09 + * Fixed aux sending (rj) + * Patch from terminator356 to fix logarithmic feedback to plugin sliders (rj) +19.09 + * Various fixes from Torsten Duwe (rj) + - deicsonze undefined returnvalue + - vam uninitialized value + - 64bit fix for calling external wave editor + * Fixed multiple part undo for move,drag and copy in arranger, bug #1516298 (rj) + * Fixed multiple note undo for move and drag in pianoroll (rj) + * Fixed cursor placement in List Editor upon deleting events bug #1417718 (rj) +16.09 + * Following changes by { terminator356 [at] users [dot] sourceforge [dot] net } + * The changes can be applied to muse-0.7.2preX or muse-0.8.1 and work fine in both. + * Fixed soloing. Also multiple soloing now allowed. + - TODO: Soloing of tracks which feed a group. Workaround for now: Solo the tracks AND the group. + * Enabled solo buttons on the mixer strips. + * Fixed major issues with rack plugin moving, saving and loading. + * Fixed problems with multiple tempo changes and incorrect wave part lengths. + * Changed plugin code to use double instead of float to stop certain errors, and consistency. + * Fixed some minor spelling mistakes. + * Fixed issues with audio track automation. + * Fixed very 'jumpy' volume sliders and pan knobs under automation. + * Fixed several other small problems. For example a duplicate define in song.h + * Changed the way audio track automation works. + - For ease of use, the current mode now remains selected, even after a file write and re-open. + - To reduce the chance of accidental changes, for added visual warning, Touch and Write modes + colour the automation mode box red. + - Write and Touch modes: Only if the controls were touched, changes will be stored when + the transport is stopped. Since the current mode remains active, you can move to + another part and do some more automation. + - Write mode: The controls are updated with stored values until you touch them, then they + store from the time you hit play to the time you hit stop. If you touch the controls AFTER + you hit play, you may get unexpected results so remember to initialize that 'first value' + (at the time when you hit play), since muse will NOT 'fill in' from the time you hit play + to the time you first touched the control, with the value of that first touch. (Maybe support + this later). + - If you load a plugin preset, if the control values don't seem correct, try setting the track's + automation to 'Off', because the track will usually be on 'Read' - reading stored values. + - TODO: Muse really needs an automation editor/viewer! Perhaps integrate with wave viewer. + Also, add one more automation mode: 'Instant mode'. + * Hmmm, oh yes - added full LADSPA plugin automation. Check it out! + Compatibility with existing med files' Plugin section should be OK, but if you open an + existing med file with plugins, and the plugins' control values are no longer correct, + let me know. See comments (with these changes applied) audiotrack.cpp around line 557. + - TODO: Checkbox automation not working right. We need a better checkbox - one which checks + as soon as you press down! Also would like to add bypass and mute automation. +05.08 + * Fixed build without fluidsynth (rj) +14.07 + * fluidsynth: fixed pitchbend events, fixes bug #1404212 (ml) + +13.04 + * Editing volume and pan with keyboard on audio strip now works (rj) + * Fixed issue with recording audio, fifo could overflow when + when running with small jack sizes (rj) + * fixed storing of wave files with relative path when located + "under" the project path (rj) +28.03 + ======================================= + * retagged app.cpp and Yamaha-Motif-Rack.idf (rj) + ======================================= + * fixed build bug in app.cpp (rj) + * fixed bug with Yamaha-Motif-Rack.idf (rj) +27.03 + ======================================= + * 0.8.1 tagged (rj) + ======================================= + * some lash fixes (rj) +26.03 + * Added next/prev marker, keyboard shortcut (rj) +25.03 + * Reverted fix for silent softsynths, synths were not silenced + upon [stop], gah! (rj) + * Added LASH support (patch from evermind @ gentoo) (rj) +21.03 + * Added Motif-Rack idf from europeen (rj) +19.03 + ======================================= + * retagged dummyaudio.cpp (rj) + ======================================= + * Fixed build bug in dummyaudio.cpp (rj) +18.03 + ======================================= + * 0.8 tagged (was 0.7.2) (rj) + ======================================= + * Added idf files from linux chaos + Waldorf-Q, Yamaha-01v,Yamaha-Motif, Yamaha-P100 (rj) +05.03 + * Arranger no longer performs "seek" while editing + when in ext-sync mode (rj) + * Play/Stop disabled for all when in ext-sync mode (rj) +02.03 + * more work on extern sync, loop works better (rj) + * no-audio + extern sync does not hang anymore (rj) + * muse now starts even if jack is not found (rj) + * fixed a number of divide by zero errors mainly affecting zoom (rj) +11.02 + * Added menu alternative for storing plugin preset (rj) +06.02 + * Updated/improved swedish translation. (rj) +04.02 + * Fix for softsynths going silent under load. Sometimes events arrive + with time=0, this is now handled. Why it happens is yet unknown.(rj) +02.02 + * check audioDevice and _client for validity (rj) +13.01 + * amd64 fix in driver/rtctimer.cpp (ws) +09.01 + * Added patch for vam from mane_grotesk (rj) +07.01 * On drumtracks, there was no check for non-existing ports. If a drum + instrument was configured to output to a port other than standard for + the track, there was a segfault. Now output to non-existing ports are + simply ignored (ml) + +05.01 + * Added updated french translation from Intent (rj) + * Fixed crash bug in pianoroll when moving several + events outside part. (rj) + * Fixed esc key in drumeditor name edit (rj) + +03.01 + ======================================== + * 0.7.2pre5 (final!) tagged (rj) + ======================================= + +02.01 + * Added popup when enabling rec for a track unable to create it's + wave file (rj) +2006.01.01 + * Enlarged listeditor dialog (FR:1392090) (rj) + * Changed preset file extension of vam presets to .vam (rj) + * No longer translates dir name for drummaps (rj) + * Fixed crash bug when arrowing left in an empty editor (rj) + * Added F2 name edit in drum editor (rj) + * Added up/down arrowing in drum editor (rj) +30.12 + * Fixed bug in detection of RTC (rj) + * Removed ugly printouts from probeing for browser (rj) +29.12 + * Reawoken Organ: (rj) + - read/write current settings + - automation of all parameters + * Reawoken VAM: (rj) + - read/write current settings + - automation of all parameters + - preset dialog +28.12 + * Changed audio prefetch buffer to be dynamically sized after the + jack buffers (rj) +27.12 + * Fixed allocation of wave memory when reading and writing sound files + fixes problems with audio-operations (rj) + * Fixed problem when external wave editor was not correctly defined (rj) +26.12 + * Race condition between threads caused lockup upon quit and load project. + Fixed by checking if sequencer is actually running before making + internal IPC call, made major difference (rj) +21.12 + ======================================== + * 0.7.2pre4 tagged (rj) + ======================================= + + * Now dynamically extends parts if events continue after end and + ignores pastes before part, fixes bug:1363066 Paste outside segment (rj) +18.12 + * ExtSync improvements, handles relocation of playhead during stop + (on my gear atleast), does not work during play (rj) + * fixed bug building synths (introduced during last checkin) (rj) +14.12 + * fast_log10 exchanged for HEAD version (old version doesn't work with + gcc4), fixes problem with meters and sliders not working (rj) + * Added patch from Martin Habets fixes core dump problem while + building with LADCCA (rj) + * Added patch from LarryL autoconf changes to synth building (rj) + * Fixed drag in effect rack that it does not start directly (rj) + * Adapted optimization parameters for gcc4 (rj) +13.12 + * Possibly fixed issue with crashes during load of projects + by putting delays between start/stop of sequencer and actual load + operation. This should make sure that the process loop is idle. (rj) + * now tries both RTC and Alsa (in that sequence) for main timer (rj) + * added checks if alsaDevice is valid (fixes several crash bugs when + muse goes zombie). Should be done in more places. (rj) + * added check if audio is really running when jack calls process. + Sometimes it's called when it should not. (rj) +12.12 + * updated muse_ru.ts from Alexandre Prokoudine (ws) +11.12 + * removed assert, fixes bug:1376783, deleting track with pianoroll open + crashes muse +09.12 + * Added patch from Daniel Cobras regarding compatibility with 64-bit + systems (rj) + * fixed crash bug when muse tried to show plugin-guis when the + plugin did not exist (rj) +29.11 + * fixed seg fault when deleting last note in pianoroll editor (ws) +13.11 + ======================================== + * 0.7.2pre3 tagged (rj) + ======================================== + * Changed back to AlsaTimer (rj) +8.11 + * fixed typo in share/locale/Makefile.am +7.11 + * removed some dubious locks in thread start (ws) +19.10 + * Fixed bug 1329537 (User defined fonts not updated) (rj) +13.10 + * added emuproteus200.idf from Piotr Sawicki (ws) + * updated polish translation +12.10 + * added polish translation from Piotr Sawicki (ws) +26.9 + * Handle restart of Jack and restart of audio (rj) +21.8 + * Added new timer classes from Jonathan Woithe. (rj) +14.8 + * Solo for audio tracks improved by removing the possibility to mute Output tracks (rj) + * Implemented REPLACE for midi recording (seems to sometimes miss notes though...) (rj) + * Fixes for Appearance dialog, background pic, event display (rj) + * Marker window now toggling (rj) + * Added "raise" to more dialog windows (rj) + * compress event display in parts somewhat (rj) + * reverted pipeline again...bah...think before you change (rj) + * bounce now stops correctly (rj) + + +13.7 + * Fixed position of import of wave files, inserted at cursor, now inserts at mouse (rj) + * Added drag&drop support to plugin racks in mixer, internal and to/from disk (rj) + * Changed the plugin pipeline depth to 5.. four is too little.. though it should be runtime extendable, wip (rj) + * Added patches from Daniel Kobras that correct errors in EditMetaDialog + and old html docs. (rj) + * Added uppercase filters to midi import (rj) + +12.7 + * Added quick search to LADSPA plugin dialog (rj) +11.7 + ======================================== + * 0.7.2pre2 tagged (rj) + ======================================== +10.7 + * Added possibility to edit selection of wave in external editor (ml) +9.7 + * Added gain modification functions + misc to waveedit (ml) +8.7 + * Updates to wavefile modification, implemented normalize, fade in, fade out and reverse of wavefile selection. + Removal of wavefile undo data on shutdown (ml) +7.7 + * Added undo/redo handling for modifications of wavefiles + mute of selection in waveedit. expect updates. (ml) +6.7 + * Added selection to waveeditor + ignore unhandled keyevents in waveeditor (ml) +4.7 + * Implemented resize of waveparts (ml) + * Added Idf files by Steve D for Roland FantomXR, SRX-02 and SRX-09 (rj) +2.7 + * Fixes for waveedit: offset problem fixed (no more empty waveedit windows), initial zoom value to + roughly match size of part (ml) +01.7 + * Fixed bug with loading of background pixmaps (rj) +28.6 + * Only send MMC continue message when in playback state when seeking (rj) +22.6 + * Fixed bug 1199171 (Time change: a part does not completely fit into 4 bars), part + resize problem (ml) +21.6 + * Added scrollwheel support for vertical scrolling in arranger, pianoroll and drumeditor (ml) + * Fixed bug 1056996: Multiple selection, but single paste. Possible to copy several parts in arranger (ml) +20.6 + * Fixed bug 1092424: bug in reposition of instruments in drumeditor (ml) +19.6 + * Added recall of last entered directory in filedialog for global and user mode + recall of + opening mode (global, user or project) (ml) +18.6 + * Fix for drumtracks and part export/import + * Fix for opening Midi port/softsynth dialog when already open (now raised and set to active window) (ml) +13.6 + * Added export/import of midi parts (.mpt-files), drag & drop also possible (ml) +05.6 + * Fix for generating midi clock, needs field testing. (rj) +04.6 + * Added fixes to AlsaTimer and DummyAudio from Jonathan Woithe (rj) + * Added fix so AudioPrefetch is initialized upon starting the sequencer, + which for instance happens when loading a song (rj) +24.5 + * Added Roland E-28 idf file from Jonathan Woithe (js) +16.5 + * Updated ladspa-gui for newer version of tap-reverb (rj) +15.5 + * Allows for several midi devices with the same name, they are now renamed + internally so they have a unique name. This is a partial fix for synths + that do not correctly give each instance a new name. (rj) +12.5 + * s1 softsynth added square wave with parameter (rj) +11.5 + * Fix for bug 1198747, tests for fluidsynth and rtcap in configure.ac (rj) + * Fix for bug 1198744, added patch for reading browser setting from config + without crashing, from Philip Nelson (rj) + * Fix for bug 1188767, downmix won't stop playback until reaching the + right marker (rj) +08.5 + * the instrument list in the drumeditor now has fixed width when resizing the window (finally, it made me nuts) (ml) + * added nudge event position left/right w keyboard (ctrl+left/rightarrow as default) to pianoroll and drumeditor (ml) + * added fixed length command to pianoroll, uses snap-to value (ml) +07.5 + * added snap/quantize patch from Petr Mazanec (snap of notes in pianoroll+drumeditor is now controlled by + snap, not quantize) (ml) + * simpledrums: added save/load of setup to file, bugfixes. + simpledrums version is now 1.0 (go figure! ;) (ml) +06.5 + * No longer crashed when enabling audio metronome when there's an aux (rj) + + ======================================== + * 0.7.2pre1 tagged ! (rj) + ======================================== +04.5 + * extern sync algorithm "reworked" (rj) +1.5 + * simpledrums: backported fixes for channel number + memory deallocation, + fixed issue with clearing of sampledata, I hope (ml) +30.4 + * fluidsynth: bankno is saved to project, switched to hbank from lbank (ml) + * Now really runs libtoolize in autogen.sh (rj) +29.4 + * make sleep() in watchdog thread non interruptible to avoid + watchdog timeouts at startup (ws) + * added vst preallocation of memory "fix" (rj) + * More fixes to filenames containing dots (for instance wca files) (rj) + * Added Yamaha-PSR275 instrument file by Petr Mazanec (rj) +27.4 + * fixed patch-info issue in Fluidsynth (bug 1191214) (ml) +25.4 + * fixed bug w paste in drumeditor, 1189267, patch from P Mazanec +18.4 + * removed file ltmain.sh; this file is now created by "libtoolize" + command in autogen.sh (ws) +16.4 + * Fixed bug 1152441, filename can now have several dots (ml) + * Fixed bug 1183980: fluidsynth pitch controller wasn't given to MusE from the synth (ml) +15.4 + * Added a redundant test that makes midi input work on PPC for some + reason. (will research a better fix for 0.8) (rj) +10.4 + * Added an error popup when importing wave files fails. (rj) +30.3 + * [DONE] midi -> edit instrument is not implemented -> remove it (js) + * [DONE] same for random rythm gen -> is not implemented -> remove it (js) + * [DONE] BUG: pianoroll editor -> tools resize wrong, they should stay on max they need instead of width fit (js) + * have to go to the dentist on 7.3.2005, god help me, i fear this will kill me (js) +29.3 + * README changed some links (js) + * README added some icons to arranger (js) + * added support for german localisation (30% translated, still quite bad) (js) + * help: changed muse homepage location (js) + * more to come (js) +28.3 + * Fix for overflow when importing midi (rj + ml) +6.3 + * Added some fixed on dialog handling, mainly "esc" will close the widget now. (js) + * As usual added the icons which i forgot to add in the last release + * Corrected the drums icon which was a wave icon (in the dropdown, arranger) +26.2 + * Added Roland-SCD70.idf from Emiliano Grilli (rj) +09.2 + * fixed bug with sending start play w/ midi-clock (rj) +01.20 + * Added RT support and better working timing to DummyAudio backend (rj) + * New version of MC505.idf from Wim VW (rj) +01.18 + * Added script to convert MusE 0.6 songs to 0.7 format (rj) +01.17 + * Midi clock sync first test, unstable (ml) +01.14 + * patch from Erwin Scheuch-Heilig to allow for libtool >= 1.4 (ws) +01.10 + ======================================== + * 0.7.1 tagged ! (rj) + ======================================== + * ZynAdd instrument def file added (ml) + * Now the length is updated when importing a midi file to a project, + fixes bug: 1056994 (rj) + * Disabled freewheeling for bounce functions (song.cpp:_bounce) (rj) +01.09 + * Fixed bug: 1094622, MidiTransform now uses new controller types (ml) + * Fixed bug with custom plugin guis that caused them to be + uninitialized (rj) + * fixed just introduced jack graphChanged problem (rj) + * Fixed a crash issue with Thread class (only did happen when you mess around) (rj) + * Synti tracks don't crash when being renamed (rj) +01.04 + * Fixed a crash problem when using several fluidsynths (rj) + * Now fluidsynth restores most memory upon deletion + (but not all it seems) (rj) + * fluid disabled when fluidsynth disabled (we should probably + disable it all together) (rj) + * Fixed mixdown clash with auto-rec enable (rj) + * Fixed crash / hang when closing connected jack apps (rj) +2005.01.02 + ======================================== + * 0.7.1pre3 tagged ! (rj) + ======================================== + +31.12 + * Mastertrack list editor updates (add sigevent + misc) (ml) +30.12 + * Insertion of tempo events in list mastereditor added (ml) +29.12 + * Added support for changing time signature in list master editor (ml) +27.12 + * Added support for changing tempo + position of tempoevents in list mastereditor (ml) + * Backported auto rec-enable from HEAD branch (rj) + * Added visual feedback of marker addition in ruler as well as + possibility to remove markers with shift+rmb (rj) + * Made it easier to resize the last track (bug: 1041798) (rj) + * Fixed bug: 966005, new projects are now called "untitled" (rj) + * fixed bug: 1085791, no more crashes with delete + drag (rj) +26.12 + * Listedit bugfixes. Consideration of part offset used for events (ml) +20.12 + * Fix for bug #1085796 (when renaming channel by doubleclicking it + in tracklist and a part is selected, pressing return opens editor for part) (ml) +17.12 + * -a (No Audio) flag added, improved Dummy audio backend (rj) + * alsa timer bugfix (rj) + * added deicsonze patch from Alex Marandon to fix QT<->STL + problems on affected platforms (rj) + +14.12 + * Disable of fluidsynth works (rj) + * Added test for libsamplerate (rj) + * Reenabled --enable-suid-install (rj) + * Added <iostream> to simpledrums.h (rj) + * Added -no-rtti to simpledrums (ml) + +13.12 + ======================================== + * 0.7.1pre2 tagged ! (rj) + ======================================== + * SimpleDrums 0.2 softsynth added (ml) +12.12 + * Removed -no-rtti from configuration (rj) + * Extern sync (codename: it_works_for_me__sometimes) is back! (rj) + * Changes to midi-input, events to softsynths vanished (rj) + * bounce to file now limits output to +/- 0.99 (rj) + * crash bug on missing event in sig.cpp fixed (rj) + * Changed default timer resolution to 1024 (rj) + * Applied fix from Levi D. Burton to allow midi thread to run + realtime allthough Jack is not (rj) + * New version (0.22) of DeicsOnze from Alin Weiller (rj) + +9.12 + * Now autogen.sh requires libtool = 1.4, 1.5 does not generate + softsynths correctly (rj) +4.12 + * Added another IDF from Christoph Eckert for Alesis QSR,QS7 and QS8 (rj) +01.12 + * fixed import of type 0 midi files (ws) + * Added updated DeicsOnze (0.21) from Alin Weiller (rj) + * added a branch of new icons, changed default colors of + wav/audio output track in arranger (js) + * changed changelog (js) +30.11 + * Added IDF files from Christof Eckert for Access Virus, + Hammond XB and Waldorf Microwave (rj) + * backported fix from 0.8 so listing patches for synths + works again (rj) +29.11 + * fix midi import: tick values of tempo/signature + and marker events are now properly converted to internal + resolution (backport from 0.8) (ws) + * some make system changes to better handle precompiled headers (ws) + ======================================== + * 0.7.1pre1 tagged ! (rj) + ======================================== + * LADCCA was incorrectly disabled in config, now fixed (rj) + * Changed URL of homepage to www.muse-sequencer.org (rj) +28.11 + * Partial support for "input only" midi devices. (rj) + +27.11 + * Added Alsa Timer as a new timing device, RTC is still + available, though not easily selectable yet. (rj) + * Made some changes to how threads are created, for systems + where thread creation has been erratic, linux2.6 in various + configurations. Not yet verified if it makes any differance. (rj) +08.11 + * Backported audio metronome (rj) + * Backported open/save dialog improvements (rj) + * Added -r parameter to allow MusE to start without RTC + not the right thing to do, but it seems necessary on PPC, + it's a start. (rj) + * Added patch from CK to allow getopt to work on PPC (rj) + +02.11 + * Added icon stuff to tlist.cpp (js) +01.11 + * Added Alin Weiller's DeicsOnze synthesizer (ws) + * add dummy call to process() in Audio::start() to warm up caches + to avoid "JACK - zombified" during startup (ws) +23.08 + * fix crash in list editor - create new controller (ws) + * increase required JACK version to 0.98.0 (ws) +20.07 + * updated muse/muse.pro and share/locale files (ws) +18.07 + ======================================== + * 0.7.0 tagged ! (rj) + ======================================== + * output fifo warning only if cmd line "-D" switch is set (ws) +17.07 + * fixed separate handling of recorded events vs played events (ml) +15.07. + * do not start the disk helper thread in realtime mode (ws) + * check for JACK thread really running in SCHED_FIFO mode, if not + (as on my system with kernel 2.6.7 and nptl) try to set it. (ws) + * removed some exit() and abort() calls to react somewhat more gracefully to + to internal errors (ws) +14.07. + * fixed -V (no vst instruments) option (ws) + * do not save midi controller information in ~/.MusE file (ws) + * another try to fix midi loop handling: Loop len now should be + sample accurat. The loop is shifted left at most one audio + cycle to meet the requirement of loop end matching audio cycle + end. When JACK transport is in "JackTransportStarting" mode, + MusE internally continues rolling, so there are no repeated + cycles anymore (ws) + * Added message boxes when alsa and jack fails to initialize (rj) + * Disabled solobuttons in mixer (rj) +13.07. + * added new icons for the mixer solo/mute (js) + * added refresh for the solo/mute icons (rj) + * added icons for drum-/listeditor in the arranger on rightclick (js) +12.07. + * fixed typo in loop handling (ws) + * added patch from Daniel Schmidt to be able to configure + MusE without X being available (rj) + * Removed geometry data etc from templates (rj) +11.07. + * disabled midi mtc sync as its not implemented; disabled + midi sync slave modes as they are currently not working (ws) + * enabled sending midi clock (ws) +28.06. + * splitted removeTrack()/insertTrack() into three phases: pre realtime + actions - realtime actions - post realtime actions; this allows + to move memory allocations out of realtime task (ws) + * changed undo/redo of tracks: synti instances are now really deleted on + delete track (ws) + * jack connection changes with qjackctrl are now recognized by MusE (ws) +27.06. + * applied patch from John Check to add a panic button to pianoroll + editor (ws) +28.06. + ======================================== + * 0.7.0pre4 tagged - one more (rj) + ======================================== +26.06. + * Some packaging additions, icon, spec files. + (only mdk at the moment) (rj) +25.06. + * fixed midi timing bug (ws) +19.06. + * don't catch SIGCHLD, this interferes with vstInit() (ws) + * "givertcap" was not found when not in current directory (ws) + * impl. "all notes off" for organ synti (ws) +18.06. + * disabled buttons for not implemented functions (ws) + * added muse/wave/solo button in the trackinfo ;-) (js) +15.06. + * enabled some midi sync code (ws) +14.09. + * dialogs for change of drummap when converting miditrack to drumtrack + or changing port. redirection of keyevents from tlist to canvas (ml) +13.09. + * save/restore parameter for VST synthesizer (ws) + * automatic trackchange in tracklist when selecting parts in arranger (ml) + * added modify velocity to drumeditor + bugfix for modify velocity (ml) + * save/restore parameter for VST synthesizer (ws) +12.09. + * fixed backup command when filename contains spaces (ws) + * fixed midi step recording (ws) + * fixed bug in arranger: pressing enter after renaming part started + editor (ws) +09.06. + * added support for VST/windows software synthesizer (ws) + * delayed loading for software synthesizer: syntis are loaded, when + they are instantiated the first time (ws) +08.06. + * fixed --enable-rtcap configuration option (ws) +07.06. + * increased "dimension" in memory.h to make MusE work on 64 bit + architectures as requested from Simone Piunno (ws) + * added aux send for syntis (ws) + * added info box which explains why when MusE gets kicked by Jack (rj) +06.06 + * added instrument definition for roland MC-505 from Wim VW (ws) +05.06 + * Added backup creating save patch from Levi D.Burton (rj) +01.06 + * transpose + grid patch added (alin weiller) + * fixed moving events in drum editor (ws) + * added new config option: disable splash screen (ws) +31.05 + * fixed crash in pianoroll when using shortcuts for selecting + quant values when quant was set to 1 (no quant) (ws) + * fixed a crash when moving an event to tick positions < 0 (ws) + * fixed: selecting a note in pianoroll editor and changing a value + with note-info toolbar crashed MusE (ws) + * bugfix arranger: fix for selecting part -> ignore global accelerators (ml) + * bugfix for arranger selection of part above/below when using keyboard (ml) + * added pianoroll velocity variation patch (alin weiller) +30.05 + * hopefully a fix for drum in & outmap-issues in midi.cpp (ml) +25.05. + * shortcuts for "arrowing around" in arranger added (ml) + * 0.7.0pre3 tagged - the last!!! I hope (rj) +24.05. + * fixed a crash on new -> load template (ws) + * FluidSynth: added support for drumpatches (equiv to midichan 10 patches) (ml) +23.05. + * exit if rtc open() fails (ws) + * changed default start behaviour to open default.med template (rj) +18.05. + * added many new/redone icons (js) + * changed aboutbox.ui for qt 3.2 compatibility + * changed app.cpp (added the icons) +17.07. + * added stereo/mono icons to mixer (ws) + * added a first version of an icon for muse and adapted aboutbox to the same. + (graphics by Joachim Schiele) (rj) + * Improved handling of browser for help system (rj) +16.07. + * Added FluidSynth fix for ignoring preset selection of soundfonts that don't exist (ml) + * fix midi import of pitch bend events (ws) + * fix pitch bend handling (ws) + * enlarge PitchLabel width so that 14 bit controller values can be + displayed without clipping (ws) +15.07. + * removed some debug messages (ws) +12.07. + * show one more measure in pianoroll and drum editor (ws) + * renamed controller name "Hold1" to "Sustain" in *idf files (ws) +11.07. + * New try at fixing help browser on all systems (rj) +10.07. + * updated muse.pro and translation sources (share/locacle/*.ts) (ws) + * list editor: implemented input mode for program change messages (ws) +09.07. + * fixed "edit - delete track" hangs MusE - bug (ws) +07.07. + * fixed routing for stereo LADSPA plugins used in mono strips (ws) + * midi import: first resolve note on/of then transform ticks to internal + resolution (ws) +06.06. + * set global automation default to "true", set midi track automation to + "read" (ws) + * enable auxSend chorusSend and reverbSend in midi mixer strip if + corresponding controllers are added (ws) + * init automationType for midi tracks (ws) + * fixed gm.idf instrument definition file (ws) + * implemented "Add New Controller" in list editor / edit controller (ws) + * save current midi controller values in *.med file (ws) +05.05. + * updated roland-XP30.idf instrument definition (Sverre H. Huseby) +04.05. + * 0.7.0pre2 tagged (rj) +03.05. + * fixed a cut/glue bug probably introduced at 24.04 (ws) + * fixed compilation of musewidgetsplugin.so (ws) + * changed splash screen handling, used QTimer instead of background thread (ws) +02.05. + * Added first version of splash screen (rj) +01.05. + * Updated LADCCA support to (almost) usable condition (rj) +30.04. + * Added zoom scaling in drum editor, same as piano roll (rj) +29.04. + * Disabled Random Rhythm Generator (rj) + * Took a stab at fixing up shortcuts (rj) + * Fixed crash bug when clicking Channel Info and there was no info (rj) +28.04. + * Added single key shortcuts for edit tools (rj) + * added shortcut for Marker editor (rj) + * and fixed some shortcut inconsistencies (rj) +27.04. + * update marker list on tempo change (ws) + * allow adding markers from the ruler with shift-click (rj) +26.04. + * added missing header file(s) (ws) +25.04. + * fixed aux processing: stereo -> mono aux (ws) + * metronom now sends proper note off events (ws) +24.04. + * deactivated clip list editor. (ws) + * after loading of template, treat current project as "untitled" (ws) + * removed data structure "Clip". All information are now in WaveEvent; + this simplifies the structure a lot and makes reference counting more + reliable. Unfortunatly this also means a new incompatible *.med file + version. (ws) + * changed reference counting of Event class; simplified and more reliable (ws) +21.04. + * fixed some synchronisation issues between mixer and trackinfo window (ws) + * fix update of mixer after removal of aux strip (ws) +20.04. + * Added shortcuts to bug reporting tool, homepage, + and updated AboutBox (rj) +19.04. + * fixed QT version check in m4/qt.m4 (ws) +18.04. + * add samplerate initialization to fluidsynth (ws) + * compilation fix: added missing include in fluid.cpp (ws) +17.04. + * File->New crashed when current project had selected audio track (ws) + +15.04. + * 0.7.0pre1 * tagged for prerelease (rj) + * arranger: fast repeated pastes now works more reliable (no more stacked + parts) (ws) + * Thread(): crashed, when poll() returned more than one ready file descriptor + and the corresponding callback routine manipulates the list + of file descriptors. This happened timing dependend and only in real time + mode. (ws) + * fixed Fifo() get() (ws) + * small extension in soft synth interface (Mess()): added return values + for processEvent() +14.4. + * fixed pan range for midi mixer strips + * renaming soft synth instances + save/restore should now work + * fixed fluid "gui" + * changed CTRL_VAL_UNKNONW as it conflicts with valid + values for CTRL_PROGRAM (ws) +13.4. + * dont crash on missing LADSPA plugin (ws) + * set metronome precount default to "false". Precount is not + implemented. (ws) + * fixed crash when toggling stereo or pre buttons in mixer (ws) + * synchronize channel number in mixer/arranger-tracklist (ws) + * changed all float printf("%f") to equivalent qt-string + routines; dont localize decimal point so that the + strings can be properly parsed; this should fix some + save/restore problems in localized MusE versions (ws) +12.4 + - arranger/portinfo: fix update of instrument names (ws) + - fluid synth: enable drumsets (ws) + - fixed crash on inserting meta/ctrl/aftertouch in list + editor (ws) + - fixed crash in arranger when moving mouse+Alt after + removing a track (ws) +11.4 - fixed initialization of Pan after load of new song (ws) + - fixed graphical master track editor (ws) + - fixed Qt-Version check (ws) + - small qt3.2 compatibility changes (string->toInt() conversion) (ws) +10.4 - made plugin selector remember the previous selection type (rj) +4.4 - drag & drop import of wave files (rj) + - drag & drop import of mid files (rj) +3.4 - reactivated vam synthesizer + - fixed initialization bug in s1 synthesizer demo code (ws) + - added another vertical line in drum editor +2.4 - integrated new icons (ws) + - increased required QT-Version to 3.2 in configure.ac (ws) +1.4 - added vertikal line in track list as suggested by Joachim Schiele + - fixed synchronisation issue between mixer and tracklist (changing midi channel can + add/remove mixer strip) (ws) + - Changed pan range to -1 +1 (rj) + - added new icons from Joachim Schiele (not integrated) (ws) + - Support for showing only selected plugins in plugin dialog (rj) +31.3 - Added various compile fixes needed by debian (rj) +29.3 - Updated mc303 instrument file from Conrad Berh�ster (rj) +25.3 - bugfix for pos increase/decrease shortcut (ml) +24.3 - bugfix for mtscale redraw area when window is scrolled left + - bugfix for arranger shortcuts (ml) +23.3 - added position seek to drumeditor + arranger. + - increase/decrease pitch of selected notes in drumeditor with ctrl+up/down + - added quantize shortcut keys (1-8) in drumeditor (ml) +21.3 - added shortcut for pitch increase and decrease of sel notes, in pianoroll (Ctrl+Up/Down) + - moved shortcut handling for pianoroll + drumeditor to EventCanvas + - leftmost note selected when opening proll/drumeditor (ml) +16.3 - added shortcut for iterative quantize in p-roll. added shortcuts for + selection of notes in p-roll and drumeditor: left/right arrows moves + selection, holding down shift adds to current selection (ml) + - bugfix, moved blocking of signals on startup to exclude loading of project since + a bunch of widgets didn't get updated (ml) +12.3 - bugfix for menu initialization of "add track"-menu shortcuts (ml) + - added some regular 7-bit controllers to Fluidsynth (ml) +6.3 - Fluidsynti chorus operational again, controlled by NRPNs and + automatic gui-update here too. (ml) + - Fluidsynti reverb restored. Reverb is now controlled by NRPNs. + Automatic updates of gui when controller-changes occur. Unloading + of soundfonts restored. (ml) +4.3 - Fluidsynti playback restored. Gain restored. (ml) +3.3 - Fluidsynti major rewrite, not fully functioning though (ml) + - fixed crash on reload song with open mixer + - fixed crash on saving *.med: dont save aux values for channels + which have no aux send (like aux strips) + - remove empty record wav files on MusE exit + - fixed crash on undo controller editing (ws) +28.2 - more icons from Joachim Schiele (ws) + - fixed crash with mouse wheel events in arranger track list + - fixed some routing related crashes +25.2 - show mixer strip in trackinfo window for audio tracks (ws) +24.2 - compatibility patch to read midi tracks from old 1.0 *.med + files (ws) + - implemented quick input routing from jack (ws) + - added some new icons form Joachim Schiele (ws) +23.2 - implemented quick output routing to jack; some routing + fixes (ws) +22.2 - added instrument map for yamaha PSR 530 keyboard from + Lalit Chhabra (ml) + - misc compilation fixes from Joost Yervante (ws) +21.2 - added drum map for Yamaha DX200 from Joost Yervante Damad (ws) + - "quick routing" buttons in mixer (ws) +17.2 - install musewidgetsplugin.so in PREFIX/lib/muse/qtplugins/designer + and add this path to qt library path in application (ws) +16.2 - trackinfo geometry management changes (ws) +14.2 - added volume controller to organ, so that the organ + synthesizer volume can be controlled in the mixer midi strip (ws) +13.2 + - optimized "organ" software synthesizer: precomputed frequency + tables, integer envelope generator based on bresenham algorithm; + added "velocity" switch; (ws) + - changed VAM synthesizer for new interface (ws) + +12.2 - controller movements in software synthesizer gui's are now + send as midi events to MusE and can be recorded/replayed/edited + (currently only working for "organ" synti) (ws) + - changed software synth interface (again) (ws) + +11.2 - expanded trackInfo by default (rj) + - added some graphics to trackInfo :) (rj) + - changed "White" to "Default" (still white though) (rj) + - fixed trackInfo updating for tracks without their own trackInfo (rj) + - added lousy fix to update trackInfo when a track is deleted. + it's lousy because it's updating the trackInfo even though the + removed track wasn't highlighted, can place you in a tight spot + at times. I added it anyway because it removes a crash problem. + a better fix would be preferable. (rj) + - fixed mouse wheel functionality on knobs and sliders in mixer. (rj) + +8.2 - propagate track name changes to mixer (ws) + - enforce unique track name when user renames tracks (ws) + - implement one to many audio routing (ws) + - fixed bug in route dialog refresh after inserting new strip (ws) + - fixed aux send volume (ws) + +4.2 - added missing activate() to LADSPA plugin initialisation. + This fixes crashes with some plugins (plugins who use activate() + to allocate memory) (ws) + -fixed user definable LADSPA guis using QT-designer; added another + example *.ui file for "Toms'Audio Plugins" TAP-Reverberator (ws) +1.2 + - logarithmic values were initially wrong for spin boxes in + LADSPA guis (ws) + - On-the-fly-change of shortcuts in Listeditor, Drumeditor. Added selection + shortcuts to Drumeditor (ML) + - Added on-the-fly-change for shortcuts in pianoroll (connected to + configChanged-signal) (ML) + +30.1 save geometry of LADSPA plugin guis; + fixed missing mixer refresh after adding an auxSend strip (ws) +29.1 mixer strip automation types OFF, READ, WRITE and TOUCH + implemented; automated controller so far: volume, pan (ws) +27.1 more code for automation; + better reference counting for audio Clip; Clips with zero + reference are not saved in *.med file anymore (ws) +26.1 - removed obsolete driver/midirawin* (ws) +25.1 - removed obsolete raw midi devices & serial midi; all devices + are now handled by ALSA (ws) +24.1 - changed "Configure" to "Settings"; changed "Display" to "View" + for better standard compliance (ws) +23.1 - enabled controller editing in midi list editor (ws) +19.1 - added new dir/lib libsynti to collect common code + for all software synthesizer (ws) +18.1 - ported VAM software synthesizer to new MESS interface + (not complete) (ws) + - events send from synth gui are not echoed back anymore +17.1 - drumedit: changed "keyFilter" to "drumInstrument"; use + it to handle drum instrument specific NRPN controllers (as defined + in XG standard (ws) + - move drum instrument select status from drumMap to drum editor. + This allows for independent selections in different drum + editors. (ws) + - extend midi controller definitions in *.idf files for + drum instrument specific NRPN controllers (controller number + contains pitch value) (ws) + +16.1 - Added small fix to editctrlbase.ui to make it compile (RJ) + - Updated various revision info in README (RJ) + +15.1 - Corrected appearance of buttons in Metronome window (FN) + +9.1 + - "record" button in midi ChannelInfo; pressing this button + inserts changes in hbank/lbank/program/pan/volume as + controller events into song + - pianoroll editor: new "multi select mode": If more than one + event is selected, the event info spinboxes are set to zero. + Entered Values are interpreted as offsets and added to all + selected events. + - some fixes and performance enhancements to "MidiTransformator" (ws) + - fixed saving of drum tracks (ws) +8.1 + - changed arranger shortcuts + shortcut-configurator to use configChanged; all arranger menu shortcuts + redefinable on-the-fly. most menu options configurable (ML) + - now possible to toggle mixer window (ML) + - changed Ctrl+A in arranger to be used for select all instead of "Save As" for the sake of uniformity (ML) +5.1 + - new config (Config->GlobalSettings) option: + - start with empty song + - start with last song + - start with configured init song +2.1 + - smf type 0 export (ws) +31.12 + - midi export; fixes to midi controller handling (ws) +30.12 + - added dynamic shortcuts for all menu options in the arranger (will hopefully + work fine when config is loaded before menus are built) (ML) + - added check and prevention of conflicting shortcut sequences inside + respective categories, global shortcuts and misc "reserved" + shortcuts (ML) + - capture dialog grabs/releases keyboard (ML) +26.12 + - faster update of mixer (ws) +22.12 + - added dummy audio driver; this permits running MusE + without suid root and without RT priority when started + with "-d" option; this is for debugging & to get + normal core dumps (ws) +20.12 + - Reverb + chorus grayout-problem in fluidsynthgui removed. Some QT-designer files changed to 3.2 (ML) + - More shortcut updates: Added a dialog for capturing shortcuts (ML) +18.12 (ws) + - "declicked" s1 demo synthesizer + - make organ controller values persistent + - fixed integer overflow in organ synti controller values +17.12 (ws) + - new: mouse wheel events for track list values + - track colors in tracklist configurable in "appearance settings" + - more configuration options in "appearance settings" + part colors are now configurable + - ~/.MusE now contains only configuration data; this + settings are not replicated in *.med files any more +10.12 + - more shortcut stuff in the dummy shortcut config window (ML) + - new "load song" option: load all/load song data only (omit config data) (ws) + - new "File" function: load template; this function initializes current + song with another song (template) + - new option while importing a midi file: replace/add to project +9.12 + - More shurtcut stuff + dummy config dialog (ML) +2.12 + - Bugfixes in pianoroll for insert at current location and seek before + beginning of song (ML) + - fixed crash on "New" or loading new project +(ws) - "bounce to track" now works "faster than realtime" with JACK + freewheel mode (JACK 0.91.0 cvs required) + - mixer automation for gain & pan; some basic functions + - preparation for adding imported midifile to current project +1.12 + - More shortcut preparations (ML) +27.11 + - Added mouse wheel handling for knobs and sliders + shift modifier available for extreme slow motion. (RJ) +25.11 + - drummapping for recorded events (not heard on record playback echo yet) (ML) + - misc updates& fixes for track handling (ws) + - removed activity column in tracklist; will be replaced by + mixer meter display (ws) + - midi record flag can be set again, enabling midi recording +24.11 + - Added first steps for uniform handling of shortcuts (ML) +23.11 + - some mixer updates(ws) +22.11 + - fixed software synth handling; looping is only possible + on segment boundaries (ws) +20.11 + - Bugfix for drummaps and keyfilter in drumeditor (ML) + - apply drum map when importing midi (ws) + - retain track ordering across save/load (ws) + - wave files in the project directory are stored with + relative path, all others now with absolute path (ws) +16.11 + - Map outputted drumnotes according to drumMap index (Mathias Lundgren) + +14.11. (ws) + - JACK transport interface implemented + - finally removed ALSA driver; JACK now required; + - default to RT-mode on start (-R option is removed); -d (debug) + starts without RT + +12.11. (ws): + - removed midi mixer; first code to integrate midi mixer + into audio mixer; mixer moved to pulldown menu "Display" + - mixer strips are handled like tracks in arranger (prepare + for automation) + - track type cannot changed anymore in arranger track list; + also removed double click creation of tracks which makes + no sense anymore + - integrated "atomic" patches from Daniel Kobras +09.11. - audio routing fixes; mono/stereo switching for input/output + strips should now work; audio recording to tracks (ws) +08.11. - aux send audio mixer strips (ws) + - Arrowing up and down update in arranger (Mathias Lundgren) +07.11. - Fluidsynth compile problem w. Debian/qt/stl/gcc fixed (Mathias Lundgren) + - "Double undo"-bug fixed in Pianoroll (Mathias Lundgren) +04.11. - many changes to audio mixer and audio routing; implement + framework for new audio features (ws) +31.10. + - museProject set correctly when loading song on startup (RJ) + - save dialog added when adding first wave track (RJ) + - load/save of wave files handled with relative paths (to project) (RJ) + - Updated swedish translation (Robert Jonsson) + - Merged softsynth and midiconfig dialogs as in old tree(Robert Jonsson) + - Some museProject issues(Robert Jonsson) + - updated new midi controller implementation (ws) + +29.10. (ws) + - update soft synthesizer organ/fluid/fluidsynth; extent MESS + interface + - update from 0.6.2 (Mathias Lundgren): + - Various drumeditor-related updates including: Horizontal splitter + offset stored. Fixed length command added (Alt+L). Bugfix for selection + of events inside/outside locators. Initialization of drummap doesn't overwrite + entries loaded from project file. + - Alt+P sets locators to selected notes in PianoRoll and DrumEditor + - CTRL+Leftclick on an item in the Arranger, PianoRoll or DrumEditor selects all + parts/notes on the same track/same pitch + - Pressing Enter in the Arranger now opens the appropriate editor for the + part (Mathias Lundgren) + - The midithread now maps keys on a drumtrack according to the drummap. + - Cursor up/down (Mathias Lundgren) + - currently selected drum (Mathias Lundgren) + - fixed compilation error in givertcap.c (andrew) + - removed iiwu soft synth temporarily from compilation until + ported to new "mess" interface + - added missing file ltmain.sh + - create new cvs at sourceforge.net +------------- + - removed obsolete score editor + - changed midi controller handling + - new process structure + - redesign of "mess" software synthesizer; removed alsa + - new midifile import/export + - fork from cvs; new file structure +0.6.2(omuse): + - added first version of (incomplete) french translation from + - removed stk based soft synthesizer + share/rawwaves + - removed sound font + - fixed bug in midi recording when recording starts with a note off; + also the recorded part len was miscomputed when the recording ends with + a pressed key (missing note off event) + - added new allocator for SEventList and MPEventList (memory.cpp, memory.h) + to make sure the midi RT-thread does not call malloc/new/free/delete + - added misc build patches from Daniel Kobras + - make selection of alsa audio device an command line argument + (-A xxx default: hw:0) + - fixed "edit->select->allInLoop" + - fixed track height after renaming track +0.6.1: + - fixed "Cakewalk Style" display in arranger + - added russian translation from Alexandre Prokoudinek + - arranger: tracks are now independent vertical resizable + - arranger: implement part rename from popup menu + - arranger: show part name in parts in addition to events + - audio mixer: interpret min slider position as "off" + - audio mixer: added value entry for pan (Robert Jonsson) + - audio: some routing fixes + - audio mixer: enable data entry for slider label + - ladspa plugin gui: replaced value label with data entry + to allow numerical entry of parameter values + - pianoroll: added undo/redo to edit menu + accel. keys + - ctrl editor: implemented changing (painting) of pitch + events + - added macros for big endian machines in midi.h + - added spain translation (Albert Gonzales) +0.6.0: + - added swedish translations (Robert Jonsson) + - fixed editing of pitch events in list editor + - fixed crash in score editor + - check tempo entry values; dont allow invalid values which could + crash MusE + - fixed not functioning "Abort" button in MidiTransform dialog + - fixed Ctrl-editing in drum editor + - fixed "Group" audio routing + - fixed editing of pitch values in parts not beginning at tick zero + - fixed "unexpected EOF" after dragging of events in midieditor + - fixed cut&paste in midieditor + - implemented deleting multiple selected parts in arranger with Del key + - fixed audio pan pots in mono->stereo conversion + - changed iiwu to fluidsynth (thanks to Helio Chissini de Castro) + - new popupmenu: click with right button in empty tracklist + - LADSPA plugin guis are generated at runtime from qt-designer *.ui + (xml-)files; testfile is "freeverb.ui" for freeverb plugin; + - added "Slider"+"DoubleLabel" to musewidgetsplugin to make widgets + available in QT-Designer + - renamed poseditplugin.so to musewidgetsplugin.so + - fixed midi ctrl editor + - sparate sync device into txSyncDevice and rxSyncDevice. RxSyncDevice + can be configured to "all". + - use <asm/atomic.h> macros for atomically inc/dec count in lockfree + Fifo implementation +0.6.0pre8: + - prepared for internationalization: + - created muse.pro + - removed all implicit type conversions char* -> QString + - added several missing translations tr() + - Part text is now colored depending on background (FN) + - fixed "bounce to file" fifo handling + - disable transport buttons in slave mode + - calculate correct size for new part after midi recording + - fixed crash when reloading song while audio mixer is open + - implemented "bypass" function for LADSPA plugin gui's + - changed obsolete qt header file names + - implemented external midi instrument definition files (*.idf) + (examples are in */share/muse/instruments) + - implemented moving plugins up/down in effect rack + - fixed: renaming wave track switched track to mono + - implemented LADSPA "LOGARYTHMIC" and "INT" hints + - disable record button for tracks with no input routed to + - implemented LADSPA "TOGGLED" port as QCheckBox in plugin gui + - changed algorithm for zeroing denormalized floats in freeverb + plugin; now it works again for gcc3.x and optimization flags + turned on +0.6.0pre7: + - prevent creation of empty wave files when switching the + record button in audio mixer on/off; wave files are only + preserved when you actually record something into it + - made plugin guis persistent + - fixed scissor operation on wave parts + - added missing code for "bounce to file" + - fixed "bounce to track" + - removed/changed obsolete qt code + - update for current iiwu cvs + - fixed initialisation bug in wave editor + - dont link iiwu libs static + - (bh) added ladcca support + - fixed midifile export + - arranger, pianoroll editor, drum editor: tool popup menu + with right mouse button click + - update iiwu to current cvs version + - implement trackinfo patch names for iiwu + - fixed "appearance settings" + - added keyboard shortcut "Del" to delete events in pianoroll + and drum editor + - "Asterisk" key in keypad now toggles record mode +0.6.0pre6: + - fixed len of new created event in pianoroll editor + - extend font selection in "apearance settings" + - Added shortcuts for "Select All", "Unselect All" and "Invert + Selection" in PianoRoll editor (FN) + - Fixed Event coloring and shortcut ("e") key (FN) +0.6.0pre5: + - fixed midi seek & tempo map + - implemented global tempo change +0.6.0pre4: + - fixed tempo handling + - pianoroll editor/drum editor: fixed changing of note position + - transport: some geometry/font changes; time signature can now + be changed by mouse wheel + - fixed glue/scissor tool + - catch sigchld signal again so we know when a softsynth gui exits + +0.6.0pre3 + - fixed drawing of drum parts in drum editor + - on reading *.med files reject events which dont't fit into part (more robust + handling of defective med files) + - remove also synth gui when removing synth + - implemented some of Frank Neumann's usability suggestions: + - a "Copy Part" sets the current location marker after the marked part + - "Del" removes part if a part is selected instead of whole track + - new Keyboard Accelerator "C" toggles metronome click + - removed channel info for selected notes in pianoroll editor and + drum editor + - navigate between parts with left/right buttons in arranger window + - implemented changing note position for selected note in "note info" toolbar + - fixed: changing "loop" flag in transport window does not change "loop" flag in + other windows + - call pcm_wait() in alsa driver with sane values + - fixed: after load song seq did not run with rtc + - filenames for audio recording to tracks are now generated + automatically; every recording goes into separate file + - (bh) updated build system to use automake 1.7 + - fixe Midi->DefineController "Cancel" + - new function: Midi->DefineController load+replace and load+merge + - fixed MFile write: close() was missing; this fixes a.o. saving of + midi controller sets + - make organ synth aware of project directory for saving presets + - fixed load/restore presets for LADSPA plugins + - changed organ default values for envelope generator + - more fixes for alsa driver (less xrun errors) + - lokal allokator for soft syth midi events implemented + - enable sample rates != 44100 for iiwu (JACK has 48000 default) + - cleanup soft synth instantiation: call alsaScanMidiPorts only one time + - small audio buffer handling optimizations + - some thread cleanups + - fixed audio mixer geometry handling + - another fix for RT thread handling in iiwu + - fixed recording of pitch events (not tested) + - load iiwu sound fonts in a background helper thread to + avoid being thrown out by JACK + - fixed RT thread handling; now muse+iiwu+jack works + - honour LADSPA default hints for controller ports + - removed some restrictions for LADSPA plugins + - fixed tempo entry in transport window + - added high priority watchdog process to avoid system freezes + - updated "iiwu" synth to use peter hanappes libiiwusynth + iiwu now remembers last used sound font + - fixed cut&paste for midi parts + - fixed cut function for midi parts +0.6.0pre2: + - audio mixer: reset meter on mute + - changed input routing to allow monitoring while recording + - removed superfluous second init() call for soft syntis + - fixes for mono/stereo conversion + - ensure all wave files are properly closed on exit + - fixed segfault on second cliplist open + - fixed wave part split function + - fixed ALSA/JACK configuration bug + - event time positions are again stored as absolute time positions + to enhance compatibility with older "*.med" files + - changed panic button: instead of sending lots of note off + events only "all sound off" controller events are send for all + ports/channels + - fixed error on importing midi files when there are more + than one track assigned to a midi channel + - found another memory corruption bug in sysex handling + - fixed precount in metronome + - space key again stops play/record + - fixed stop/play in transport window + - prohibit change of mono/stereo for input strip + - convert mono/stereo on the fly for wave parts + - fixed crash when pressing play in empty song + - audio loop fixed + - _midiThruFlag not always initialized + +0.6.0pre1: + - attached midi mixer again + - fixed metronome: loop mode, measure/beat configurable + - moved part colorisation into part popup menu + - added global midi pitch shifter in addition to track pitch shift; this + allows for simple pitch transforming the whole song. Drum tracks are not + pitch shifted. + - fixed fatal error in soft synth handling resulting in sporadic + core dumps + - removed sf directory (sound file stuff) and replaced + it with the real thing: libsndfile 1.0.0 + - removed bogus kde stuff: kde.h onlyqt.h desk.h + - JACK Audio support + - AUDIO & ALSA now required + - fixed memory corruption with sysex events + - simplified organ soft synth parameter handling + - removed illegal controller message optimizations + - implementation of "panic" button + - first instantiated synti did'nt show up in port list + - size of resized drum and pianoroll editor windows are now remembered + - fixed crash when configuring null audio device + - removing soft synth instance did not stop midi thread; alsa client + was not removed + - (bh) lots of buid system changes and general cleanups + - (bh) removed the use of the UICBASES make variable; .ui files can + now be added straight into _SOURCES make variables with the new + SUFFIXES support in automake 1.6 + - (bh) upped minimum automake version to 1.6 + - (bh) removed the use of the MOCBASES make variable; header files that + need to be run through moc are now detected automatically + - (bh) new iiwusynth softsynth + - (bh) removed support for oss and alsa 0.5 + - clone parts implemented (also called "alias parts" or "ghost parts") + (dragging part with Alt-Key pressed in opposit to Shift Key which + produces a normal copy); + needed many internal changes; hope not to much is broken + - mastertrack: new spin widget for changing midi signature + - fixed midi thread initialization after loading new file + - stopped sequencer before loading new file; this should fix occational + core dumps on New/Load/ImportMidi + - some cleanups with file load/save operations + - Config->MidiPorts->otherRaw (device name pulldown): enabled OpenFile + Button for DevicePath field: At least current Qt can now handle devices. + - implemented: + - structure pulldown menu: + - global split + - global cut (mastertrack cut not implem.) + - global insert (without m.t.) + - implemented part mute + - added pitch transposition to pianoroll widget keyboard (Tim Westbrock) + - Save(As) behavior patch from Tim Westbrock +0.5.3: + - updated stk library to version 4.0; adapted stk synthesizer + - added SECURITY advice from J�n Nettingsmeier + - several compilation & portability fixes from Takashi Iwai + - fixed keyboard entry in pianoroll editor + - midi now runs synchronous with audio + - midi record time stamps now again synchronous to play position + - fixed trackinfo geometry (hopefully) + - pianoroll: fixed endless loop if record was pressed + without any mididevices configured (reported by Ola Andersson) + - default to english help if help for $LANG not available + (Ola Andersson) + - detect misconfigured ALSA system (Ola Andersson) + - updated demo app "rasen.med" to current xml format +0.5.2: + - fixed: rtc clock resolution settings in Config->GlobalSettings + - fixed: crash on second start of Edit->Marker + - more consequent implementation of -a (no audio) command + line parameter: no softsynth and LADSPA plugin loading; + disable audio menu + - fixed sending spurious midi controller settings on startup + when track info is active + - first code for "random rhythm generator" port from JAZZ++ + - fixed start offset of midi recording + - pianoroll editor: fixed selection update + - appearance setting "font size" now persistent + - does not crash anymore if no ALSA system found. (ALSA is still + needed to compile MusE) + - fixed: multiple recordings: clear events form first recording + in record buffer + - fixed: crash when removing last track with open + trackinfo + - (bh) added beginnings of alsa midi patchbay + - changed suid handling: now MusE runs with normal user uid + and switches only to root uid for some special operations + - fixed mixdown file output + - fixed lock on startup when wave file was missing + - arranger: open tracktype pulldown with left mouse click + (was opened on right click) + - arranger: don't scale pixmap symbols + - added share/rawwaves to cvs repository (needed by stk synthi) + - changed software synthesizer interface "mess": moved more + common synth functionality to "mess.c"; changed synti's to new + interface + - removed obsolete "short name" in controller type dialog + - CtrlCanvas: always draw location marker on top of grid + - fixed: TrackInfo: velocity + - fixed: alsa midi: "pitch change" interpreted as "channel aftertouch" + - fixed some midi controller bugs + - implemented new parameter save/restore interface for soft + synthesizer (applied to "organ") + - (ws) fixed lost controller events on midi import + - (ws) fixed crash when removing soft synth in use + - (ws) appearanceSettings: changing font size now works better + - (Bob) files now include "config.h" instead of relying on -DALSA, + -DALSACVS, -DINSTDIR and -DAUDIO + - (Bob) Added 'delete preset' button to vam's gui and made it + remember what preset file it loaded + - Mess: added new class MessMono() which implements some + monophone synthesizer features. This is used in the + simple demo synthi s1 + - if you try to exit MusE and abort this process, MusE was + left in an unusable state + - loop end was not calculated correct; event at loop end + was played + - muse now again stops at end of song in play mode +0.5.1: + - fixed crash: SaveConfig after Config->SoftSynth->AddSoftSynth + - changed default audioSegmentSize from 256 to 512 + - eliminated message: "input type 66 not handled" + - SoftSynth gui was startet with uid root + - save project: warn if file open fails + - removed trace message "unrecognized event 42" (Sensing Midi Event + from external keyboard). Anyway MusE does not handle midi sensing + events. + - changed geometry for trackInfo panel + - more code for 14 bit controller events + - install "rawwaves" for stk synti into right place preventing + crash on start + - fixed another crash when load soft synth configuration + - fixed Midi Position Label (was -1 beat/measure off) + - fixed problem with lost note off events + - generate "note on" events with velocity zero instead of + "note off" events +0.5.0: + - pianoroll editor: caption is changed when current part + changes + - new software synthesizer adapted from: + STK: A ToolKit of Audio Synthesis Classes and Instruments in C++ + Version 3.2 + By Perry R. Cook, 1995-2000 + and Gary P. Scavone, 1997-2000. + http://www-ccrma.stanford.edu/software/stk/ + - added presets to "Organ" software synthesizer + - changed midi routing for software synthesizer: + - controller changes from gui can be recorded + - new midi thread implementation + - speaker button in pianoroll editor implemented: + if on events are played if clicked + - new Menu: Midi->InputPlugins + - demo plugin "Transpose" + - moved Config->MidiRemote to Midi->InputPlugins + - moved Config->MidiInputFilter to Midi->InputPlugins + - moved Config->MidiInputTransform to Midi->InputPlugins + - as usual some bug fixes of old and new bugs + - master editor: fixed: locator bars sometimes invisible + - master editor: new tempo spin box to change tempo at current + position +0.4.16: + - new software synthesizer adapted: + "Organ - Additive Organ Synthesizer Voice" from David A. Bartold + - new simple demo Synthesizer S1 + - remove the hardcoded qt path "/usr/qt3" (0.4.15) + - fixed many bugs + - new: implemented line draw tool in controller editor +0.4.15: + - qt3.0 now required + - many gui/widget changes + - fixed segfault when pasting wave parts + - changed (again) default magnification in wave-view + - implemented prefetch thread for playing audio files + - fixed: iiwu did not play with ALSA 0.6 + - fixed: handle audio underruns for ALSA 0.6 +0.4.14: + - some makefile and compilation changes + - audio play: noise between audioparts during playback + - dont stop at end of song when "loop" is active + - default magnification in wave-view set to 1 + - fixed a audio route initialization bug + - new metronome configuration: precount configuration added +0.4.13: + - avoid "disconnect error" on startup + - wave view: y magnification now persistent + - small gui enhancements to reduce flicker + - make install: now creates gui dir + - implemented 8 bit wave input format + - fixed another source of audio crashes +0.4.12: + - audio play: mixing buffer was only partly cleared resulting + in random noise + - fixed: core after removing soft synth instance + - set default master volume to 1 + - fixed some audio routing bugs + - drumedit: added missing display update after drum map loading + - drumedit: fixed: when loading external drum map, velocity values + got zero + - drumedit: fixed: core some time after loading external drum map +0.4.11: + - iiwu: in GM-mode dontt allow drum channel program changes; + also ignore bank select messages + - set GM-Mode resets synth + - some changes in drum channel handling + - substantial changes in audio implementation + - reimplemented audio configuration + - miditransform: val2 transforms fixed +0.4.10: + - iiwu: implemented sustain, ctrl:expression + - iiwu: changed sync audio/midi; this fixes some timing issues + - iiwu: fixed: core when loading new sound font while playing + - split RT thread into separate midi & audio thread + - fixed some bugs: crash on midi recording + - some new functions in pianoroll editor + - added/integrated Tommi Ilmonens "givertcap" + - iiwu: some fixes for ALSA 0.9beta + - arranger: voice name popup in channel info works again +0.4.9: + - fixed some memory leaks + - before loading a new song all synthesizer instances are + now removed + - reorganized installation: + - there is a toplevel installation directory + (default /usr/muse); the environment variable MUSE + points to this directory + - architecture dependent files go into + $(MUSE)/lib, architecture independent files + into $(MUSE)/share + - MidiSync: MC ticks are now also send in stop mode + (if configured) + - after "Start" is send, sequencer starts on next + midi clock tick + - iiwu: fixed core dump on save if no soundfont loaded + - iiwu: high resolution buffer size independent midi event + processing +0.4.8: + - faster display updates + - some changes for better compatibility with different + environments (compiler, lib) + - fixes for ALSA 0.5.11 + - fixed core dump while removing soft synth instance + - fixed some bugs with iiwu+gui + - fixed: TransportWindow: tempochanges while masterflag is off + - fixed: all tempochanges are now saved in songfile +0.4.7: + - ALSA 0.5.11 compiles again + - MESSS gui interface, first try: + -every midi instrument can have an associated + GUI (currently only impl. for MESSS soft synths). + The GUI is startet as a separate process connected + to the midi instrument. The gui sends midi commands + (sysex) to stdout. This midi data stream is connected + to the midi instrument port. + - test implem. can load sound fonts into iiwu synthi + - fixed a bug in loading big sound fonts + - waveedit: waveform display works again + - some iiwu changes +0.4.6: + - completed midi input architecture: every midi track has now + assigned input port+channel. Channel can be 1-16 or "all". + This allows for routing of different midi channels to + different tracks while recording. + - changed max number of midi ports from 8 to 16 + - fixed serveral bugs iiwu software synthesizer + - fixed compilation problems with some ALSA versions + - fixed: changing track name changed record flag + - fixed: remove midi editor if associated track is removed + - fixed: initial state of solo button in arranger + - fixed: hard to reproduce core while deleting track + - new command line option to set real time priority + - max number of midi ports is now 16 + - audio recording from master to file now works: + - configure Audio->MixdownFile (only wave/16bit) + - switch on record button in audio mixer master strip + - play + - fixed: graphic master editor: missing display refresh + after signature change + - changed midiThruFlag: removed from Config->MidiPorts; + "midi thru" now is associated with a track, if set all input + to that track is echoet to track port/channel + +0.4.5: + MESSS: (MusE Experimental Software Synthesizer interface Spec): + A software synthesizer is implemented as a dynamic + loadable library (*.so file) with two interfaces to the + outside world: + + - a LADSPA interface for audio output + - a midi sequencer interface registered to ALSA + + MusE searches all available synths and presents a list + in Config->SoftSynthesizer. To use a synthesizer you have + to create an instance. Several instances of an synt can be + created and used. Every instance creates + + a) an alsa midi sequencer port (look at Config->MidiPorts) + b) a new strip in the audio mixer + + As a demo i ported a stripped down version of the iiwu + software synthesizer (http://www.iiwu.org) to MusE. + Setup info is in README.softsynth + +0.4.4: + - fixed cakewalk style event display in arranger + - track comments are handled as 0xf text meta events in + midi files + - fixed: follow song in pianoroll/drumedit (daniel mack) + - fixed: refresh in list editor + - implemented 14 Bit controller in list editor + - new patch form Takashi Iwai enables MusE to compile + with ALSA 0.9.0beta5 and current cvs version + +0.4.3: + - new: Config->MidiInputTransform + - new: comments for tracks: click with right button on track + name in arrange window + - fixed: score editor sometimes eats up all memory on start; + machine was unusable for some minutes until muse crashes + - fixed some other smaller bugs + - patch from Takashi Iwai for latest (cvs-) ALSA + - fixed: score postscript generation (printer & preview output) + +0.4.2: + - added few missing display updates (bugs introduced + with 0.4.1 drawing optimizations) + - pianoroll editor: + - fixed: edit->DeleteEvents + - drum editor: + - implemented: edit->DeleteEvents + - use different cursor shapes while using + Glue- Cut- and Rubber tools +0.4.1: + - some small Changes for compiling MusE with gcc 3.0 + - track info values (transposition, velocity etc) + are now applied when exporting to midi file + - better geometry management for ctrl panel + - pianoroll editor / drum editor now allow for more than + one ctrl panel + - new: load/save midi controller sets + - automatic creation of midi controller sets on + midi import + - new: active(used) midi controllers for current + parts in editor window are now marked in controller list + - fixed: parts in open editors are not restored correctly + - many drawing optimizations; scrolling is now much + faster/smoother +0.4.0: + - input configurable for every track + (you can record from more than one midi input device + to different tracks) + - you have to switch on the "record enable" flag for + every track you want to record to + - Note "h" is now called "b" unless you set + the environment variable "LANGUAGE" to "de" + - Changes from Daniel Mack: + - bigtime window now shows hour:minute:sec:frame + - configurable snap grid for arranger + - configurable font size + - again "tick underflow" + +0.3.20: + - "bigtime" widget from Daniel Mack + - fixed global accelerator keys f11/f12 (toggle transport & + bigtime window) + - fixed: score editor: try placing notes in the right margin of the + last row gave core dump + - score editor: different cursor shapes + - new try on missing midi sync ticks (producing "tick underflow" + trace messages) + - score editor: some small enhancements +0.3.19: + - several small bugfixes from Daniel Mack + - fixed "make install" + - if you have trouble compiling ALSA audio: + change "AUDIO = yes" to "AUDIO = no" in make.inc + - some fixes/enhancements from Brian K: + - fixed: score editor: no more "EVENT not found" during subsequent + edits of a selected note + - scrubbing with rubber tool in score editor + - new part appearance option +0.3.18: + - fixed: Export Midifile +0.3.17: + - simple audio recording + - midi sync slave: received "start" did not reset pos to tick 0 + - fixed several bugs in screen update and synchronisation between + different midi editors + - new: Configure->Appearance dialog from Daniel Mack +0.3.16: + - "follow song" now works in both directions + - MidiTransformator: implemented missing "Copy" and "Extract" functions + - fixed: reset sustain at stop only for channels which really had sustain + set + - fixed several bugs in midi sync code; needs more testing + - received "set song position" from alsa midi driver now + handled in sync slave mode + - transport buttons are now disabled in "external midi + sync" mode + - fixed: do not send midi "start" "stop" "continue" etc. as sync slave + - fixed: several small bugs i cannot remember +0.3.15: + - fixed: some typos in "MidiTransformator" + - fixed: core at end of midi recording from external + sequencer as sync slave + - replaced midi "continue" message with "start" + when running as midi sync master + known bug: midi clock output only if seq plays, + should be send always even if seq stops + not implemented: cannot change tempo as sync slave + +0.3.14: + - fixed: core: typo in "undo add track" + - fixed: core: "undo remove event" + - selection of events is now a global attribute: if you select + an event in an editor, the same event is selected in all + open editors + - new: Midi Transformator (look at edit->MidiTransform) + (not all operators and operations are implemented yet) +0.3.13: + - fixed: TimeScale was wrong when using signature changes + - fixed: enforce left marker <= right marker + - new: mono wave tracks + - more usable LADSPA plugins to play with + - several small changes/bug fixes +0.3.12: + - fixed: synchronisation of tempo/signature changes with sequencer rt-thread + - fixed: track parameter were added again and again in loop mode + - new: tempo/signature changes undo/redo + - new: midi "transpose" function from Daniel Mack + (Arranger: edit->midi->transpose) +0.3.11: + - fixed: fixed serious bug in wave file handling + - simple audio play with ALSA 0.9.x + - fixed: editing events -> core (introduced in 0.3.10) +0.3.10: + - fixed: core while deleting controller events + - new: extended configuration of raw (serial) midi interfaces + - fixed: some memory leaks + - changed for ALSA 0.9.0 beta2 +0.3.9: + - some smaller fixes + - fixed: core: missing MidiController() Initialization + - fixed: pressing another mouse button while "drawing" an event + in a canvas with left mouse button pressed gives core +0.3.8: + - fixed: correct update of midi port table on song change + - CtrlEditor: controllers can(must) now be configured + - List Editor: corrected handling of meta/sysex strings + - changed: combined pitch high/low to single value ranging + from -8192 +8191; editable with controller editor + - ALSA 0.9.0beta1 works for midi; as far as i tested it, this + alsa version has no more problems with OSS raw midi emulation + - new: colored activity display in arranger (Daniel Mack) + - new: context sensitive extensions to "right mouse click + pulldown menues" for arranger parts (Daniel Mack) + - new: gui prototypes for extendend configuration of raw midi + devices and audio mixdown file selection + - fixed: quirks with OSS midi devices configuration +0.3.7: + - start porting to ALSA 0.6.0 cvs version + - fixed: option -M produces midi output trace for alsa midi + - fixed: pianoroll and drum editor now accept input focus + and then honour some keyboard shortcuts + - fixed: score editor: core when inserting small rests + - new: "ruler" for pianoroll, drum editor and part editor + - fixed: midi recording: event len always 1 tick (bug introduced + in 0.3.6) + - midi port config: show only available raw midi devices + - fixed: tempomap/tempo save/restore + - fixed: initialize master button to saved value + - some smaller changes: + - midi recording: new parts begin at record start instead + of first event + - missing note offs are insertet virtually at record end + - recording takes place on selected track - selected part + and not on selected part if on different track +0.3.6: + - fixed: markerList: click in list -> core + - fixed: stop at end of song only if not recording + - fixed: events of zero length crash the sequencer + - fixed: missing note off events for metronome + - fixed: gui: changing port/channel in trackinfo updates tracklist + - new: midi recording & loop +0.3.5: + - fixed: midi recording with alsa was broken + - fixed: mastertrack: -> core + - fixed: rename track -> rename part -> core + - fixed: help browser: back function + - fixed: score: entered lyrics are saved again + - fixed: score->staffSettings: tracklist + - fixed: score->enterNotes wrong snap position +0.3.4: + - fixed: some bugs & quirks + - new: implemented pianoroll->edit->deleteEvents + +0.3.3: + - new: MusE now stops at end of song if in PLAY mode + - fixed: core if muse was started without song name and + there was no ".musePrj" file in current directory + - new: on popular request: "RewindToStart" button + - fixed: changing devices while playing + - fixed: arranger: could not scroll to the end of song + - fixed: song lenght on midi import + - fixed: fatal error in handling "note off" events + - new: "sustain" is reset on stop + +0.3.2: + - fixed: part editing: endo delete, glue etc. + - fixed: option -m (trace midi input) works again + - fixed: midi input filter: could not toggle channel 1 button + - fixed: midi mixer + - fixed: midi recording into part: part length adjusted if events + recorded past end of part + - fixed: MusE initialisation failed if there is no ".musePrj" + file in current directory! + +0.3.1: + - step 2 of internal reorganization + - fixed: score: lyrics are now saved again + - fixed: some quirks with lost track markers + - new: Option -L locks sequencer memory + - fixed: recording from serial midi (raw oss & korg tohost) + - fixed: several smaller bugs & quirks + +0.3.0: + - fixed: pianoroll editor: entering new events -> core + - new: drum editor click on instrument name "plays" + instrument + - fixed: changing the channel of a track now changes also + the channel of all events in that track + - massive changes for audio/wave integration: + - start of audio mixer + - audio routing + +0.2.12: + - fixed: wave files/tracks/parts: calculation of tick<->time; + it should be possible again to import/play simple waves + - fixed: funny things happend when muting all audio tracks + - fixed: core if no active record track + - new: Rob Naccarato started with documentation; press + <F1> in MusE and have a look + +0.2.11: + - fixed: metronome + - fixed: initial state of "click" transport button + - fixed: midi thru: + if midi thru is switched on, all received events are + echoed to the port/channel associated to the currently + selected track, regardless of the input port/channel. + Track parameters as pitch shift, velocity compression etc. + are applied before echoing the event. + - _not_ fixed: alsa midi driver: strange sysex behaviour +0.2.10: + - fixed: parameter change in midi trackinfo + - fixed: some errors in *.med file handling + - fixed: midi export + - fixed: midi events are now played according to priority: + - channel priority: 10,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16 + - note off before note on +0.2.9: + - fixed: typo in seq.c destroyed timing of 0.2.8 + - fixed: importing audio files + - fixed: writing *med files + - fixed: wave form display in arranger + - fixed: core on click in arranger "no track area " with pencil tool +0.2.8: + - fixed: oss midi devices now work agin + - reorganized midi event dispatcher + - fixed: pitchbend for midialsa (Xavier) +0.2.7: + - midi driver reorganization in preparation + for better ALSA sequencer integration; soundcard synth + work again + - some fixes +0.2.6: + DrumEditor overhaul: + - fixed: reading drum maps + - changed: exporting drum maps now writes the whole map + - fixed: device popup: ...invalid menu item + - new: instruments can now be moved + - fixed: changing A-Note/E-Note did not show effect + - changed: small x-offset in event canvas allows better placement of + events at pos 1.1.0 + - new: instrument names can be edited (double click instrument name) + - new: some drum maps + - fixed: update() missing after selection change in canvas + - fixed: len of new inserted drum events was quant-value, should be + default len from drum map + Alsa Midi Driver: + - changed (soundcard synth does not work :-( ) +0.2.5: + - fixed: session management for list editor + - new: list editor: hex entry in meta event dialog + - fixed: Midi: "GS Reset" button aktually did a "GM Reset" + - fixed: Midi: "GS Reset" on Song Start was always combined with "GM Reset" + - fixed: Arranger: copy/paste produced core + - fixed: Arranger: removed some (not working) key accelerators + - new: Drag file from KDE fm and Drop on arranger partlist + - removed bogus midi archiv + - some major code reorganizations in preparation for audio integration + resulting in new errors and *.med file incompatibilities; + - fixed: "cannot delete busy part" even if part is not busy + - fixed: arranger/progname.c: bad instrument name table caused segfault + (Tim Mann) + - fixed: score/layout.c: could not enter A# (Gilles Fillipini) +0.2.4: + - fixed: removed silly warning: Cannot find translation... + (translations are not (yet) enabled) + - fixed: trackMarker->destroy TrackMarker->create track -> core + - new: integration of track markers in arranger + - export/import SMF-Marker as Meta Type 6 + - changed: src/makefiles new arranged + - fixed: score editor: too many rests + - fixed: core if you try to insert note outside of staves +0.2.3: + - MidiSyncConfig: extSync synchronized with button in transport + window + - audio: try oss audio device /dev/dsp in addition to /dev/sound/dsp + - changed: column expand logic in arranger tracklist + - new: KDE2.2: define HAVE_KDE in make.inc to compile a + KDE version of MusE (experimental) + - new: realtime recording of Midi SysEx Events + - changed: better LADSPA plugin handling + - fixed: Pianoroll: Color Events: RGB parameter out of range + - changed: canvas: moving objects + - fixed: AudioMasterMixer produced core after second invocation + - new: track markers +0.2.2: + - switched to QT2.2 + - fixed: Transport: "Master" button initialization + - fixed: session management for partlist in midi editors; + (new *.med xml files are probably incompatible + - fixed: cut&paste now works for parts on drum tracks + - fixed: cannot delete busy Parts any more + - fixed: honour LADSPA_PATH environment variable + - fixed: TransportWindow stays on top and is manageable + (testet with KDE2 beta4) + - fixed: arranger: column order is now recorded in + .med file + - fixed: sometimes under obscure circumstances MusE crashed + while opening an midi editor + - fixed: several typos/errors in *.med file reading/writing + - new: list editor: insert midi events (incl. sysex & meta) + double click on list entry to open editor to modify + values + - new: MTC/MMC Slave: + Configured as slave you can synchronize MusE + from external devices using Midi Time Code. + Midi Clock Master: + Configured as master MusE can control external + sequencers + Hooks for MTC/MMC Master and MidiClock slave. + - fixed: score: ScoreConfig::setTracklist() missing "clear" + - new: score: odd rest values implemented +0.2.1: + - new: Arranger: move (midi) parts between applications: + - cut/copy part(s) to global clipboard + - paste part(s) from global clipboard to arranger + - drag parts with middle mouse button (experimental) + - new: Pianoroll: move events between applications: + - cut/copy events to global clipboard + - paste events from global clipboard to arranger + - drag events with middle mouse button + - fixed: only write audio if there are audio tracks + - fixed: PianorollEditor: moving multiple selected events + (thanks to Chris Wakelin) + - fixed: commented out unused/missing "color.xpm" + - fixed: partlist changed to multimap<> +0.2.0: + - fixed: another error in OSS midi driver which results in + "bad file descriptor" aborts + - fixed: MidiFilter - RecordFilter/ThruFilter + - new: Master Part of Audio Mixer: + - Audio Level Meter + - LADSPA Host with + - automatic generated user interface + - presets store/load + - new: LADSPA "Freeverb" plugin for audio master + - new: Drum Editor + - load/save drum maps + - drawing reorganized + - new: Pianoroll Editor Functions: + - configurable event colors (none/pitch/velocity) + - configurable function ranges (apply functions to + all/loop/marked events) + - selection functions (all/none/loop/invert) + - switch between different parts in editor ("ghost events") + - PencilTool: Control+LeftMouseButton prevents + accidental creation of events + - PointerTool: Control+LeftMouseButton restricts + to horizontal or vertical move +0.1.10: + - new: MidiExport: some configurable Parameter for exported + Standard Midi File (SMF) + - new: configurable Midi Record/Thru Filter for midi + realtime recording + - fixed: time signature changes in score editor + - fixed: "midi bar scale" is updated on time signature + changes + - fixed: event sorting in "list mastertrack editor" +0.1.9: + - fixed: tempo changes during play + - fixed: "follow event" in graphical mastertrack editor + - fixed: mastertrack list: dynamic content update if song changed + - fixed: OSS midi serial output was broken +0.1.8: + - bug: scaling in graphical mastertrack editor + - bug: reduce value of MAX_TICK to prevent overflow in scaling + - bug: pianoroll editor: length quantization + - bug: midi import: timing broken; bug introduced in 0.1.6 + - feature: editing of time signature in graphical mastertrack +0.1.7: + - bug: typo for 't'-kb accelerator in pianoroll-editor + - bug: quant values < 1/64 are not supported-> assertion bug + for keyboard accelerator >=8 in pianoroll editor + - pianoroll: new feature: step recording - midi input: + - press "shift"+ midiKey to enter chords + (if you enter same note again, it's deleted) + - press "ctrl" + midiKey to continue last note + - pianoroll: new menu function: quantize pos+len + - quantize configuration dialog: added flag for default len quantization + "whats this" help text +0.1.6: + - bug: exported midifiles had random "division" timing parameter + - bug: core dump on midi record start + - feature: keyboard accelerators in pianoroll editor: + '1'-'9' '.' and 't' set quant & snap values + +0.1.5: + - MusE now works again without RTC (Real Time Clock) Device + (but much reduced timing accuracy) + - new Debug Options -m -M: MidiDump for input and output + - global keyboard accelerators: + spacebar: while play/record: STOP + while stop: Goto left mark + while on left mark: Goto Pos 0 + Enter: start play + Insert: Stop + "/": Cycle on/off + "*": Record on + - Midi Step Recording: implemented external midi keyboard as + recording source (new "midi input" toggle button in pianoroll editor) +0.1.4: + Audio + ============== + - simple audio play (ALSA & OSS) + - stubs for cliplist Editor, audio recording + - AudioMixer master volume + - bug fixes for wave viewer + + Synthesizer + ============== + - first part of framework for realtime software synthesizer + driver/synthis, s1/*; + +0.1.3: + Score Editor: + ============== + - print preview button (gv) + - postscript default resolution is 72dpi and not 75dpi + - configurable overall scale for printer output + - simple beams + + Misc: + ============== + - bug: path handling for project file: project files are now + saved in the correct directory + - bug: canvas initial scaling + - bug: core if configured device didnt exists + - bug: ctrl editor produced values > 127 + - feature: Arranger: Parts are now displayed with a horizontal offset + - feature: Arranger: added save/restore for some configuration values + - feature: Midi Recording: track parameter like Transposition are now + applied before loop through + - feature: "Thru" flag in Configure->MidiDevices now implemented + - feature: Midi Remote Control: control sequencer stop/play/record/rewind + with configurable note events + - bug: typo in score/layout.c:split() caused core + +0.1.2: + - Score: + - add lyrics entry + - changed note head for 4/4 + - changed positioning of 2/4 and 4/4 notes + - ties can now span systems + - tie connected notes are selected as one note + - page settings, margins handling corrected + - configurable fonts for score editor page layout +0.1.1: + - master: scale changed + - no more core when selecting the score editor without a selected + part to edit + - time signature scale in master track + - master track: function tempo edit + - new popup menu in arranger / part canvas + - makefile: "make depend" target + - new: alsa raw midi interface + - improved score editor: + - split system (piano left&right hand) + - multi stave systems + - symbols + - lasso selection + - dynamics symbol palette + - window position of all toplevel windows is now remembered + correctly + - bug fixes & code cleanups + +0.0.10: + - removed obsolete file.c file.h + - separated midi archive + - removed unused widgets/wtscale.* + - removed unused widgets/dial.* + - midis with Meta Event Type 6 produced core + - removed '\n' chars from windows caption + - new setBg(QColor) method for class View + - broken Ctrl-Editor fixed + - Pencil Cursor now shown for Pencil Tool in Ctrl-Editor + - Mute Indicator changed to red dot + - added CtrlEditor to DrumEditor + - process session info in xml songfile + - more work on mastertrack + - start ScoreEditor and moving the mouse on canvas (producing + mouseMoveEvents) before exposure of QLineEdit (time & pitch + in toolbar) produced core on QLineEdit->setText(xx) + - in continuous scroll mode position marker updated correctly +0.0.9: + - xml like configuration and song file + - new midi mixer, shows only active midi channels + - bug: metronom configuration: channel&port numbers + - bug fixes +0.0.8: + - new: quantize function + - new: wave tracks: new classes: WaveFile Clip; + load wave file; expand song file structure + first try on wave editor; + - logarithmic magnify + - rework of View & Canvas Classes, resulting in much + faster scrolling +0.0.7: + - fatal error: use of uninitialized device +0.0.6: + - more diagnostics in file functions + - new: can load and save *.gz and *.bz2 files + - new function: send local off to instruments + - bug fixes in pianoroll step recording + - bug fix: "follow song" save and restore + - bug fix: in importing midi files: calculating parts + - bug fix: metronome -> core + - new configuration options for parts + +0.0.5: + - new: midi activity display in tracklist + - new: patch selector in channel info; shows midi instrument + categories + - new: insert & delete Controller Values in Ctrl-Editor + - some minor bugs corrected + - nasty bug in Song::nextEvents(), which prevents simple + midi songs played correctly + +0.0.4: + - implemented: forward & rewind buttons + - implemented: drum edit: change values in info bar + - error: arranger->tracklist: resize failed if columns are swapped + - enhanced file selector for background image selection + - more WhatsThis and ToolTip Help + - Backport to QT202: Filedialog: Filterlists dont work + - Midi Config: changed signal click() to rightButtonClick() + - missing initialisation in song constructor + - new subdirectory for controller editor + - controller editor for some values +0.0.3: + - new transport design + - redesign of TrackInfo and ChannelInfo + - some changes reg. fonts and geometry management + - misc toolbars changed to read qt toolbars +0.0.2: + - changed color for cpos to red + - dont play metronome clicks with time < current + - doubleclick on arranger trackname: entrywidget now gets + input focus + - midi device configuration: reworked + - removed endless loop in Song::nextEvents() + - ported to qt-2.1.0-snapshot-20000113 + - changed QPushButton to QToolButton + - some cosmetic changes in transport window + +0.0.1 + - first release + |