~ubuntu-branches/ubuntu/raring/muse/raring

« back to all changes in this revision

Viewing changes to ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Eric Hedekar, Eric Hedekar, Fabrice Coutadeur
  • Date: 2010-01-26 02:32:14 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20100126023214-8ez2g5d26d9p584j
Tags: 1.0.1-0ubuntu1
[ Eric Hedekar ]
* New upstream version (LP: #479688)
* Removed patches that were fixed in upstream source
  -[10_64bit_memcorruption_fix]
  -[10_gcc43_build_fixes]
  -[10_lash_private_api_fix]
  -[10_log2f_aliasing_fix]
  -[10_vamgui_init_fix]
  -[20_fix_const]

[ Fabrice Coutadeur ]
* debian/watch: added watch file
* debian/muse.desktop: deleted deprecated Encoding key, Application category
  and icon extension. This fix several warning with lintian and
  desktop-file-validate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
12.01.2010
 
2
      * Release: 1.0.1 (rj)
 
3
10.01.2010
 
4
      * Fixed: python detection exchanged for script from http://libvirt.org/ (rj)
 
5
09.01.2010
 
6
      * Removed: Disabled watchdog thread. (T356)
 
7
        - Tested OK (normally) without it, although behaviour needs to be tested if audio or midi thread
 
8
           would stop unexpectedly.
 
9
      * Changed/Fixed: Thread priorites: Added command line switches for audio (-P) and midi (-Y). (T356)
 
10
        - Audio (-P) applies to dummy driver only. (Else audio priority is fixed by Jack).   
 
11
        - Also changed default settings so that no two threads have same priority. May fix problem reported
 
12
           by user GB, concerning high midi latency.
 
13
      * Added: Enable/disable LASH command line switch (-L), (if LASH support is compiled in). (T356)
 
14
        - Helps prevent some issues like auto-starting Jack, or automatically routing midi to fluidsynth (observed).
 
15
07.01.2010
 
16
      * Fixed: BUG ID: 2879426: *.med does not save meta event types. (T356)
 
17
        - Changed midievent.cpp MidiEventBase::write(). Now saves value A, B, C and sysex/meta data. Tested OK.  
 
18
      * Fixed: Midi meters now show for each track even if they're all on same device and channel. (T356)
 
19
        - Oversight, long overdue. The meters AND automation control needed to be 'per-track'.
 
20
      * Applied: muse-destdir.patch Scripts and utils packaging fix submitted by Orcan Ogetbil. (T356)
 
21
06.01.2010
 
22
      * Feature: Jack transport enable/disable in Midi Sync settings window. Stores setting per-song. (T356)
 
23
        - Should be Ok to use and test. Needs a bit more work. See jack.cpp and jackaudio.h
 
24
      * Fixed: Speedups of audio pre-fetch especially when moving the cursor around (seeking). (T356)
 
25
23.12.2009:
 
26
      * Added: DeicsOnze2 initial import. (ng)
 
27
      * Fix: deicsonzepreset.cpp for Xml muse 1 API
 
28
20.12.2009:
 
29
      =======================================
 
30
      * 1.0 tagged (rj)
 
31
      =======================================
 
32
19.12.2009:
 
33
      * Feature/Fix: Audio metronome: Send output tracks now selectable in Settings->Metronome. Also fixed bad noises.(T356)
 
34
15.12.2009:
 
35
      * Patch: New patch for 64-bit memory issues, from Daniel Kobras (rj)
 
36
      * Reworked: Output of configure script to point out deprecated stuff and list the interesting stuff (rj)
 
37
      * Fixed: Old bug: WaveTrack muting slow to respond or odd behaviour. (T356)
 
38
        - Removed track mute check in WaveTrack::fetchData(). Was causing 'delayed repeated muting' since the mute check is
 
39
           done at a time when audio segments are fetched which are to played a few seconds into the future.
 
40
          Tested OK so far, playing and bouncing wavetracks. Mute is now quick to respond and does not 'repeat' or 'delay'.
 
41
14.12.2009:
 
42
      * Fixed: Overhauled AudioTrack processing. Fixes noises if multiple output routes exist. Eliminates costly redundant
 
43
                processing of audio tracks, and their effects racks. Waves, groups, inputs, outputs, synths etc. (T356)
 
44
        - Made better use of AudioTrack::outBuffers, as a 'post-effect/pre-volume' caching mechanism if the track has more than one 
 
45
           output route. WaveTrack was already using this scheme, but I moved it up 'higher' and now all tracks benefit from it.
 
46
        - See AudioTrack::copyData() and ::addData(). Most changes there. (Comments included!)
 
47
      * Fixed: Old songs made before recent synth changes were not loading their synths. (T356)
 
48
        - In .med file, added synth 'label' tag to go with existing 'class' tag, to support synths like dssi-vst.
 
49
        - Songs made recently after the changes might not load their synths and will simply have to be re loaded and re-saved.
 
50
07.12.2009:
 
51
      * Fixed: Add Synth popup menu: Show names AND descriptions. Now sorted, too. Also separate MESS, DSSI, VST, and Other. (T356)
 
52
        - Added app.cpp:populateAddSynth() function.
 
53
      * Fixed: Increased buffers for reading xml. Song files with large patchdata from vstis caused crashes (rj)
 
54
      * Fixed: Self inflicted bug with setting inital song loading in general configuration (rj)
 
55
06.12.2009:
 
56
      * Fixed: List popup synths by description. Cleaned up soft synth main list. Added persistent names, descriptions, ver, etc. (T356)
 
57
05.12.2009:
 
58
      * Fixed: ddsi synths: Ticking or crackling when more than one output route path. (T356)
 
59
        - The synths were being run more than once per process cycle, due to multiple out routes eventually calling getData.
 
60
        - ** Work in progress - must also do MESS synths and other track types which should only process once per cycle. 
 
61
      * Feature: SSE support configure build option and SSE enabled dsp routines added. (T356)  
 
62
        - Currently none of the routines are actually used, yet... Borrowed from MusE-2.
 
63
        - They appear to only be enabled for 64-bit CPUs. Investigating why not 32-bit...
 
64
      * Feature: i386 optimized dsp float buffer copy routines. (T356)
 
65
        - Should work on all i386 compatible CPUs (uses asm movsl). Borrowed from MusE-2
 
66
        - I couldn't bear to add yet another unoptimized memcpy usage, so I added this.
 
67
      * Changed: All audio buffers now allocated with 'posix_memalign' instead of 'new'. (T356)
 
68
        - Borrowed from MusE-2.
 
69
03.12.2009:
 
70
      * Fixed: Support for initial vst chunk storage support if available in dssi-vst 
 
71
        requires a patch to dssi-vst.
 
72
      * Fixed: Better cleanup on closing MusE. (T356)
 
73
        - Added Song::cleanupForQuit called from Muse::closeEvent. Disconnect gracefully from LASH before app quit.
 
74
          Clean up memory. Make vst synth processes which were in undo or redo list at close go away.
 
75
02.12.2009:
 
76
      * Fixed: Do not send default midi values back to dssi synths. Let them handle their own default setting mechanisms. (T356)
 
77
        - Also saves a bit of loading time for synths with hundreds of controls. See MidiPort::setMidiDevice(). 
 
78
02.12.2009:
 
79
      * Fixed: dssi: Crashes when loading most vst synths. (T356)
 
80
        - All ports must be connected even if not used.
 
81
          Made sure all audio in/out and control in/out ports are connected,
 
82
           including latency control out port. Test Ok.
 
83
30.11.2009:
 
84
      * Added: Configuration option for vst plugin in-place processing, fixes ladspa vst plugins not working or loud feedback. (T356)
 
85
        - Hmmm, they were working before when I upgraded OS. Now they're not. Extensive testing: It seems this is not MusE's fault.
 
86
        - R.J. reports they weren't working too. Investigating...
 
87
29.11.2009:
 
88
      * Fixed: dssi: Loading of synths with more than 2 out channels. (T356)
 
89
        - Currently only the FIRST TWO channels of the synth will be used.
 
90
        - Tested ok so far with A.D. drumkit.
 
91
28.11.2009:
 
92
      * Fixed: dssi: List only synths found, not effect plugins. (T356)
 
93
        - Does the exact opposite of what dssi-vst does for ladspa plugins,
 
94
           therefore all plugins should be covered - effects will be listed 
 
95
           in ladspa effect dialog, while synths will be listed as synths.
 
96
27.11.2009:
 
97
      * Fixed: dssi: Both native guis and vst guis should open now. Ooooh - pretty! (T356)
 
98
        - ** But still: Keep an eye on your process list and manually kill any 
 
99
           synth instances lying around after exit. For now try to 'politely' 
 
100
           close dssi guis and delete any dssi synth tracks before exiting muse.
 
101
        - Working on gui open-close-reopen-show-hide stuff. Kinda weird esp. with vsts right now...
 
102
26.11.2009:
 
103
      * Fixed: Loading dssi crash bug. Should at least load them now. (T356)
 
104
        - Also some controller functionality via track controllers...
 
105
25.11.2009:
 
106
      * Feature: Dis.. Dis.. Disposable wha? (T356)
 
107
        - dssi support. Work in progress. 
 
108
        - ** VERY IMPORTANT Currently you must manually 'kill' any synth instances lying around after exit !!!
 
109
        - Should work OK for tests and fun...
 
110
22.11.2009:
 
111
      * Added: Support for reading ogg files through libsndfile (rj)
 
112
18.11.2009:
 
113
      * Fixed: Audio and synth tracks not processing when output path ultimately leads nowhere. (T356)
 
114
        - ALL tracks now always animate meters, and process audio 'quietly', and synth tracks
 
115
           process their gui messages, if output path leads nowhere.
 
116
        - This fixes a few problems: For example fluidsynth was not allowing loading of soundfonts.
 
117
          And synths would suddenly 'dump' any backlogged events when processing was turned back on.
 
118
          And during play, when disconnecting and reconnecting the track outputs, the audio would be 
 
119
           out of sync because it was not processed during that time.
 
120
        - See Audio::process1() to understand the changes more. Follow from there to SynthI, SynthIF etc.  
 
121
      * Fixed: Minor issue with port 0 display in track list port column for synths, from previous fix. (T356)  
 
122
17.11.2009:
 
123
      * Changed again: Arranger: Track list: Left click synth track's port column now lets you choose a port. (T356)
 
124
      * Fixed: Do not list synths as instruments in ports/synths settings window. (T356)
 
125
16.11.2009:
 
126
      * Added: Script functionality moved from PianoRoll to song class, available in main menu (under 'Midi') 
 
127
        and drum editor (mg)
 
128
      * Added: 'Add synth' sub-menus now automatically assign the instance to a free midi port. (T356)
 
129
15.11.2009:
 
130
      * Added: Added 'Add synth' sub-menu to main 'Edit menu' and Mixer 'Create' menu. (T356) 
 
131
      * Changed: All audio track types now start with two channels and 0db volume. (Input tracks remain muted as usual). (T356)
 
132
      * Fixed: Organ synth: Drawbar harmonics and sustain midi controllers were not working. (T356)
 
133
        - Applied auto-bias corrections.
 
134
14.11.2009:
 
135
      * Added: DoubleSpeed plugin script for PianoRoll (mg)
 
136
      * Fixed: Disable Python ifdefs (mg)
 
137
13.11.2009:
 
138
      * Feature: Mixer labels: Auto-Font-Size(TM) using Appearance Settings font # 6. Word wrap (only with spaces) supported. (T356)
 
139
        - The mixer labels will try to fit the text, trying font size from font #6 point size down to point size = 5.
 
140
      * Feature: Arranger: Track list: Right-click 'Add ...' now lists soft synths ! (T356)
 
141
      * Feature: Arranger: Track list: Left/right click synth track's output port column now shows synth gui ! (T356)
 
142
      * Changed: Midi track info: Removed redundant track name box, changed label to behave like mixer strip. (T356)
 
143
      * Fixed:   Appearance Settings: Manual entry into font name boxes now works. (T356)
 
144
      * Fixed:   Appearance Settings: Added tooltips to font #0 - #6. Explains which font does what. (T356)
 
145
12.11.2009:
 
146
      * Fixes: Some Python API refcount code added (mg)
 
147
10.11.2009:
 
148
      * Added: Effect disable/enable + add/remove track to Python API (mg)
 
149
09.11.2009:
 
150
      * Feature: Added 'Echo recording to output' button to midi track info panel. (T356)
 
151
        - Turns on or off echoing of incoming record events to output device.
 
152
      * Fixed: Midi tracks not recording when no output device selected. (T356)
 
153
        - Now tracks will record with no output device selected.
 
154
      * Fixed: Problems since increasing number of midi ports from 16 to 32 several months ago. (T356)
 
155
        - Added Xml::parseUInt() and ::uintTag(), utils.cpp:u32bitmap2String() and string2u32bitmap().
 
156
        - Fixed saving and loading of input port mask in med files.
 
157
        - Fixed display of input port mask in track info panel.
 
158
08.11.2009:
 
159
      * Added: First test shot at part managing app in Python (mg)
 
160
      * Added: Python api functions for selected track + import of part file (mg)
 
161
06.11.2009
 
162
      * Fixed: Python configure.ac problems. (T356)
 
163
      * Removed: musewidgetsplugin (QT3 Designer widgets plugin) which may cause CVS build to fail with libtool2. (T356)
 
164
        - Infamous '-o' trick no longer required to build from CVS. Removed until further notice. 
 
165
04.11.2009
 
166
      * Added: Shortcuts to drumeditor + pianoroll: goto current pos, scroll left + right (mg)
 
167
      * Fixed: Added command line switch (-y) for enabling Python control - disabled as default (mg)
 
168
      * Added: Shortcut keys added to pianoroll and drumeditor (mg)
 
169
      * Added: Startup dialog showing 'good to know' info, can be disabled (rj)
 
170
      * Added: Song info dialog, can be used to record song related arbitrary text information (rj)
 
171
      * Changed: the output limiter is now configurale, and by default off (rj)
 
172
      * Fixed: Midi loop recording now honours the transport cycle record mode setting. (T356)
 
173
        - Cycle mode REPLACE: Only record notes in current loop. Erase any previous loop notes from rec stop pos to loop end.
 
174
        - Cycle mode NORMAL: Same as REPLACE, but don't erase any previous loop notes from rec stop pos to loop end.
 
175
        - Cycle mode MIX: Keep all recorded notes from all loops.
 
176
        - Use the transport record mode OVERDUB or REPLACE as usual to either mix with or replace existing track notes.
 
177
      * Fixed: Midi record (incl. new part, looping, part auto-extend) now honours the arranger snap selection. (T356)
 
178
        - Previously the left and right ends of the part would always be 'snapped' to bars, and any new notes recorded 
 
179
           past the end would not snap the part.  
 
180
      * Changed: muse/mpevent.h: Changed MREL list from using audioRTalloc to midiRTalloc. (T356)
 
181
        - This must have been a mistake? midiRTalloc was not even being used anywhere before. The comment lines gave clues. 
 
182
      * Fixed: Multiple copies of wave events appearing in wave parts after resizing part. (T356)
 
183
        - Changed EventList::find() to respect wave or midi. D'oh! Missed this obvious one from changes I made many months ago.
 
184
      * Fixed: Audio loop recording now respects arranger snap setting. (T356)
 
185
        - Previously the left and right ends of the part would always be 'snapped' to bars.
 
186
      * Fixed: Audio recording now respects punchin and punchout points. (T356)  
 
187
      * Fixed: Audio loop recording now works (currently replace mode only). (T356)  
 
188
        - WORK IN PROGRESS: Only overwrite (replace) mode supported. Working on overdub mode...
 
189
        - If recording is started INSIDE the loop points, then allowed to loop, the
 
190
           'zeroth loop' wave contents will be 'shifted' back to the left loop point.
 
191
          This may have to change if mix mode is to be supported. In other words 
 
192
           keep that 'zeroth' portion of wave in place. May change it anyway. 
 
193
02.11.2009
 
194
      * Added: Midi track controller + audio track volume to Python interface (mg)
 
195
28.10.2009
 
196
      * Fixed: No, or badly shifted wave recording, since libsndfile 2008-05-11 (T356)
 
197
        - Fix for recorded waves being shifted ahead by an amount equal to start record position.
 
198
        - Removed _recFile->seek() in AudioTrack::record(). Since libsndfile 2008-05-11, "seeking past 
 
199
           end of file during write" is allowed, which caused problem with the line seeking the record
 
200
           file to an absolute frame which *included* the recording start position.
 
201
25.10.2009
 
202
      * Added: Mute functionality to Python interface (mg)
 
203
      * Fixed: Midi mixerstrip mute update issues (mg)
 
204
      * Fixed: initialization in pandelay ladspa plugin (rj) 
 
205
21.10.2009:
 
206
      * Added: functions for looping to Python interface (mg)
 
207
19.10.2009:
 
208
      * Added: more functions to Python interface: deletePart, set position of locators, get/set song 
 
209
      length, get division, set midi track parameters (mg)
 
210
      * Added: now possible to create and modify parts via Python bridge (mg)
 
211
18.10.2009
 
212
      * Added: backported ladspa plugins doublechorus and pandelay from svn-muse (rj)
 
213
      * Fixed: Mixer was not updating when a midi track's channel was changed. (T356)
 
214
        - Created a new song changed flag SC_MIDI_CHANNEL and used it to only update mixer midi strips,
 
215
           not the whole mixer. Changed AudioMixerApp::songChanged() and ::updateMixer().
 
216
      * Fixed: Mixer was not shrinking enough when a track was removed, leaving space between strips. (T356)
 
217
        - Added a couple of lines to AudioMixerApp::updateMixer() STRIP_REMOVED section.
 
218
      * Fixed: Bug with reading soundfonts from song dir fixed (rj)
 
219
17.10.2009
 
220
      * Examples: added some example scripts, DoNothing and RemoveShortEvents (currently requires PyQt4) (rj)
 
221
      * Added: more tags to plugin format in pianoroll, see readme in dist: share/scripts (rj)
 
222
      * Added: Updates to Python API, now possible to modify part data. Needs a lot of testing (mg)
 
223
16.10.2009
 
224
      * Added: Added a few functions to Python remote API (start/stop playback + location queries)
 
225
      * Feature: Each drum instrument listed in the drum map now has a playback 'volume' setting. (T356)
 
226
        - Currently it affects playback only. I am looking to maybe add record level, too.
 
227
      * Changed: Default drum map velocity level 3 (110) and 4 (127), now 127, 110. (T356)
 
228
        - To allow easy (no key hold) drawing of default 110 velocity notes.
 
229
          (Hold shift = 127, ctl= 90, shift+ctl = 70)
 
230
      * Fixed: Drum editor controller graphs now align perfectly with editor canvas. (T356)
 
231
        - Changed DrumEdit::newCanvasWidth().
 
232
        - Tested OK with various appearance themes, and various vertical splitter positions.
 
233
      * Fixed: Drum map length, velocity level, and volume columns rapid mid-/right- clicks causing left double-clicks. (T356)
 
234
        - Now the columns can be quickly mid and right clicked (decrement/increment).
 
235
      * Fixed: Fluidsynth now realizes that a soundfont was located in the song-dir and then omitts 
 
236
        the path in the configuration data. (rj)
 
237
      * Changed: Changed the format of the datafile for the automation option in the pianoroll
 
238
        Mathias, we can wrestle about it later ;-)   (rj)
 
239
15.10.2009
 
240
      * Feature: First version of MusE remote Python control (mg)
 
241
      * Fixed: Drum canvas 'select' functions not updating, can't copy/cut etc. (T356)
 
242
        - Added updateSelection() to the end of DrumCanvas::cmd(). Tested OK.
 
243
12.10.2009
 
244
      * Feature: External scripting functionality added via PianoRoll menu: (mg)
 
245
         PianoRoll scans INSTPREFIX/share/muse/scripts and ~/.muse/scripts for executables, which modify part 
 
246
         data via data stored in temporary file
 
247
 
 
248
25.08.2009
 
249
      * Proposal: new default colors for various stuff (rj)
 
250
12.08.2009
 
251
      * Fixed: bug 2811156, soft synth and marker window no longer appear when hidden for XFCE window manager (rj)
 
252
15.07.2009
 
253
      * Patch: from bug 2819312 (by Gerardo Exequiel Pozzi) added. Allows muse to launch with never glibc. The fix is
 
254
        perhaps not fully understood but it looks harmless. (rj)
 
255
09.07.2009
 
256
      * Changed: Track info program, vol, and pan spinboxes now lose focus with one enter press instead of two. (T356)
 
257
05.07.2009
 
258
      * Fixed: Small fix on behalf of T356, Jack should not be started if running -a (rj)
 
259
      * Fixed: Help menu -> Report a Bug: Set address to current muse org bug address. (T356)
 
260
01.07.2009
 
261
      * Fixed: Dropdown menus in transport no longer grab focus, make space start/stop work again (rj)
 
262
      * Fixed: Dropdown in Mastertrack editor no longer grabs focus (rj)
 
263
      * Feature: Added denormal protection, by default on, can be turned off in global config (rj)
 
264
25.06.2009
 
265
      * Fixed: Recording of midi sysex was not working. (T356)
 
266
        - My fault since recent midi sync changes. Fixed the last few lines in alsaProcessMidiInput().
 
267
      * Fixed: Segfault when certain movements are done in track list. (T356)
 
268
        - Added valid track check to RESIZE section of TList::mouseMoveEvent(), 
 
269
           and a few other places.
 
270
23.06.2009
 
271
      * Testing: A fix for some Jack-2 net problems...  (T356)
 
272
        - Added missing break statements, and JackTransportNetStarting detection 
 
273
           (hard-coded as '4' for now so that muse will build with Jack 1 and 2 - we need 
 
274
           config detection of Jack version!) to processSync(), and JackAudioDevice::getState().
 
275
21.06.2009
 
276
      * Feature: Added Jack freewheel mode. (T356)
 
277
        - Dramatically speeds up bounce to file and bounce to track operations.
 
278
          With freewheel enabled, you don't have to wait for Muse to play the song 
 
279
           at normal speed while bouncing - it goes as fast as possible.
 
280
        - Added configuration option for it. See 'Global Settings -> Audio'.
 
281
20.06.2009
 
282
      =======================================
 
283
      * 1.0rc3 tagged (rj)
 
284
      =======================================
 
285
      * Feature: Jack transport master functionality added. (T356)
 
286
        - Allows other Jack client apps to properly disply Muse's current bar, beat, and tick.
 
287
        - Especially useful for songs with tempo and time signature changes.
 
288
        - It is activated / deactivated by clicking on Muse's transport 'Master', 
 
289
           or Muse's graphic Mastertrack window 'Enable'.
 
290
17.06.2009
 
291
      * Fixed: Segfault after creating simpledrums instance, then adding a midi track. (T356)
 
292
        - Return non zero in SimpleSynth::getPatchName().
 
293
15.06.2009
 
294
      * Removed: Some code in jack driver which may cause shutdowns or static noise with Jack version 1 (T356)
 
295
        - Tested several hours here, no shutdowns or sudden static noise. Thanks to the Jack team for that one...
 
296
13.06.2009
 
297
      * Fixed: New midi right-click popup menu 'add/set event' and 'erase event' not working for drum controllers. (T356)
 
298
        - Also, on 'add/set', added check and ignore if an existing event value is already equal. 
 
299
      * Fixed: Midi track info vol, pan, prog 'Rec' buttons were allowing duplicate events. (T356)
 
300
        - Added check for existing event in Song::recordEvent().
 
301
        - Also added check and ignore if event value is already equal.
 
302
10.06.2009
 
303
      * Fixed: Link error concerning libmidiedit.a and CtrlEdit.a (T356)
 
304
        - Somehow the list of link libraries was out of order. Reordered, tested OK.
 
305
05.06.2009
 
306
      * Fixed: Users in some locales reported audio automation save/load corruption. (T356)
 
307
        - Changed CtrlList::read() to use QString and QLocale instead of strtol() and strtod().
 
308
        - Checked: Other places using QString::toDouble() work OK because QString will fallback 
 
309
           to 'C' locale if formatting using current locale fails. (Hmm... But is it a speed hit?)
 
310
      * Fixed: When linking, get errors concerning uuid functions not found. (T356)
 
311
        - Added a section in configure.ac to test for uuid.h and libuuid.
 
312
        - Added uuid lib to list of linked libs.
 
313
      * Fixed: Midi port controller values not erased upon song load. (T356)
 
314
        - There were leftover ghost values in the controller graphs between song loads.
 
315
        - Added MidiCtrlValListList::clearDelete(), called from Song::clear().
 
316
      * Added: Right-click automation popup menu to all midi controller knobs/sliders. (T356)
 
317
        - Contains add/set event, and erase event.
 
318
        - When activated by the muse mixer midi controls, it 'prefers' selected parts on the track
 
319
           over unselected parts, otherwise it chooses the first part found. If no part is found, 
 
320
           it creates a new one to contain the event.
 
321
        - When activated by pianoroll or drum editor controller graph, it uses the currently 
 
322
           selected part (within the editor).
 
323
        - Adding 'previous event', 'next event', 'erase range' and 'clear automation', just like
 
324
           the audio automation popup menu, will take more time. Not implemented yet.
 
325
      * Disabled: Midi mixer strip automation type button. (T356)
 
326
        - There is no midi automation recording mechanism (yet). Disabled to avoid confusion with users.
 
327
      * Added: Some new instrument .idf files submitted by MST (Michael). (T356) 
 
328
        - Akai SG01v, Korg MS2000R, Korg X5DR, Korg X50, Waldorf MicroQ.
 
329
02.06.2009
 
330
      * Applied: Some patches by Mandriva packagers. (T356)
 
331
        - muse-1.0-fix-str-fmt.patch for deicsonze printf fix.
 
332
        - muse-1.0-linkage.patch fixes compiler hang up at deicsonze.cpp.
 
333
01.06.2009
 
334
      * Fixed: Instrument editor 'Save as' was not working right. (T356)
 
335
        - Was overwriting existing instrument.
 
336
        - Now prompts for new instrument name.
 
337
      * Added text in ctrl view to explain how to add controller values (rj)
 
338
 
 
339
24.05.2009
 
340
      * Fixed: Missing uuid header in two files. (T356)
 
341
        - My fault. Added include uuid/uuid.h to songfile.cpp and pcanvas.cpp.
 
342
      * Fixed: Bounce to track: Wrong message "Select one audio output track", to "Select one target wave track". (T356)
 
343
        - My fault. Message is displayed when there is one output and one or more wave tracks, and the user has clicked 
 
344
           on the output but not a track, too.
 
345
      * Added: Start 'Wave editor' edit menu item, with configurable shortcut key. (T356)
 
346
        - This will handle mutiple wave part editing. The existing right-click wave part popup menu
 
347
           'wave edit' item did that too, but now has been reverted back to opening a single 
 
348
           wavepart only, just like midi parts. 
 
349
      * Streamlined: All reading of 'part' xml is now done by a new routine. (T356)
 
350
        - Replaced new PartCanvas::readClone(), and existing Part::read(), with standalone readXmlPart(),
 
351
           in order to block creation of parts with mis-matched type, which don't belong on a track.
 
352
        - Allowed mixed part .mpt files (midi and wave), and made a new clipboard type 'text/mixedpart'.
 
353
        - Mixed part files can be dragged, imported or pasted to either a wave or midi track, and only the 
 
354
           relevant parts will be created. 
 
355
        - Added warning dialog showing how many, of how many total, parts couldn't be created.
 
356
        - Added a parameter to Event::write() and EventBase::write() to force full wave file paths to be stored.
 
357
          Used for copying, pasting, dragging, importing, exporting parts, but not for the song file itself.
 
358
       * Added: Right-click wave part popup menu now has 'export', just like midi parts. (T356)
 
359
        - As mentioned above, the full wave path is stored so there's minimum confusion when re-loading 
 
360
           the export, unless of course the file moved or was deleted etc.
 
361
       * Fixed: Some issues with clones, controller events, and port controller values. (T356)
 
362
        - It means "What you see on the controller graph is what you get, when you move the play cursor."
 
363
          Port controller values are used when moving the cursor, they make the knobs move and send
 
364
           values to the midi port. However, during play, they are not used, the song's controller events
 
365
           themselves are used. Synchronizing these two mechanisms is what this is all about.
 
366
          Fortunately, during play, "What you see on the controller graph" is ALWAYS correct, and is sent 
 
367
           to the midi port. 
 
368
        - TODO: Not quite done yet. Some functions may not update port controller values properly still,
 
369
           like splitting or gluing clone parts.
 
370
06.05.2009
 
371
      =======================================
 
372
      * 1.0rc2 tagged (rj)
 
373
      =======================================
 
374
 
 
375
02.05.2009
 
376
      * Feature: Right-click popup menu on a clone part now has "Select N clones", where N is number of clones. (T356)
 
377
        - Major addition: Part "clone chaining system". (See part.cpp for new functions). Speeds up searches for clones.
 
378
      * Feature: Added 'Paste clone' to arranger edit menu. Pastes clones of copied parts. (T356)
 
379
        - 'Paste' will behave as always, only making a fresh copy of non-clone parts, while cloning clone parts.
 
380
        - 'Paste clone' will always make a clone no matter if the parts are clones or non-clones.
 
381
      * Feature: Added 'Paste to track' and 'Paste clone to track' to arranger edit menu. (T356)
 
382
        - 'Paste' (and 'Paste clone') now attempt to paste to the original track(s) which the parts belonged to, 
 
383
           or if the original track has been deleted, then the current track. 
 
384
          'Paste to track' and 'Paste clone to track' paste all copied parts to the currently selected track, 
 
385
           which was the previous behaviour of 'Paste'.
 
386
        - Much work went into making sure that all scenarios work with these features, like copy/paste, drag/drop, 
 
387
           drag/drop .mpt part files, drag/drop between different instances of muse etc.
 
388
      * Fixed: Importing or dragging midi part file (.mpt) into muse now supports multiple parts in the file. (T356)
 
389
        - Changed MusE::importPartToTrack().  
 
390
      * Fixed: Midi record into existing part past part end, in 'Replace' record mode, works now. (T356)
 
391
        - Finished an erase events 'TODO' block in Song::cmdAddRecordedEvents.
 
392
      * Fixed: Midi record into existing part, past part end, was decreasing part aref count, causing de-clone of clones. (T356)
 
393
        - Removed extra "part->events()->incARef(-1)" from Song::cmdAddRecordedEvents().
 
394
      * Changed: Number of midi ports from 16 to 32. (T356)     
 
395
      * Added: Muse application desktop file, and added installation of it plus the muse icon, upon 'make install'. (T356)
 
396
        - Desktop file submitted by Orcan Ogetbil.
 
397
        - Note if muse is installed to /usr/local, the desktop file might not find the icon.
 
398
      * Fixed: "-mcpu= is deprecated" compiler warnings. (T356)
 
399
        - Changed configure.ac to use -mtune and -march.
 
400
      * Speedups: Some heartBeat routines (such as Meter) were constantly drawing, wasting time and causing flicker. (T356)
 
401
        - Also fixed Track Info midi detect light, and Midi Sync lights.
 
402
      * Fixed: Midi strip vu meters now have a peak indicator. (T356)
 
403
      * Fixed: Audio mixer strips now update when config minimum meter/slider value changed. (T356)
 
404
        - Also fixed blocky 'aliased' drawing at low signals / low minimum meter settings.
 
405
        - Changed Track::_meter and ::_peak from ints to doubles for more accuracy, eliminate 'false' draw update triggers.
 
406
      * Added: Configurable shortcut key: "Transport: Goto start". Default 'W' key (as in reWind to start). (T356)
 
407
      * Added: Appearance configuration button: Clear background picture. (T356)
 
408
        - Also fixed Appearance::apply() to clear the string if <none> selected.
 
409
        - Also fixed Arranger::configChanged() to set canvas null background QPixmap.
 
410
        - This means clearing the filename in the 'select picture' dialog also works now. 
 
411
      * Changed: Selected cloned parts now draw (inverted) dashed border, just like unselected parts. (T356)
 
412
      * Changed: Part drag-clone key from Shift-Ctrl back to Alt. (T356)
 
413
        - My fault. Was changed to Shift-Ctrl, but Ctrl is for selecting all items in a row or limiting movement to x or y. 
 
414
        - Still not a good thing. Some desktops even reserve Alt, Shift-Alt etc. for window move, snap etc.
 
415
        - TODO: Must find a way to override desktop setting. Without Alt, we don't have enough keys to work with!
 
416
          Don't want user to have to disable setting.
 
417
      * Cleanups: Moved some methods outside of Part and Track classes which I had put inside them. (T356)
 
418
        - Methods like addPortCtrlEvents() deletePortCtrlEvents() etc.
 
419
      * Changed: Muse wants qt >= 3.2, but some .ui files had version 3.3. (T356)
 
420
        - Changed editinstrumentbase, editgainbase, aboutbox, configmidifilebase, gensetbase, midisync, 
 
421
           fluidsynthguibase, and vamguibase .ui files.
 
422
      * Fixed: Midi Track info panel was allowing track name change to an already existing name. (T356)
 
423
        - Fixed Arranger::iNameChanged() to warn. Changing the name in the arranger Track List already warns OK.
 
424
      * Fixed: Crash or bizarre behaviour when undoing a track rename operation. (T356)
 
425
        - Replaced default simple Track class assignment operator with custom method. Added a flag parameter to 
 
426
           Track::clone and Track copy constructors to indicate partlist is simply assigned, not parts cloned. 
 
427
           Also removed the lines reassigning each part's track (!). Can get away with this since track rename 
 
428
           is the only operation to use that, but something better would be needed if more 'normal' behaviour 
 
429
           was needed in copy constructor and assignment operator !
 
430
05.04.2009
 
431
      * Fixed: Arranger part cloning works now! (Hold shift-ctrl while moving part - note dashed border on cloned parts). (T356)
 
432
        - In Song::cmdChangePart() do not call "oldPart->events()->incARef(-1)" if new part is clone of old part,
 
433
           (that is, old/new parts' eventlists point to same eventlist).
 
434
        - Changed from 'alt' to 'Shift-Ctrl' button combo to activate cloning in Canvas::viewMousePressEvent().
 
435
          Alt is reserved for moving the whole window (on my machine), so most people probably never knew about cloning? 
 
436
        - This also fixes a reference count problem when renaming a part, ref count was being dec'd past 0. 
 
437
          Quite possibly fixes some other issues, too. Testing...
 
438
      * Fixed: Transport window was disappearing by itself. (T356)
 
439
        - Removed WStyle_Tool from Transport constructor. Seems to test Ok now.
 
440
        - Gave it a caption "Muse: Transport", to appear on task bar.
 
441
      * Fixed: Big time display now shows MTC minutes, seconds, frames, and subframes. (T356)
 
442
      * Fixed: Wave editor MTC cursor time readout was not right. (T356)
 
443
        - Use samplepos to set pos2 value in WaveEdit::setTime().
 
444
03.04.2009
 
445
      * Followup: Track info panel program, volume, and pan were not allowing editing values. (T356)
 
446
        - Fixed the track info heartBeat function.
 
447
      * Followup: Some more changes to respect MidiDevice open flags, set in midi config window. (T356)
 
448
        - Strangely, midi config 'write enable' lights still weren't stopping events from being played, 
 
449
           even though the port was clearly unsubscribed successfully for writing (!) 
 
450
          Also, strangely, only if Jack Midi was disabled, some device putEvent() error messages were appearing.
 
451
          I expected the messages to ALWAYS occur but it didn't happen, even though events were always played. 
 
452
        - Added MidiDevice::_writeEnable and ::_readEnable, set when the device is opened or closed. 
 
453
        - Changed the various ::putEvent methods to respect _writeEnable. (_readEnable not used yet, because
 
454
           port unsubscribtion for reading IS working - events stop arriving).
 
455
      * Added: Instrument definition file for playing to an Emu 4MBGSMT SoundFont. (T356)
 
456
01.04.2009
 
457
      * Fixed: Midi config window: Clicking on green in/out enable lights was not actually dis/enabling in/out. (T356)
 
458
        - As initiated from MPConfig::rbClicked(), MidiAlsaDevice::close() was seeing the NEW flags, not the old.
 
459
          So, in MidiAlsaDevice::close(), removed _openFlags check, and added snd_seq_get_port_subscription() check.
 
460
        - Tested Ok disabling/enabling ins/outs, and clearing/setting port's device.
 
461
      * Fixed: Muse was not storing midi port 'openFlags' in the song files. (T356)
 
462
        - Muse could read the old 'record' flag and the new 'openFlags' tags, but only stored the 
 
463
           old 'record' tag (well, it was actually storing rwFlags by mistake).
 
464
        - Added the necessary tag to file write. (Related to the fix above - now it stores the port in/out enable).
 
465
01.04.2009
 
466
      * Fixed: Compile problem with muse widgets plugin "undefined reference to `main'". (T356)
 
467
          - Added -c to musewidgetsplugin_so_CPPFLAGS in muse/widgets/Makefile.am
 
468
          - Re-ran automake, configure, built, tested ok.
 
469
          - To be tested by users...
 
470
      * Fixed: Compile error: "editctrlbase.cpp:53: error: invalid use of incomplete type 'struct PosEdit'" (T356)
 
471
          - Added a <customwidget> section to editctrlbase.ui
 
472
          - To be tested by users...
 
473
31.03.2009
 
474
      * Feature: Midi file export: Configuration options added for 2 or 4 byte time signatures + note off optimizations. (T356)
 
475
        - For 4 byte timesigs: Add fixed "metronome" value of 24 (once per quarter-note), and "32nd notes per quarter-note" value of 8. 
 
476
        - For note off optimizations: Replace note offs with zero velocity note ons.   
 
477
      * Fixed: Midi track info panel now updates when external changes occur, such as keyboard program changes. (T356)
 
478
        - Changed track info window from songChanged based updates to periodic heartBeatTimer based updates.
 
479
      * Feature: Added midi input detect indicator to track info panel. (T356)
 
480
        - Detects all note on-off, controller, aftertouch, program change, and pitchbend (but not sysex or realtime) 
 
481
           events on the selected channels, on the selected midi ports.  
 
482
      * Fixed: Midi program adjustment controls now respond when external program changes occur. (T356)    
 
483
        - Added a section to handle ME_PROGRAM in MidiPort::sendEvent(), so that visual controls can update,
 
484
           such as trackinfo 'program' , and pianoroll 'program' controller adjustment knob.
 
485
      * Fixed: Some issues with 'Follow Song' setting and position cursor position/visibility. (T356)
 
486
        - Added 'xorg' in ppos calculations in Canvas::setPos() (and others like WaveView, but that still isn't quite right.)
 
487
        - For windows which have an appreciable x origin (space at the left of the contents), the play cursor was 
 
488
           too far right or not visible sometimes, especialy with large horizontal zoom, particularly the arranger.
 
489
          With 'Follow Continuous', the play cursor should now stay about in the middle of the windows. 
 
490
          With 'Follow Page', the view should now more or less always move in full 'pages'. 
 
491
27.03.2009
 
492
      * Fixed: Track info 'instrument patch' list box was not correct when selecting another track with unknown patch. (T356)
 
493
        - Broken last fixes.
 
494
      * Improved: Support for & < > \ " characters in xml files. (T356)
 
495
        - Fixed xml.cpp
 
496
        - Many places in muse can now use them (ex. track name, instrument names/patches/controllers etc.)
 
497
        - TODO: Writing: Must still check for places which manually use Xml::nput, put etc, but at least muse 
 
498
           should now read them all without trouble.
 
499
      * Fixed: Instrument Editor was still asking to save sometimes even if user clicked save already. (T356)
 
500
        - Call instrumentNameReturn() patchNameReturn() and ctrlNameReturn() from various places, to force update.
 
501
      * Feature: Redesigned Midi Sync Editor and sync system. To allow multiple inputs/outputs, and more. (T356)
 
502
        - See tooltips or click on What's This to see detailed explanations of each item.
 
503
        - TODO: Only realtime MC events are tested at the moment. MMC and MTC are not tested, or not working yet. 
 
504
        - TODO: Fix midi sync clock input. Observed problems: wandering, even reversing(!) song cursor time.
 
505
          Can be stored in .med file that way (tempomap->fix is negative number!) making a bad file which won't play.
 
506
12.03.2009
 
507
      * Fixed: Global configuration dialog 'Displayed Resolution', and added 'Midi Resolution' boxes. (T356) 
 
508
        - Separate midi/gui configurations were allowed, but not implemented. 
 
509
        - TODO: Now make the 'Displayed Resolution' setting actually do something.
 
510
          The 'Midi Resolution' currently sets BOTH what should be separated into midi and gui.
 
511
          Only config.division is used throughout muse, not config.guiDivision.
 
512
          Also, now that these settings are working, they reveal some issues with drawing, such as
 
513
           not enough pianoroll zoom-out ability with high resolution.
 
514
      * Improved: Midi Clock output. Was improper, causing external devices to misbehave. (T356)
 
515
        - Changed MidiSeq::processTimerTick().
 
516
        - Tested: With RTC resolution at 8192, the target device slowly drifted out of phase with muse after 
 
517
          about 20 bars. With RTC resolution at 1024 it was actually more stable (100 bars or more), despite 
 
518
          more clock jitter.
 
519
          Used an equalization scheme to balance the time out. Must test if stability improves without this scheme. 
 
520
          MidiSeq::processTimerTick() still needs some tweaking. 
 
521
        - You may see severe phase difference if moving the cursor around and playing. Try playing from the song start.  
 
522
19.02.2009
 
523
      * Patch: Patch to find best available ALSA timer. (T356)
 
524
        - Submitted by Pedro Lopez-Cabanillas. Patch was named "muse_alsatimer_2nd.patch".
 
525
        - "This patch adds selection logic to ALSA timer initialization, trying to find 
 
526
            the best available ALSA timer (a non slave timer with lowest resolution).
 
527
           Currently muse uses only the ALSA system timer, even when the system has an 
 
528
           ALSA RTC or ALSA HPET drivers available, which are probably better for many users."
 
529
      * Patch: Patches for printf%zd/size_t, and grepMidi/gcc4.4 issues, and fix some compiler warnings. (T356)
 
530
        - Submitted by Orcan Ogetbil.
 
531
        - Patches were named muse-size_t.patch, muse-gcc44.patch, and muse-fix-some-compilation-warnings.patch
 
532
      * Fixed: Some more issues with manipulating drum tracks and underlying controller events. (T356)
 
533
        - Changing a drum track's output port, (and allowing muse to change the whole drum map),
 
534
           was not changing existing port controller values.
 
535
        - Also changing a track from 'midi' <-> 'drum' was not changing the port controller values properly.   
 
536
        - NOTE: I still observed occasional 'ghost' midi port controller values. Tracking this issue...
 
537
      * Fixed: Seek or Init Instrument with XG instrument caused double loading of controller init values. (T356) 
 
538
        - Moved controller init code from MidiPort::sendGm/XgOn() to a new MidiPort::sendGm/Gs/XgInitValues() 
 
539
           and changed Audio::initDevices() to call them.
 
540
      * Added: 'Value' readout on menu toolbar (beside 'Cursor' readout), in Drum Editor. (T356)
 
541
        - Just like pianoroll, except it only shows controller values. 
 
542
        - Now you can read the values you are drawing on the Drum Editor controller graph.
 
543
      * Fixed: Some issues with configuration, and appearance window. (T356)
 
544
        - Muse now remembers configured 'selected track foreground/background' colours. 
 
545
        - Added "Midi Editor -> controller graph" colour configuration option (default navy blue).
 
546
        - Fixed Arranger and Style/Fonts windows not showing current values.
 
547
      * Fixed: Segfault with Appearance configured to show events, with a part tick > 0 on part canvas. (T356)
 
548
        - Added limit checks on from/to variables in PartCanvas::drawItem().
 
549
      * Fixed: Midi controller graphs were displaying 'quantization' vertical lines instead of 'snap' lines. (T356)
 
550
        - Changed CtrlCanvas::draw() to use raster instead of quant value.
 
551
        - Also changed gray background colour to darkGray, so 'major' snap lines can be seen.
 
552
      * Added: Send 'null' midi controller parameters after each RPN/NRPN controler event. (T356)
 
553
        - Symptom: After muse sends any RPN/NRPN controller event, operating the 'data' (MSB/LSB) 
 
554
           midi controllers affects that RPN/NRPN controller.
 
555
        - Cause: The RPN/NRPN parameters are still active, open to any subsequent data adjustments.
 
556
        - Cure: Send 'null' parameters after each RPN/NRPN event, so that subsequent data adjustments
 
557
           are sent there instead.
 
558
        - Added adjustable 'null' parameter numbers to the instrument editor. Typically they should 
 
559
           be '127/127', but they are adjustable (select an unused controller number) if desired.
 
560
          They can also be turned off, if desired, by selecting 'off/off', so that muse will NOT send
 
561
           them. Turning them off is useful for instruments which do not use RPN/NRPN controllers.
 
562
      * Changed: GS/XG instrument patches high banks from 18 to 128, 17 to 127, and 5 to 65. (T356)
 
563
        - Was it a typo? XG specifications say high banks should be 128, 127, 65 etc.
 
564
        - Also, in instrument editor, reorganized XG Drum patches into Drum Kits and Sound FX.
 
565
        - TODO: Other instruments may have to be changed, too.
 
566
      * Fixed: Track info 'Rec' button: If new part was created, it was too short even to see. (T356)
 
567
        - Changed Song::recordEvent to round (tick + 1) up one bar.
 
568
        - Added separate record buttons for program (and bank), volume, and pan.
 
569
18.02.2009
 
570
      * Added: Missing midi program controller to pianoroll/drum edit controller graph and adjustment knob. (T356)
 
571
        - Since the range is limited to 1-128, this only edits the program byte, NOT the program MSB or LSB!
 
572
        - Since only the program byte is edited, adding new values to the graph uses the CURRENT 
 
573
           program MSB and LSB, as shown in the track info pane (H-Bank/L-Bank). 
 
574
           If the current program is 'unknown' (all off), then the graph uses MSB=off, LSB=off if the song type 
 
575
            is GM, and MSB=1, LSB=1 if not.  
 
576
        - I considered using the 'previous value' on the graph for the MSB/LSB, but then there would be 
 
577
           no way to quickly set the MSB/LSB when adding new values to the graph.
 
578
        - The only other way is to draw on the graph, and then use the midi event list editor to change 
 
579
           the program MSB/LSB values.
 
580
        - TODO: Fix the track info H-Bank/L-Bank/Program behaviour. Do not allow program to be 'off' 
 
581
           if H-Bank/L-Bank are not 'off'.
 
582
      * Changed: Instrument editor behaviour. Allow a 'user' instrument directory PLUS the 'built-in' directory. (T356)
 
583
        - Muse now looks first in the MUSEINSTRUMENTS directory (default MUSEHOME/muse_instruments, where MUSEHOME  
 
584
           is default HOME/), then looks in the 'built-in' instrument directory (/usr/share/muse etc.)
 
585
        - Instruments found in the user directory OVERRIDE instruments with the SAME NAME in the 'built-in' directory.
 
586
        - This allows users to quickly experiment with existing instruments while keeping the same instrument name.
 
587
        - TODO: add a 'Delete' button to the instrument editor.
 
588
      * Added: Pitch bend sensitivity controller to fluidsynth. (T356) 
 
589
      * Fixed: Organ synth: Volume not working. (T356)
 
590
        - There is no volume gui control to return proper min/max values.
 
591
        - Added a trap for CTRL_VOLUME in Organ::getControllerInfo() and
 
592
           set min/max to 0/127.
 
593
      * TODO: Fix some broken VAM synth midi controllers with improper range. (T356)     
 
594
09.02.2009
 
595
      * Fixed: Drum map: Grey vertical lines not proper when map header rearranged. (T356)
 
596
        - Used header->mapToSection when drawing grey vertical lines in dlist.cpp.
 
597
08.02.2009
 
598
      * Fixed: Drum map - Changing ANote, Channel, Port now updates controller graph and knob. (T356)
 
599
        - Changing ANote, Channel, or Port of a drum map item now updates the controller graph 
 
600
           and adjustment knob. Useful for XG/GS drum controllers.
 
601
        - TODO: Fix 'Undo' changing ANote, Channel, Port.
 
602
      * Fixed: Drum map - List item drag and drop works properly now. (T356)
 
603
        - Was not manipulating events properly, although port controller values were still OK.
 
604
          Useful for XG/GS drum controllers.
 
605
        - TODO: Fix 'Undo' of drag and drop.
 
606
      * Changed: All calls to some new message sending routines with direct calls. (T356)
 
607
        - Replaced all calls to msgSetTrackOutChannel, msgSetTrackOutPort, msgRemapPortDrumCtlEvents,
 
608
           and msgChangeAllPortDrumCtrlEvents, with direct calls (song->remapPortDrumCtlEvents etc.),
 
609
           bracketed by audio->msgIdle(true) and audio->msgIdle(false).
 
610
        - For complex operations, 'msgIdle' technique seems to be preferred over sending messages.
 
611
        - Tested such operations while in stop mode, and while playing. Tested OK.
 
612
06.02.2009
 
613
      * Changed: Hard coded LADSPA paths in plugin.cpp and ssplugin.cpp to include /usr/lib64/ladspa  
 
614
           and /usr/local/lib64/ladspa. (T356)
 
615
        - Suggested by Orcan Ogetbil    
 
616
        - Note that the environment variable LADSPA_PATH still overrides these hard-coded paths.
 
617
06.02.2009
 
618
      * Patch applied: Removes duplicate implementation of fast_log*() functions in ssplugin.h (T356)
 
619
        - Submitted by Orcan Ogetbil 
 
620
05.02.2009
 
621
      =======================================
 
622
      * 1.0rc1 tagged (rj)
 
623
      =======================================
 
624
04.02.2009
 
625
      * Fixed: Track info panel 'Rec' button not changing existing values on controller graph. (T356)
 
626
        - Name changes: MidiCtrlValList::add, ::del, ::find to ::addMCtlVal, ::delMCtlVal, ::findMCtlVal 
 
627
           to make it easier to spot all usages of them.
 
628
        - Simple fix in MidiCtrlValList::addMCtlVal: Return false if the value is already found for the part.
 
629
        - TODO: It takes three 'undos' to undo the 'Rec' button push. It is because prog, vol, and pan
 
630
           are changed. This should be unified into one undo...
 
631
 
 
632
01.02.2009
 
633
      * Fixed: Compile error on 64-bit systems, in audiotrack.cpp at cacheJackRouteNames(). (T356)
 
634
        - Changed from unsigned int pair key, which required pointer conversion, to AudioTrack* pair key. 
 
635
        - Test OK (on my 32-bit system). ** Need 64-bit users to test it. **
 
636
      * Fixed: Segfault when playing a note in a drum map, when the note's port says 'none'. (T356)
 
637
        - Added a line in the 'don't echo controller changes back to software synthesizer' block of
 
638
           Audio::processMidi(), to check valid device.
 
639
      * Fixed: Missing or stuck notes or events on recording (or rec-armed only) midi track. (T356)
 
640
        - Symptom: Playing live (rec-armed only), or recording, on a midi track gives stuck or 
 
641
           missing notes and other events. Very annoying bug!
 
642
        - Cause: A single list was used for recording midi events, while muse was also reading from that list.
 
643
        - Employed a 'flipping' two-list technique for MidiDevice::recordEvents().
 
644
        - In Audio::processMidi(), process one list while MidiDevice::recordEvent() writes to the other.
 
645
      * Fixed: Manipulating controller events in midi track parts was not changing midi port controller values. (T356)
 
646
        - Symptom: Change a part's midi controller events, or move or delete a part, or delete a track, then the underlying
 
647
           midi port's controller values are not altered, leading to 'phantom' or 'ghost', or duplicate controller values,
 
648
           even where there is no part or no track, or no controller values where there should be !
 
649
        - Oops, how did this major bug go unnoticed so long?...   
 
650
        - Major rewrite: Created a struct MidiCtrlVal{int val, Part* part}, and changed class MidiCtrlValList from
 
651
           std::map<int, int>  to  std::multimap<int, MidiCtrlVal>
 
652
          Changed MidiCtrlValList::add(int tick, int value) to MidiCtrlValList::add(int tick, int value, Part* part),
 
653
           and MidiCtrlValList::del(int tick) to MidiCtrlValList::del(int tick, Part* part),
 
654
           and added MidiCtrlValList::find(int tick, Part* part).
 
655
          Changed Song::addEvent(), Song::changeEvent(), Song::deleteEvent(), Song::addPart(), Song::changePart(), 
 
656
           Song::removePart(), Song::insertTrack2(), and Song::removeTrack2() to make sure port controller values 
 
657
           are added/removed properly.
 
658
          Changed a few other things to make it all work. 
 
659
          Reasons: The Part* member was added to each controller value item in the list, so that the system can 
 
660
           know exactly which part was responsible for putting a value in the list.
 
661
          This helps when we have overlapping controller values from events of different parts on the same port and the same channel - 
 
662
           if one of the parts is deleted or moved, the overlapping values from the events of the other part are NOT disturbed
 
663
           within the port's controller value list. 
 
664
          The list was changed from 'map' to 'multimap' to accommodate the multiple values from events of different parts.
 
665
         - NOTE: When there are overlapping values from events of different parts, the system will arbitrarily choose the
 
666
           first value it finds at a given time. I considered 'mixing' the overlapping values together
 
667
           (by averaging, or maybe highest/lowest value), but I felt it would just cause more confusion for the user.
 
668
          Therefore it is up to the user to be aware of overlapping controller events and deal with them.
 
669
          If you are looking at a controller graph and it shows a particular value at some time, but the 
 
670
           midi knobs/sliders and actual midi output does NOT correspond to what you are seeing, then 
 
671
           most likely ANOTHER part on the same port and channel has an event at that same time, and that 
 
672
           event's value is likely the one that is being used by the system.
 
673
      * Fixed: Changing a midi track's out port or channel was not updating the ports' controller values. (T356)
 
674
        - Changed MidiTrack::setOutPort() and MidiTrack::setOutChannel() calls to new MidiTrack::setOutPortAndUpdate() 
 
675
           and MidiTrack::setOutChanAndUpdate(), which make sure the port's controller value list is properly updated.
 
676
        - Part of the larger fixes above.   
 
677
      * Fixed: Midi adjustment knob on controller canvas was not working after moving the part to another track. (T356)
 
678
        - Added some code to CtrlCanvas::songChanged() to set curPart and curTrack and update the knob,
 
679
           upon SC_PART_MODIFIED.
 
680
      * Fixed: Clear midi input transforms when song cleared. Update transform dialog when song changed. (T356)
 
681
        - Symptom: Repeated loading of songs causes duplication of midi transforms, causing .med song files to grow big !
 
682
        - Added clearMidiInputTransforms() to midiitransform.cpp, called by Song::clear().
 
683
        - Added updatePresetList() and slot songChanged() to MidiInputTransformDialog, triggered by Song::songChanged.
 
684
        - Added some code to readMidiInputTransform() to **auto-eliminate** duplicate transforms in existing .med files.
 
685
        - Still some 'quirkiness' with the dialog buttons, but it works better now.
 
686
        - ALSO: Applied those same fixes to midi transforms and the midi transform dialog.
 
687
      * Fixed: Notes not recorded to track for a drum map 'instrument item' having non-default (track) port. (T356)
 
688
        - Changed to drumRecEvent.setPort(port) in 'Track::DRUM' section of 'if(recording)' section of Audio::processMidi()
 
689
           so that buildMidiEventList() would accept the notes.
 
690
      * Fixed: Removed jack midi port names from audio in/out port lists. (T356)
 
691
        - Added JACK_DEFAULT_AUDIO_TYPE to jack_get_ports calls in JackAudioDevice::inputPorts and ::outputPorts.
 
692
      * Fixed: Notes were being mixed up when switching a track type between midi and drum. (T356)
 
693
        - Changed to drumMap[pitch].enote in 'Drum -> Midi' section of TList::classesPopupMenu().
 
694
      * Completed: Moving multiple events from multiple parts when editing in pianoroll or drum editor. (T356)
 
695
        - Work had begun several commits ago. Completed.
 
696
        - Now you can select and move multiple events from different parts in the editors.
 
697
      * Feature: When editing multiple parts in the pianoroll or drum editor, controller graphs are now overlaid! (T356)
 
698
        - When you are editing more than one part at a time in the editors, the controller graph will overlay
 
699
           all of the graphs together!
 
700
        - The currently selected part will show its controller as normal blue columns, as before, but the other 
 
701
           unselected parts will draw their controllers as a gray 'ghost' outline on top.
 
702
        - TODO: Add menu items, hot keys etc. to cycle through each part (in case there are no notes to select in a part!)
 
703
      * Improved: Support for GS/XG midi drum controllers. (T356)
 
704
        - Added MidiPort::drumController(). Tells if an event is a drum controller event, according to the port's instrument.
 
705
          Does it by looking up the event in the instrument's controller list.
 
706
          Would prefer a 'marker flag', eg use the event 'dataA' high bit to mark as drum controller event, but it's too risky!
 
707
          Used MidiPort::drumController() a dozen or so places where drum controller events needed remapping/manipulation etc.
 
708
          May be a speed hit with many/large controller graphs? Test further...
 
709
        - Added code to update port controller values when changing drum map ANote, channel, or port.
 
710
        - KNOWN BUGS: Still a few loose ends to tie up: Port controller values (but not track events) may not be correct when: 
 
711
           'Swapping' (by dragging) items in the drum map, and
 
712
           loading a song with a drum map which had 'swapped' (by dragging) items.
 
713
          Some stuff (midi value adjustment knob) is not updated when changing drum map ANote, channel, or port. 
 
714
          Workaround: Be sure to select another drum map item, then reselect the changed item again, after such operations.
 
715
      * Changed: All softsynth midi controllers now have default initial values. (T356)
 
716
        - Added default initial values to all softsynth controllers such as fluidsynth's controller map.
 
717
        - Added 'initval' argument to all ::getControllerInfo() methods, which is passed to the newly created 
 
718
           controller (new MidiController) in SynthI::initInstance().
 
719
        - These initial values will then show on the various gui midi adjustment controls, knobs etc.
 
720
      * Changed: Fluidsynth master gain and reverb initial settings. Gain was too loud and there was too much reverb. (T356)
 
721
      * Fixed: Follow up - some issues with instrument editor. (T356)
 
722
        - Instrument editor was sometimes falsely detecting instrument had changed. 
 
723
        - Also, do not list 'internal' instruments like generic midi, soft synths, vst etc.
 
724
        - Also, upon 'Save As', prompt for a new instrument name if the user hasn't changed it, to avoid duplicates.
 
725
        - Remove any unsaved (new) instrument when moving to another instrument, closing etc.
 
726
        - Fixed up tab order of instrument editor controls.
 
727
        - TODO: When muse wants to close, trap it in the instrument editor so we can save.
 
728
      * Fixed: Problem in xml parser. '&amp', '&quot' etc were being read as '&&', '""' etc. (T356)
 
729
        - Added a couple of lines, and removed one, in Xml::stoken().
 
730
      * Fixed: Zero bias midi controllers (with a negative minimum value, like 'pan') weren't working right. (T356)
 
731
        - Broken after last changes. Added an updateBias() line to MidiController::read() 'controller' tag end section.
 
732
      * Added: Send all instrument controller initial (default) values to all of a port's midi channels, 
 
733
           except where explicitly initialized by the song. (T356)
 
734
        - Added some code to MidiPort::setMidiDevice to initialize controllers from instrument, if needed.
 
735
        - When setting a midi port's device (such as in Settings->Midi Ports, or simply when loading a song),
 
736
           then any specified controller initial values in the instrument are sent to ALL of the port's channels, 
 
737
           EVEN if the controller is NOT in the song. This ensures better consistency between songs, so that 
 
738
           chosen controllers are not left in undesirable 'leftover' states. 
 
739
          (Taken from important comments in MidiPort::setMidiDevice(): )
 
740
          For example: A song is loaded which has a 'reverb level' controller initial value of '100'.
 
741
          Then a song is loaded which has no such controller (hence no explicit initial value).
 
742
          The 'reverb level' controller would still be at '100', and could adversely affect the song,
 
743
           but if the instrument has an available initial value of say '0', it will be used instead.
 
744
        - It is desirable to have defaults for some controllers, but it is wise to have NO default for certain 
 
745
           other controllers, like the 'reset all controllers' and 'sustain' controllers (actually, zero would be OK).
 
746
      * Changed: Clicking Midi->InitInstrument (or moving to song position 0) now initializes controllers
 
747
          from instrument controller initial values, if they exist, or previously hard coded values if not. (T356)
 
748
        - sendGmOn() and sendXgOn(), which are called via Audio::initDevices(), now use instrument controller
 
749
           initial values if they exist, or the previously hard coded values if not.
 
750
      * Changed: Non-softsynth non-GM drum tracks: Patch popups now show all drum AND melodic patches on ANY channel. (T356)
 
751
        - For drum tracks, if the song type is not GM, and the track's port is not a softsynth, then all patches
 
752
           including drum AND melodic are shown for ALL channels when 'select instrument patch' popup is clicked,
 
753
           regardless of the patches' 'drum' flag setting (in the instrument editor). 
 
754
           (Softsynths handle their own patch popup lists).
 
755
        - Added a 'bool isDrum' parameter to all populatePatchPopup() methods, which is passed 'true' only
 
756
           if it's a drum track, and changed a couple of lines in the only class which uses the drum flag - MidiInstrument.
 
757
        - Previous behaviour was to show drum patches ONLY on channel 10 of drum tracks. 
 
758
        - Reasons for change: 1): A midi device might have a non-standard drum channel(s), so drum patches 
 
759
           as well as melodic patches are shown for all channels. 2): Since any channel can be used in the drum map,
 
760
           melodic patches are shown as well as drum patches so that any patch can be selected for any channel.
 
761
          NOTE: Each of a drum track's channels which are used in the drum map should be set to a patch number, 
 
762
           otherwise it doesn't work right ! (**) This is true for softsynth devices too ! (**). 
 
763
          So it was imperative that the user be able to select ANY patch on ANY channel, to suit their setup, 
 
764
           for flexibility.
 
765
          (If that same flexibility were applied to regular midi tracks (non-drum tracks), it might make the
 
766
           'drum' flag for patches obsolete, since there would be no reason to filter them from the list !)
 
767
      * Changed: All midi controller event values sent to a midi port are now constrained (limited) to the port's
 
768
          instrument controller's range (if that instrument controller exists). (T356)
 
769
        - Example: Incoming events from a midi keyboard's pitch wheel range from -8192 to 8191, but it is
 
770
           desired to limit that range to, say -200 to 8191. One could use the midi input transformer to
 
771
           accomplish this, but instead now you can simply adjust the chosen instrument's pitch controller range
 
772
           (in the instrument editor), and then the pitch wheel's range will be limited to that range.
 
773
        - This only affects playback events (and therefore 'live' incoming events), but does NOT affect
 
774
           actual recorded data, so that by simply readjusting the instrument controller's range, 
 
775
           or by changing instruments, the range can be restored with no loss of recorded data range.
 
776
      * Fixed: Cleaned up all .idf files and changed ranges of all 'zero-bias' controls (-64/63 'pan' etc). (T356)
 
777
        - Many .idf files had bare '&' characters in them, causing corruption of names and values when reading.
 
778
        - Also turned on the 'drum' flag for ALL drum patches in MANY .idf instrument files.
 
779
          Some .idf's I was uncertain about, and did not change : AlesisQS6, Waldorf Q.
 
780
      * Changed: Fluidsynth pan controller range from 0/127 to -64/63. (T356)
 
781
        - To be consistent with .idf file changes.
 
782
      * Replaced: All direct calls to MidiPort::setHwCtrlState() from GUI thread, with new Audio::msgSetHwCtrlState(). (T356)
 
783
        - My fault, I was not paying attention to iter-thread communications.
 
784
      * Optimizations: Optimized MidiPort::setHwCtrlState(), MidiPort::sendEvent(), and calls to MidiPort::setCtrl(). (T356)
 
785
        - Optimized MidiPort::sendEvent().
 
786
        - Replaced code in MidiPort::setHwCtrlState() with more optimized code.
 
787
        - Replaced several clumsy calls to MidiPort::setCtrl(), which checked for and created the controller,
 
788
           with a new optimized MidiPort::setControllerVal(). 
 
789
06.01.2009
 
790
      * Fixed simpledrums/ssplugin.cpp to build with recent Ubuntu 8.10 (FN)
 
791
17.08.2008
 
792
      * Feature: Muse now has an instrument editor, complete with a midi controller editor! (T356)
 
793
        - Click on the menu "Midi->Edit Instrument".
 
794
        - You will see a sysex editor there too, but it is non-functional. (Use the midi event editor instead).
 
795
        - >>> Tooltips and "What's This?" are provided with IMPORTANT information. <<<
 
796
          >>> If you want to understand how to use instruments, patches, and controllers in your song, <<< 
 
797
          >>>    READ THEM!    <<<
 
798
      * Added: Environment variable MUSEINSTRUMENTS, so a (writable) instrument directory can be chosen
 
799
         instead of default /usr/share/muse/instruments etc. (T356)
 
800
        - Also added display of environment variables recognized by muse to command line help (muse -h).
 
801
      * Fixed: Popup displays of instrument patches to filter according to GM, GS, XG song type, and whether
 
802
         on drum channel 10. (T356)
 
803
        - Use the new instrument editor to set these GM, GS, XG, and drum filters.
 
804
      * Changed slightly: Creation of a new drum track - initialize to channel 10 instead of 1. (T356) 
 
805
      * Fixed: Force audio prefetch seek when play is pressed. (T356)
 
806
        - In Audio::seek, changed the call of audioPrefetch->msgSeek to force a prefetch,
 
807
           to ensure the most recent data. Things can happen to a part before play is pressed  
 
808
           such as part muting, part moving etc. Without a force, the wrong (old) data was being played.
 
809
        - If you perform those same operations while playing, there may be a few seconds delay before you
 
810
           hear the changes (the play cursor must move a certain distance before they're heard).
 
811
        - TODO: How to make the same thing happen when transport is externally started, such as from qjackctl.
 
812
            OR: How to force a prefetch at specific places like when a part is muted, and when it is moved,
 
813
                 instead of just before play is started. That way the operations can be done quickly while playing.
 
814
      * Fixed hangup: Upon loading of songs with fluidsynth soundfonts which can't be found. (T356)
 
815
        - (!) Removed error message box from FluidSynthGUI::processEvent causing freezeup.
 
816
        - You can still read fluidsynth errors by running muse on a command line. I figured it was 
 
817
           better to be able to load the song and to see errors, instead of just letting it freeze.
 
818
        - This should now allow you to share fluidsynth songs with other people (without the soundfonts).
 
819
      * Fixed: Audio aux tracks not working, intermittent. (T356)
 
820
        - Aux functionality was intermittent depending on whether the aux had out routes,
 
821
           and whether any tracks feeding the aux had out routes, and other factors.
 
822
        - In Audio::process1, rearranged, and added, some code to make aux work all the time now.   
 
823
      * Speedups: To some songChanged() functions. Ignore unnecessary flags. (T356)
 
824
        - For example simply adjusting midi gui controls would cause costly and
 
825
           unnecessary rebuilding/redrawing of certain areas, like parts of trackinfo, and controller graphs.
 
826
        - Noticeably less 'slugglish' when adjusting controls now.
 
827
      * Fixed: Midi controller events not being added to midi port controller, after record with no part. (T356)
 
828
        - Symptom: If you record midi controllers without first creating a part, muse creates the part 
 
829
           for you and creates the controller graph OK, but when you move the play cursor around, the graphs
 
830
           have no effect. This doesn't happen if you first create the part to record into, or manually edit a graph.
 
831
        - Symptom: As above, the graph is OK, but the controllers don't show up in the list when you click 'ctrl'.
 
832
        - Changed a line in song::cmdAddRecordedEvents() to use addEvent() instead of adding directly to list.
 
833
      * Fixed: Automatic detection of pitch bend wheel not working. (T356)
 
834
        - Added some code to MidiPort::sendEvent to detect ME_PITCHBEND events.
 
835
        - Note: There appears to be a sound system bug (using ALSA 1.0.15): The system will NOT deliver any pitch 
 
836
           bend events to muse until ANOTHER controller is detected, ex. move the modulation wheel THEN the pitch wheel.
 
837
          Verified with another app - RG - and with a real midi hardware to hardware connection (not my KB's fault).
 
838
      * Observed: Stuck or missing midi notes when recording or even just 'record armed only' 'live' playing. (T356)
 
839
        - The sound system appears to be having occasional trouble detecting midi events, including note-off ! 
 
840
          Verified with muse and RG (using ALSA 1.0.15). Not sure why or when this started, seems early this year...
 
841
      * Linked: All midi knobs and sliders with their labels. (T356)
 
842
        - Now they work together when displaying and adjusting.
 
843
        - After careful consideration of the meaning of 'off' in those
 
844
          labels, you now double click the label to turn the midi control on/off.
 
845
          Off does not mean 'zero'. Rather, it means:
 
846
          'Don't save this current value in the song file'.
 
847
          When a midi control is 'off', loading the song won't initialize the controller with a value.
 
848
          'Off' means the current value is set at 'unknown'. 'Unknown' means the actual 
 
849
           'behind the scenes' hardware value is the last value that was set. The knob or slider still 
 
850
           shows this value, or a default initial value, or if both of those are unknown, then 0.
 
851
      * Changed: Midi and audio level slider/knob labels to show '---' for infinite attenuation. (T356)
 
852
        - As mentioned above, the midi level slider labels can also show 'off'.
 
853
      * Fixed: The new midi controller knob in pianoroll and drum editor. (T356)
 
854
        - It was not adjusting anything.
 
855
      * Fixed: Midi vu meters again. Now they should work! (T356)
 
856
        - They were not responding to play events with an off velocity other than zero.
 
857
      * Fixed: Marker view window doesn't remember if it is open or closed. (T356)
 
858
        - Add a markerClosed function to app.
 
859
      * Reverted: Back to audioRTalloc in mpevent.h (T356)
 
860
        (!) - I had changed it to midiRTalloc, but that may have been causing problems like 
 
861
               midi shutdown (audio OK) after a few hours, and crash soon afterwards. 
 
862
              Verifying... No more midi shutdowns after a few hours, so far...
 
863
            Ooops, not so fast, happened again...
 
864
30.04.2008
 
865
      * Fixed bug in drum editor. Dragging the splitter too far left causes runaway resize, stuck in loop. (T356)
 
866
        - Tried several different arrangements, but QSplitter won't behave the way I need it to. Best I could do, so far. 
 
867
        - You may notice some strangeness, like the controller graph not aligning with the matrix, if the right edge 
 
868
           of the window is offscreen.
 
869
      * Added 'add/set event' to audio automation right-click popup menus. Ancient request by R.J. (T356)
 
870
      * Fixed arranger midi strip and arranger top controls not giving up keyboard focus after adjustment/entry. (T356)
 
871
        - Further request by user G.B. Changed all relevant QSpinBoxes to custom SpinBox, which behaves like this:
 
872
           Click up/down, or mousewheel, or hit enter with un-modified text (which means enter TWICE for modified text), 
 
873
            and the control will give up focus, thereby allowing you to use global shortcut keys afterwards. 
 
874
            Up/down keys still keep the focus.
 
875
        - TODO: Piano roll and drum editor.
 
876
      * Fixed major problem with lost jack routes upon file save, when save causes a jack shutdown. (T356)
 
877
        - Symptom: You click save, but jack shuts down during the save, causing lost jack routes in the file.
 
878
        - Fix: Cached the jack route names before file save, then used them during AudioTrack::writeRouting() xml code.
 
879
          Note this doesn't actually stop shutdowns from happening - now it just saves your files without losing jack routes.
 
880
      * Fixed mysterious intermittent wave part muting, as mentioned in 11.03.2008 (T356)
 
881
        - !!! PartList and EventList are now sorted by frame instead of tick, for wave parts only. Because fetchData() 
 
882
           didn't like sorting by ticks. This is a radical change. So far, no other areas found requiring further coding, but...
 
883
      * Overlapping wave parts and events now mix together, instead of one part or event taking priority over others ! (T356)
 
884
        - Virtually no speed hit, since muse was already cycling through all the wave parts/events, 
 
885
           just not mixing them together. So the very LAST wave part/event in the part/event lists was 
 
886
           taking priority over others.
 
887
      * Fixed default instrument midi controller min/max values. (T356)
 
888
        - Symptom: Some pianoroll midi controller graphs much too small or too big, vertically.
 
889
        - Cause: You added these controllers to your track as a midi instrument, ex. General Midi (GM), then you 
 
890
           changed the instrument, ex. to 'Generic Midi' or another instrument without those controllers,
 
891
           which set improper min/max values.
 
892
        - Fix: Added code to MidiPort::midiController() to set proper min/max values based on standard controller type.
 
893
          However, if the original instrument used CUSTOM min/max values, the graph may still be distorted.
 
894
      * Fixes to midi event list editor. (T356)
 
895
        - Added true sorting of event list. Now you can click on column headers to sort as desired! 
 
896
        - Added formatted program number display (like 1-1-120) for 'Val B' column.
 
897
        - Fixed Poly After Touch events display in list. They were being listed as Channel After Touch.
 
898
        - Fixed crash when 'Delete events' clicked with no actual items selected.
 
899
        - 'Edit Contoller Event' dialog:
 
900
          - Fixed 'Create New Controller' popup list: Now it actually creates the selected controller.
 
901
          - Fixed 'Program' controller not showing correct program after selecting other controllers in list.
 
902
          - Fixed too high initial value displayed for controllers without an initial value in the instrument file.
 
903
        - 'Enter Poly After Touch' dialog:
 
904
          - Fixed uneditable note box. Switched from PitchLabel to PitchEdit. 
 
905
      * Feature added - Pianoroll and drum editor controller graphs now have a static manual adjustment knob ! (T356)
 
906
        - Now you don't have to enter controller graph values to adjust a setting, just turn the knob.
 
907
      * Changed 'Create New Controller' in event editor 'Edit Contoller Event' dialog, and 'add new...' controller popup 
 
908
         list in piano roll. (T356)
 
909
        - Now they only list controllers not already added, instead of all of them. 
 
910
      * Fixed 'Position Edit' controls (0001.01.000 + up/down buttons) - click 'down' nothing happens. (T356)
 
911
        - Added updateButtons() call to PosEdit::setValue(). 
 
912
      * Fixed Mixer midi strip variation, reverb and chorus send knobs not enabled after controllers added. (T356)
 
913
        - Now you only need to create the controller to enable the knobs, allowing you to set a manual value without  
 
914
           having to actually create one or more controller events first.
 
915
      * Fixed midi trackinfo pan value not the same as midi mixer strip pan value. (T356)
 
916
        - Trackinfo pan now goes from 'off' (-65) to -64 to +63.
 
917
      * Fixes to fluidsynth. Would crash when getting patch names from an 'unspecified' soundfont. (T356)
 
918
        - In fluidsynti.cpp, various places check for FS_UNSPECIFIED_FONT only. Added check for FS_UNSPECIFIED_ID.
 
919
        - Not sure if FS_UNSPECIFIED_FONT is redundant and unnecessary, but left it there anyway.
 
920
      * Fixed old bug - IntLabel control - right click causes popup and runaway increment. (T356)
 
921
        - Fixed NEntry widget. Same fix as for double entry widget (DEntry), somewhere way down on this change log...
 
922
      * More fixes to wave part gluing/splitting/drawing/playing. (T356)
 
923
        - Now all splitting/gluing of wave parts, even overlapping ones, even multiple times, should work.
 
924
        - Fixed problem in WaveTrack::fetchData causing it to read too many samples of wave events.
 
925
      * Fixes and changes to bounce functions. (T356)
 
926
        - Fixed garbled target track or file. processWrite() was writing ALL the Audio Outputs to the file or track, instead of just one.
 
927
        - Feature: Bounce to track (from menu): You now first select any single Audio Output track, and any single target Wave track.
 
928
        - Feature: Bounce to file (from menu): You now first select any single Audio Output track.
 
929
      * Fixed some problems with Mastertrack window. (T356)
 
930
        - Mastertrack window was causing tempos to be inserted into tempo list, if window open when project loaded.
 
931
        - Added signature list change event handling - to update signature value box.
 
932
        - Fixed drawing of signature scale after signature list change.
 
933
      * Fixed wave editor 'reverse' function crashing. (T356)
 
934
      * Fixed track list not highlighting wave tracks (default green) when selected in the arranger window. (T356)
 
935
      * Fixed midi VU meters, again. (T356)
 
936
        - Borrowed idea from Muse 2. Self-decay the meters in midi strip code, rather than the midi thread code.
 
937
        - The midi VU meters self-decay at a rate determined by the GUI update rate in the configuration.
 
938
11.03.2008
 
939
      * Fixed arranger controls not giving up keyboard focus after adjustment/entry. Requested by user G.B. (T356)
 
940
      * Fixed gluing/splitting of waveparts. (Known bug of 02.02.2008 is gone now). (T356)
 
941
      * Fixed playing, and arranger/waveeditor drawing, of glued waveparts. (T356)
 
942
        - 'Working on' of 26.01.2008 is done.
 
943
        - Drawing of waveparts, even 'glued' ones, now fully respects tempo changes.
 
944
      * Fixed 'glued' mono + stereo wavepart drawing. Was drawing outside track if track height small. (T356)
 
945
      * Fixed soloed/muted wavetrack audio 'bleeding' into other wavetracks. fetchData() was not checking isMute(). (T356)
 
946
      * Fixed part colour popup to change unselected clicked item colour if no parts selected. (T356)
 
947
      * Fixed recent possible accidental(?) change of tracklist xml tag 'header' to 'header1'. (T356)
 
948
        - Muse was complaining: Tlist: unknown tag <header> at line 32
 
949
      * Fixed MREventList in mpevent.h, to use midiRTalloc instead of audioRTalloc. (T356)
 
950
        - Possible accidental(?) coding error since there is no other usage of midiRTalloc at all in muse.
 
951
        - If it does help at all, it might just ease RT congestion a bit.
 
952
      * Working on MIDI VU meters. They're too fast to see with jack, but should be OK with dummy driver. (T356)
 
953
      * KNOWN PREEXISTING BUGS
 
954
        - If you move waveparts around AFTER the current play position, then play, muse actually plays the same
 
955
           arrangement as if you had not moved the waveparts at all, just one time - rewind the play position and
 
956
           it corrects itself. This is because muse does not prefetch the audio again after the movement of the parts.
 
957
          Workaround - After moving waveparts, be sure to rewind the play position to a point AT LEAST before those parts.
 
958
        - Wave parts will sometimes mysteriously go silent for no reason. Move the parts slightly, or reload, or do
 
959
           certain other operations, then the sound comes back. Working on this important issue!  
 
960
02.02.2008
 
961
      * Fixed a slight error in BigTime absolute display. Now shows proper absolute tick and frame values. (T356)
 
962
      * Added an extra arranger wavepart right-click popup menu item - "file info". 
 
963
        Shows what wave file(s) are used by the wavepart event(s). 
 
964
        TODO: Either remove duplicate file names or list the files by event number. 
 
965
              Spice up with more info like wave starting/ending points etc.             (T356)
 
966
      * Removed some debug output lines from dummy driver - may have been causing intermittent crashes when moving position. (T356)
 
967
      * Some more fixes to arranger partcanvas wavepart drawing - speeded up and tightened code.
 
968
        KNOWN BUG: Does not correctly display more than one wave 'event' (file) per wavepart. (For ex. two waveparts 'glued' together).
 
969
                   Working on this issue ! (T356)
 
970
27.01.2008
 
971
      * Fixed MIDI mixer strip VU meters. Let there be light! Not the best solution, a choice between two so-so methods. 
 
972
        Looking at how to improve it... (T356)
 
973
26.01.2008
 
974
      * Pianoroll and drumedit now open at the current cursor position. (T356)
 
975
        (The cursor position is that moving black vertical line on the time scale). 
 
976
        This means you just click on an arranger midi part where you want to open the editor.
 
977
      * Arranger, pianoroll, drumedit and waveedit now stay at their current (left-side) position when you use the scale bar. (T356)
 
978
      * Fixed 'end of part' drawing problems - now you are guaranteed to see about 1+1/4 extra bar after the end 
 
979
         of a pianoroll/drumedit (also compensating for drumedit drummap/canvas splitter), allowing you to 
 
980
         add/move/clone notes past the end and allowing muse to properly auto-extend the part (to the right).  
 
981
        TODO: Auto-extend parts to the left when necessary. (T356)
 
982
      * Added vertical, and fixed horizontal, lasso/parts/events auto-scroll - even past the end of parts.  (T356)
 
983
      * Fixed drawing of wave parts in arranger. Now you can rely on the 'picture' of the wave inside the part 
 
984
         lining up correctly with the time scale, regardless of tempo/timesig changes in the song. (T356)
 
985
      * More fixes to wave editor. Fixed drawing of markers - they were much too close together.
 
986
        Added songChanged synchronization with arranger (you move/resize a wave part and the wave editor readjusts, etc.)
 
987
        WORKING ON: In the arranger, if you move a wave part to the left, the wave editor will readjust but the
 
988
         wave may be chopped off at the end. Investigating...  (T356)
 
989
      * Corrected the drawing order of items from ALL parts in pianoroll and drumedit. For multiple-part viewing.
 
990
        WORK IN PROGRESS: Added ability to select items from different parts at once, and to move them. 
 
991
                          For now, only items from the currently selected part actually move. (T356)
 
992
      * Added small checkbox to Big Time display. Now you can switch between formatted or absolute time display.
 
993
        Absolute is handy for syncing with another app, or just knowing, absolutely, where you are in the song. Absolutely.
 
994
        Added ToolTip popups describing each 'group' of numbers (bars, beats, ticks etc). (T356)
 
995
20.01.2008
 
996
      (ml)
 
997
      * Added function for deleting note overlaps in piano roll (usually makes fluidsynth grumpy - silencing the following note). 
 
998
      * Some work on opening the editor at current position and selecting the leftmost item
 
999
      (ws)
 
1000
      * fixed hanging note when editing multiple parts in midieditor and
 
1001
        switching part
 
1002
19.01.2008 (ws)
 
1003
      * fixed Song::changeEvent(): part tick offset was not used
 
1004
      * fixed removing of controller events in Song::deleteEvent(); this affects midi recording
 
1005
        in replace mode and controller editing
 
1006
12.10
 
1007
      * Fixed automation right-click popup menu 'prev/next event' not working after a tempo change. (T356)
 
1008
        - Now you are guaranteed to be able to navigate the automation events, regardless
 
1009
           of how many tempo or time signature changes are in the song, or if you change the tempo/sig(s)
 
1010
           AFTER adding automation events.
 
1011
12.06
 
1012
      * Fixed softsynths 'Fluidsynth', 'Deicsonze', and 'Fluid' to allow pitch wheel changes. (T356)
 
1013
      * Fixed softsynths 'Fluidsynth' and 'Deicsonze' to allow MIDI patch changes. (T356)
 
1014
        Note that I included MIDI patch change code in 'Fluid', but fluid is slightly broken
 
1015
         and still doesn't respond. 'Fluid' should be removed from muse. It's obsolete. Use Fluidsynth.
 
1016
11.22
 
1017
      * Fixed LASH loading and saving. (T356)
 
1018
        - Symptom - Muse fails building with error about 'lash_get_fqn' not declared in scope.
 
1019
        - Cause - You are building muse with LASH > 0.5.1, where certain header files have been removed.
 
1020
        - Fix - Replaced both calls to lash_get_fqn with QString manipulations instead.
 
1021
      * NOTE! I encountered a muse segfault when you use LASH to close the project.
 
1022
        It says 'received unknown LASH event of type 10' (which is LASH_Server_Lost), then it says
 
1023
         'received unknown LASH event of type <<some big random number>>, then segfault and
 
1024
         a glibc backtrace due to 'double free or corruption'. Not a big deal, but this will need to be fixed.
 
1025
      * Tested OK saving and loading projects with LASH 0.5.4
 
1026
 
 
1027
09.02
 
1028
      =======================================
 
1029
             * 0.9 final tagged (rj)
 
1030
             no changes from pre3
 
1031
      =======================================
 
1032
 
 
1033
08.22
 
1034
      =======================================
 
1035
             * 0.9pre3 tagged (rj)
 
1036
      =======================================
 
1037
 
 
1038
08.20
 
1039
      * Fixed bug 1650953 - select and move segfault  (T356)
 
1040
        - Symptom - In piano roll, select some notes and move them past the end of the part,
 
1041
          then muse crashes. Also occurs when pasting or adding notes past part length.
 
1042
        - Cause - Canvas was not adding the new resized part to the midi editor. Also a bunch
 
1043
          of other stuff needed to be fixed for it all to work OK.
 
1044
      * Fixed broken master list editor. Should also cure bug 1687166 (T356)
 
1045
        - Symptom - Open master list and nothing is listed (should be at least one default
 
1046
          tempo and one default time signature). Click to add new tempo or sig and muse crashes.
 
1047
        - Cause - Some code was added to lmaster.cpp: LMaster::updateList() which broke it.
 
1048
      * Added auto part resizing to drum canvas  (T356)
 
1049
        - Symptom - In drums editor, there is no auto part resizing, like in piano roll.
 
1050
        - Cause - Missing all part resizing code. Added.
 
1051
      * Fixed intermittent crash when cutting a part. Improper 'delete while iterate' STL operation. (T356)
 
1052
      * Fixed arranger part selection - selected parts now draw on top of non-selected parts. (T356)
 
1053
      * Fixed arranger part operations (move etc.) to use selected part. (T356)
 
1054
      * Fixed arranger keyboard left and right previous/next part selection. (T356)
 
1055
        - Now you can use left/right arrow keys to cycle through parts in a track,
 
1056
           expecially useful for overlapping parts!
 
1057
      * Regarding part selection - A remaining problem is that there is no 'z-order' drawing
 
1058
         scheme. The part item list has no such ordering support.
 
1059
        - This means a selected part will (now) appear on top of others, but when unselected,
 
1060
           it will not stay on top. Adding that support could be messy.
 
1061
        - Best to leave it alone for now. At least you can (now) cycle through overlapped parts...
 
1062
      * Tested arranger part operations with worst case scenario - multiple tempo changes
 
1063
         and multiple parts. Test OK. All should be OK now. (T356)
 
1064
      * Added tooltip to song length box in arranger with text 'song length in bars'. (T356)
 
1065
      * Fixed wave editor - Black selection bar intermittent drawing. (T356)
 
1066
        - Symptom - In wave editor selecting a portion of the wave caused intermittent drawing
 
1067
          of the black selection bar.
 
1068
        - Cause - Unsure of exact cause or a permanent cure, but it's better now.
 
1069
          But it still draws intermittently if you zoom in (x magnify) very very close.
 
1070
          Working on this issue.
 
1071
      * Added feature - Wave editor now allows you to open multiple selected wave parts and
 
1072
         will display only those parts and you can edit them. Tested wave editor 'functions'
 
1073
         menu and it works OK on some or all selected portions of the multiple wave parts.
 
1074
        - This is in preparation for a possible automation viewer and/or editor.
 
1075
        - Work in progress. Some rough parts still to clean up. (T356)
 
1076
      * Fixed intermittent arithmetic exception crash in wave viewer. (T356)
 
1077
      * Fixed bad wave drawing above certain zoom level in wave editor. (T356)
 
1078
      * Enabled serial numbers in my deltaTick2Frame and deltaFrame2Tick routines, and
 
1079
         merged code. Makes it a bit faster. (T356)
 
1080
=======
 
1081
08.16 * Reverted change in synth.cpp, realtime playback of softsynths did not work (rj)
 
1082
      * fix for sustain pedal to work as suspected when looping. (rj)
 
1083
      * Above involved adding "managed-controllers", whenever a controller is found
 
1084
        time will tell if this is the right solution (rj)
 
1085
02.13
 
1086
      * Feature request: 1650957 space bar should start/stop playback fixed by
 
1087
        adding this possiblity, old style is possible with property setting in
 
1088
  configuration. (rj)
 
1089
02.09
 
1090
      * Fixed bug 1645575 - Eraser tool causes segfault in drum editor (T356)
 
1091
      * Added the project AUTHORS        (whooo are you... who who...) (T356)
 
1092
01.27
 
1093
      * Fixes to remove lots of warnings and potential errors in the code (WillyFoobar)
 
1094
        (rj by proxy)
 
1095
      * Fix for bug #1074808 "NRPN - still 128 values?" from Sebastian Gutsfeld (rj)
 
1096
01.06
 
1097
      * Changed 'exit' to 'return' when plugins are invalid (rj)
 
1098
01.05
 
1099
      =======================================
 
1100
            * 0.9pre2 tagged (rj)
 
1101
      =======================================
 
1102
 
 
1103
2007.01.03
 
1104
      * Fixed some major issues with undo/redo. (T356)
 
1105
        - Symptom - Delete track(s), then undo, muse crashes.
 
1106
        - Symptom - Rename a track, then undo, muse crashes.
 
1107
        - Cause - 'Delete' destroyed the track(s), so undo would attempt to restore
 
1108
          non-existent object. Other problems caused rename crash. Still more undo/redo code
 
1109
          was causing problems, like left-over synth instances hanging around after loading a new song,
 
1110
          or crashing upon loading a new song if certain redo items were still in the redo list...
 
1111
        - Known bugs - DON'T rename a synth track then undo, muse still crashes. Not sure why yet.
 
1112
          After 'un-deleting' a synth track, you will have to open the 'MIDI Ports/Soft Synth' window
 
1113
          and manually restore its MIDI port.
 
1114
          Don't do anything too crazy like deleting multiple tracks while playing, might possibly crash.
 
1115
          After undeleting an audio wave track, its sound might not be sync'd with the rest of the song -
 
1116
          simply hit the fast-forward or rewind button to cure that.
 
1117
      * Prevented saving, and segfault upon loading, of routes in med file with empty names. (T356)
 
1118
        - Symptom - Jack shuts down, so instead of attempting to restart audio, you save your work,
 
1119
          but when you try to reload your song, muse crashes.
 
1120
        - Cause - Upon Jack shutdown, all audio in and out Jack routes were erased, and muse saved
 
1121
          the song like that. Upon reload, muse would crash due to the empty routes in the .med file.
 
1122
        - Note that this does not cure the original cause of this (Jack routes erased), so although you
 
1123
          can now re-load the song without muse crashing, you must manually restore all the audio in/out
 
1124
          Jack routes. So please try to restart the audio first. (Trying to fix this issue...)
 
1125
      * Add new soloing system. Check it out! (T356)
 
1126
        - Symptom - You click solo on a track but you hear nothing, and all other tracks are muted.
 
1127
        - Cause - Wasn't really broken, you just had to solo all other tracks in that routing path
 
1128
          to make sure whatever you were attempting to solo made its way to its destination so you
 
1129
          would hear it.
 
1130
          Inconvenient, yes. Especially with a large song with a lot of tracks, groups etc.
 
1131
          With this new system, this is done automatically for you. Even MIDI tracks driving synth
 
1132
          tracks, too.
 
1133
        - Known bug - If a MIDI track drives some external MIDI device which you feed the audio
 
1134
          back into muse, there's no way for muse to know how to couple the MIDI and audio in
 
1135
          tracks together. Sorry you'll have to manually solo both.
 
1136
          BUT - I'm CONSIDERING adding this - If an audio in track's name BEGINS WITH the name
 
1137
          of a MIDI track, I could couple them that way. For example - MIDI track named 'Track1' and
 
1138
          an audio in track named 'Track1 Input', then muse could mutually solo both tracks properly...
 
1139
      * Enabled MIDI mixer strip solo buttons. (T356)
 
1140
      * Some other minor fixups here and there. (T356)
 
1141
        - Other known bugs - Due to an earlier oversight, if you use your own custom LADSPA plugin
 
1142
          GUI's (see README.ladspaguis), QCheckbox and QCombobox controls may not automate quite right.
 
1143
          Note that this includes just one built-in custom GUI - for the 'TAP Reverberator' plugin.
 
1144
21.11
 
1145
      * Fixed loading of .med files, with plugins, created before muse-0.9pre1. (t356)
 
1146
        They will load, then save, correctly now.
 
1147
        - Symptom - Load an old song with plugins and some of the plugin controls can't be moved.
 
1148
        - Cause - Controller id's in med file mixed up, not save correctly, because of moving rack
 
1149
          plugins around, which never properly switched the id's before muse-0.9pre1.
 
1150
      * Fixed soloing (again). (t356)
 
1151
        - Symptom - Delete a soloed track, then soloing is messed up - other tracks may be muted but don't show it,
 
1152
          only way out is to reload. Speaking of which, loading also did not set track soloing correctly.
 
1153
        - Cause - Upon deleting a track or loading a song, track solo ref count was not updated.
 
1154
      * Added infrastructure for an improved soloing system, much more intuitive. (Not done yet!...) (t356)
 
1155
      * Fixed spelling mistake - Freeverb "Rooom" size. (t356)
 
1156
13.11
 
1157
      * By T356
 
1158
      * More automation fixes. Everything should be working now, check it out!
 
1159
      * Although still no automation editor, all of these changes so far should help
 
1160
         manipulate and navigate the events.
 
1161
      * Fixed touch mode events storing, was not right.
 
1162
      * Fixed a couple of stray signal connects which may have caused wacky controls.
 
1163
      * Sliders, knobs and labels now respond to mousewheel and paging properly.
 
1164
      * Linked slider/knob labels with sliders and knobs so paging or mousewheeling
 
1165
         a label works smoothly and linearly, even with logarithmic controls.
 
1166
      * Fixed integer controls (like Glame Bandpass 'stages').
 
1167
      * Fixed external plugin gui's to look like the built-in freeverb. This means
 
1168
         they now scale properly with different fonts. :)
 
1169
      * Hopefully the last of major automation conceptual changes - making sliders, knobs,
 
1170
         labels and checkboxes work together with the four automation modes, barring any fixes,
 
1171
         and a few tweaks to follow (like shift key for label mousewheeling, and how to make
 
1172
         a label stop updating so values can be entered). Some more right-click menu options
 
1173
         may follow (like store event, enable automation, enable interpolation).
 
1174
         Automation readme to come (need it!).
 
1175
      * Still to fix - Controls' right-click automation menu still a bit confused upon tempo changes.
 
1176
10.11
 
1177
      * reworked mute, old solution caused problems for solo
 
1178
      * solo is now united between midi and audio, they were previously
 
1179
        interdependant. This has the downside that if a soft synth is
 
1180
        soloed both the midi and the audio needs to have solo enabled (rj)
 
1181
      * fixed issue with hanging notes for softsynths when stop is pressed (rj)
 
1182
      * Backported fix from HEAD for using a file descriptor from two different
 
1183
        threads, should make it work somewhat better with SMP (rj)
 
1184
      * fixed faulty off value for aux when set to max (rj)
 
1185
      * Allow wheeling of tracks from track list (rj)
 
1186
08.11
 
1187
      * reenabled mute for outputs (rj)
 
1188
07.11
 
1189
      * Fixed timing bug causing MusE to depend on jack buffer setting
 
1190
        this needs testing, it involved uncommenting some code that might
 
1191
        have been commented for a reason (rj)
 
1192
05.11
 
1193
      * Added support for auto-scroll for other drag operations but
 
1194
      rubberband (rj)
 
1195
04.11
 
1196
      =======================================
 
1197
      * 0.9pre1 tagged (rj)
 
1198
      =======================================
 
1199
04.11
 
1200
      * Adopted RT locking method from 1.0 branch. (rj)
 
1201
      * Preparations for 0.9pre1 (rj)
 
1202
31.10
 
1203
      * By T356
 
1204
      * Fixed old bug - DoubleLabel right click causes popup and runaway increment.
 
1205
      * Currently the increment/decrement is fixed at 1, so that's why it doesn't
 
1206
         work for pan or other controls with 1.0 or less max.
 
1207
        - So fixes to that are next...
 
1208
29.10
 
1209
      * By T356
 
1210
      * Changing global tempo now updates things. (Like resizing wave tracks).
 
1211
      * Fixed segfault upon lengthening a blank new wave track part.
 
1212
      * Removed some thread-unsafe code from my first patch
 
1213
      * Fixed ladspa plugin automation not working until plugin displayed.
 
1214
      * Improved automation and ladspa plugin automation behaviour.
 
1215
        - While stopped and in touch mode, clicking an automateable control immediately
 
1216
           writes the value to the list, so you don't have to press play then stop
 
1217
           just to store one value.
 
1218
        - Smoother slider transitions from last touched value to previous stored values,
 
1219
           so that they don't suddenly 'jump' to previous stored values when you let go.
 
1220
        - Checkboxes now automated. Their behaviour in touch mode is slightly
 
1221
           different than sliders - they remain 'touched' until you stop, but store
 
1222
           only up to the last toggle done.
 
1223
        - Checkboxes now check as soon as you click them.
 
1224
        - Sliders now have 'mouse cursor capture (tm)' so you can actually grab onto
 
1225
           the thumbs even if they are moving too quickly due to automation. Paging can
 
1226
           still be done with right button.
 
1227
        - Sliders and knobs now work properly if you 'page' them (click outside the thumb
 
1228
           or dial).
 
1229
        - Added right-click popup menu on all automateable controls with
 
1230
            previous event    (seek)
 
1231
            next event        (seek)
 
1232
            erase event       (if cursor is on one)
 
1233
            erase range       (between left and right markers)
 
1234
            clear automation  (clear all events)
 
1235
          Known bug: Becomes slightly confused if tempo is changed after doing automation.
 
1236
          Workaround for now: Press play to update the cursor to a new position.
 
1237
04.10
 
1238
      * Select the right item when items are stacked on top of each other, for pianoroll
 
1239
        and arranger (rj)
 
1240
      * Do not display resize cursor when last track cannot be resized (rj)
 
1241
03.10
 
1242
      * Apply effect rack before sending aux, changed after discussion with Thorsten Wilms (rj)
 
1243
      * Auto assign internal softsynths upon creation (rj)
 
1244
      * New method for pasting parts. If several parts are pasted they are now spaced
 
1245
        according to their original spacing. This only works reliably when the copied parts
 
1246
        are all on one track. (Possibly copying parts from several tracks should be
 
1247
        disallowed), fixes bug #1516294 (rj)
 
1248
      * Muting of midi-tracks no longer mute input, bug #1092343 (rj)
 
1249
01.10
 
1250
      * Fixed issue with playing of controllers when moving playhead. basically
 
1251
        all events from all parts where played at the beginning, fixes bug #1316542 (rj)
 
1252
30.09
 
1253
      * Cached peak files are now updated when wave files are more recent, bug #1469177(rj)
 
1254
      * Fixed bug with recording notes to existing part, bug #1552783 (rj)
 
1255
29.09
 
1256
      * MusE now asks when imported wave file has differing samplerate, bug #1428248 (rj)
 
1257
28.09
 
1258
      * Always restore sequencer configuration even when song
 
1259
        is loaded without config, fixes bug #1092289, midi mixer settings not restored (rj)
 
1260
27.09
 
1261
      * Optimizations and fixes to rubberband scrolling (rj)
 
1262
      * Aux changed to be affected by volume and pan (rj)
 
1263
      * Aux now affected by mute (rj)
 
1264
26.09
 
1265
      * Fix for pianoroll selection of events in/outside loop with respect to part offset (ml)
 
1266
      * Added lasso/rubberband scrolling in arranger, drumedit and pianoroll, bug #1057732 (rj)
 
1267
24.09
 
1268
      * Followups by T356
 
1269
      * Fixed rack plugin change not clearing automation
 
1270
      * Fixed moving an empty rack position
 
1271
      * Fixed moving a plugin onto itself
 
1272
      * Changed colours of audio output and wave track
 
1273
         strip names to match icon colours
 
1274
20.09
 
1275
      * Fixed aux sending (rj)
 
1276
      * Patch from terminator356 to fix logarithmic feedback to plugin sliders (rj)
 
1277
19.09
 
1278
      * Various fixes from Torsten Duwe (rj)
 
1279
        - deicsonze undefined returnvalue
 
1280
        - vam uninitialized value
 
1281
        - 64bit fix for calling external wave editor
 
1282
      * Fixed multiple part undo for move,drag and copy in arranger, bug #1516298 (rj)
 
1283
      * Fixed multiple note undo for move and drag in pianoroll (rj)
 
1284
      * Fixed cursor placement in List Editor upon deleting events bug #1417718 (rj)
 
1285
16.09
 
1286
      * Following changes by   { terminator356 [at] users [dot] sourceforge [dot] net }
 
1287
      * The changes can be applied to muse-0.7.2preX or muse-0.8.1 and work fine in both.
 
1288
      * Fixed soloing. Also multiple soloing now allowed.
 
1289
        - TODO: Soloing of tracks which feed a group. Workaround for now: Solo the tracks AND the group.
 
1290
      * Enabled solo buttons on the mixer strips.
 
1291
      * Fixed major issues with rack plugin moving, saving and loading.
 
1292
      * Fixed problems with multiple tempo changes and incorrect wave part lengths.
 
1293
      * Changed plugin code to use double instead of float to stop certain errors, and consistency.
 
1294
      * Fixed some minor spelling mistakes.
 
1295
      * Fixed issues with audio track automation.
 
1296
      * Fixed very 'jumpy' volume sliders and pan knobs under automation.
 
1297
      * Fixed several other small problems. For example a duplicate define in song.h
 
1298
      * Changed the way audio track automation works.
 
1299
        - For ease of use, the current mode now remains selected, even after a file write and re-open.
 
1300
        - To reduce the chance of accidental changes, for added visual warning, Touch and Write modes
 
1301
           colour the automation mode box red.
 
1302
        - Write and Touch modes: Only if the controls were touched, changes will be stored when
 
1303
           the transport is stopped. Since the current mode remains active, you can move to
 
1304
           another part and do some more automation.
 
1305
        - Write mode: The controls are updated with stored values until you touch them, then they
 
1306
           store from the time you hit play to the time you hit stop. If you touch the controls AFTER
 
1307
           you hit play, you may get unexpected results so remember to initialize that 'first value'
 
1308
           (at the time when you hit play), since muse will NOT 'fill in' from the time you hit play
 
1309
           to the time you first touched the control, with the value of that first touch. (Maybe support
 
1310
           this later).
 
1311
        - If you load a plugin preset, if the control values don't seem correct, try setting the track's
 
1312
           automation to 'Off', because the track will usually be on 'Read' - reading stored values.
 
1313
        - TODO: Muse really needs an automation editor/viewer! Perhaps integrate with wave viewer.
 
1314
                Also, add one more automation mode: 'Instant mode'.
 
1315
      * Hmmm, oh yes - added full LADSPA plugin automation. Check it out!
 
1316
        Compatibility with existing med files' Plugin section should be OK, but if you open an
 
1317
         existing med file with plugins, and the plugins' control values are no longer correct,
 
1318
         let me know. See comments (with these changes applied) audiotrack.cpp around line 557.
 
1319
        - TODO: Checkbox automation not working right. We need a better checkbox - one which checks
 
1320
                 as soon as you press down! Also would like to add bypass and mute automation.
 
1321
05.08
 
1322
      * Fixed build without fluidsynth (rj)
 
1323
14.07
 
1324
      * fluidsynth: fixed pitchbend events, fixes bug #1404212 (ml)
 
1325
 
 
1326
13.04
 
1327
      * Editing volume and pan with keyboard on audio strip now works (rj)
 
1328
      * Fixed issue with recording audio, fifo could overflow when
 
1329
        when running with small jack sizes (rj)
 
1330
      * fixed storing of wave files with relative path when located
 
1331
        "under" the project path (rj)
1
1332
28.03
2
1333
      =======================================
3
1334
      * retagged app.cpp and Yamaha-Motif-Rack.idf (rj)
12
1343
26.03
13
1344
      * Added next/prev marker, keyboard shortcut (rj)
14
1345
25.03
15
 
      * Reverted fix for silent softsynths, synths were not silenced 
 
1346
      * Reverted fix for silent softsynths, synths were not silenced
16
1347
        upon [stop], gah! (rj)
17
1348
      * Added LASH support (patch from evermind @ gentoo) (rj)
18
1349
21.03
47
1378
02.02
48
1379
      * check audioDevice and _client for validity (rj)
49
1380
13.01
50
 
        * amd64 fix in driver/rtctimer.cpp (ws)
 
1381
  * amd64 fix in driver/rtctimer.cpp (ws)
51
1382
09.01
52
1383
      * Added patch for vam from mane_grotesk (rj)
53
1384
07.01 * On drumtracks, there was no check for non-existing ports. If a drum
65
1396
      ========================================
66
1397
      * 0.7.2pre5 (final!) tagged (rj)
67
1398
      =======================================
68
 
                
 
1399
 
69
1400
02.01
70
1401
      * Added popup when enabling rec for a track unable to create it's
71
1402
        wave file (rj)