4
* Fixed: python detection exchanged for script from http://libvirt.org/ (rj)
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).
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)
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)
26
* Added: DeicsOnze2 initial import. (ng)
27
* Fix: deicsonzepreset.cpp for Xml muse 1 API
29
=======================================
31
=======================================
33
* Feature/Fix: Audio metronome: Send output tracks now selectable in Settings->Metronome. Also fixed bad noises.(T356)
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'.
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.
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)
56
* Fixed: List popup synths by description. Cleaned up soft synth main list. Added persistent names, descriptions, ver, etc. (T356)
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.
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.
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().
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.
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...
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.
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.
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...
103
* Fixed: Loading dssi crash bug. Should at least load them now. (T356)
104
- Also some controller functionality via track controllers...
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...
111
* Added: Support for reading ogg files through libsndfile (rj)
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)
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)
126
* Added: Script functionality moved from PianoRoll to song class, available in main menu (under 'Midi')
128
* Added: 'Add synth' sub-menus now automatically assign the instance to a free midi port. (T356)
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.
135
* Added: DoubleSpeed plugin script for PianoRoll (mg)
136
* Fixed: Disable Python ifdefs (mg)
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)
146
* Fixes: Some Python API refcount code added (mg)
148
* Added: Effect disable/enable + add/remove track to Python API (mg)
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.
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)
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.
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.
194
* Added: Midi track controller + audio track volume to Python interface (mg)
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.
202
* Added: Mute functionality to Python interface (mg)
203
* Fixed: Midi mixerstrip mute update issues (mg)
204
* Fixed: initialization in pandelay ladspa plugin (rj)
206
* Added: functions for looping to Python interface (mg)
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)
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)
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)
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)
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.
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
249
* Proposal: new default colors for various stuff (rj)
251
* Fixed: bug 2811156, soft synth and marker window no longer appear when hidden for XFCE window manager (rj)
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)
256
* Changed: Track info program, vol, and pan spinboxes now lose focus with one enter press instead of two. (T356)
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)
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)
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.
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().
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'.
282
=======================================
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'.
291
* Fixed: Segfault after creating simpledrums instance, then adding a midi track. (T356)
292
- Return non zero in SimpleSynth::getPatchName().
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...
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.
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.
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.
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.
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)
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
368
- TODO: Not quite done yet. Some functions may not update port controller values properly still,
369
like splitting or gluing clone parts.
371
=======================================
373
=======================================
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 !
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().
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)
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).
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...
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'.
492
* Fixed: Track info 'instrument patch' list box was not correct when selecting another track with unknown patch. (T356)
494
* Improved: Support for & < > \ " characters in xml files. (T356)
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.
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
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.
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.
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)
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.
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.
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.
618
* Patch applied: Removes duplicate implementation of fast_log*() functions in ssplugin.h (T356)
619
- Submitted by Orcan Ogetbil
621
=======================================
623
=======================================
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...
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. '&', '"' 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,
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().
790
* Fixed simpledrums/ssplugin.cpp to build with recent Ubuntu 8.10 (FN)
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, <<<
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...
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.
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!
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)
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)
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)
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
1000
* fixed hanging note when editing multiple parts in midieditor and
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
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.
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.
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
1028
=======================================
1029
* 0.9 final tagged (rj)
1030
no changes from pre3
1031
=======================================
1034
=======================================
1035
* 0.9pre3 tagged (rj)
1036
=======================================
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)
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)
1086
* Feature request: 1650957 space bar should start/stop playback fixed by
1087
adding this possiblity, old style is possible with property setting in
1090
* Fixed bug 1645575 - Eraser tool causes segfault in drum editor (T356)
1091
* Added the project AUTHORS (whooo are you... who who...) (T356)
1093
* Fixes to remove lots of warnings and potential errors in the code (WillyFoobar)
1095
* Fix for bug #1074808 "NRPN - still 128 values?" from Sebastian Gutsfeld (rj)
1097
* Changed 'exit' to 'return' when plugins are invalid (rj)
1099
=======================================
1100
* 0.9pre2 tagged (rj)
1101
=======================================
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
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
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.
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)
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.
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)
1187
* reenabled mute for outputs (rj)
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)
1193
* Added support for auto-scroll for other drag operations but
1196
=======================================
1197
* 0.9pre1 tagged (rj)
1198
=======================================
1200
* Adopted RT locking method from 1.0 branch. (rj)
1201
* Preparations for 0.9pre1 (rj)
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...
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
1229
- Added right-click popup menu on all automateable controls with
1230
previous 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.
1238
* Select the right item when items are stacked on top of each other, for pianoroll
1240
* Do not display resize cursor when last track cannot be resized (rj)
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)
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)
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)
1256
* MusE now asks when imported wave file has differing samplerate, bug #1428248 (rj)
1258
* Always restore sequencer configuration even when song
1259
is loaded without config, fixes bug #1092289, midi mixer settings not restored (rj)
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)
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)
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
1275
* Fixed aux sending (rj)
1276
* Patch from terminator356 to fix logarithmic feedback to plugin sliders (rj)
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)
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
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.
1322
* Fixed build without fluidsynth (rj)
1324
* fluidsynth: fixed pitchbend events, fixes bug #1404212 (ml)
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)
2
1333
=======================================
3
1334
* retagged app.cpp and Yamaha-Motif-Rack.idf (rj)