View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003817 | ardour | bugs | public | 2011-03-02 21:12 | 2011-11-16 16:28 |
Reporter | danboid | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Target Version | 3.0-beta2 | ||||
Summary | 0003817: quickly sliding up/down onscreen MIDI keyboard kills it | ||||
Description | Create a MIDI track, add a LV2 (such as monosynth) or a VSTi (such as Synth1) to it and expand the MIDI track vertically enough so that the integrated MIDI keyboard appears. Now hold the left mouse button and run the pointer up and down the integrated keyboard about 10 or so times in quick succession. Under 9038 doing this pretty quickly causes the on screen keyboard to stop responding and usually you are left with the MIDI track producing a continuous note and the only way to stop the note is to remove the track. | ||||
Tags | No tags attached. | ||||
|
Although doing as above is likely a surefire way to trigger this problem, its not required as I've just had the suspended note problem occur a number of times within the last hour with regular, sane and simple use of the on screen keyboard to test presets on a VSTi under 9052. |
|
I can't reproduce this here; however, a similar-sounding bug (0003824) is fixed in SVN 9114 which may help with this. Is it still a problem? |
|
This still happens under 9115 with both the monosynth LV2 and with two different VSTis that I've tested (synth1 and polyiblit) under a new session. |
|
Is there any more info I could provide that might help? A video? |
2011-03-10 00:27
|
3817-debug.patch (3,805 bytes)
diff --git a/gtk2_ardour/piano_roll_header.cc b/gtk2_ardour/piano_roll_header.cc index 2839867..c660755 100644 --- a/gtk2_ardour/piano_roll_header.cc +++ b/gtk2_ardour/piano_roll_header.cc @@ -461,9 +461,11 @@ PianoRollHeader::on_expose_event (GdkEventExpose* ev) bool PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev) { + cout << "=> on_motion_notify_event, dragging=" << _dragging << "\n"; if (_dragging) { int note = _view.y_to_note(ev->y); + cout << "note=" << ((int) note) << ", _highlighted_note=" << ((int) _highlighted_note) << ", _clicked_note=" << _clicked_note << "\n"; if (_highlighted_note != no_note) { if (note > _highlighted_note) { @@ -477,12 +479,14 @@ PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev) /* redraw already taken care of above */ if (_clicked_note != no_note && _clicked_note != note) { + cout << "deactivate " << ((int) _clicked_note) << "\n"; _active_notes[_clicked_note] = false; send_note_off(_clicked_note); _clicked_note = note; if (!_active_notes[note]) { + cout << "activate " << ((int) note) << "\n"; _active_notes[note] = true; send_note_on(note); } @@ -490,7 +494,7 @@ PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev) } //win->process_updates(false); - + cout << "<= on_motion_notify_event\n"; return true; } @@ -498,8 +502,10 @@ bool PianoRollHeader::on_button_press_event (GdkEventButton* ev) { int note = _view.y_to_note(ev->y); + cout << "=> on_button_press_event note=" << ((int) note) << "\n"; if (ev->button == 2) { + cout << "button 2, send note on\n"; send_note_on (note); /* relax till release */ } else { @@ -510,16 +516,19 @@ PianoRollHeader::on_button_press_event (GdkEventButton* ev) _dragging = true; if (!_active_notes[note]) { + cout << "activate " << ((int) note) << "\n"; _active_notes[note] = true; _clicked_note = note; send_note_on(note); invalidate_note_range(note, note); } else { + cout << "reset_clicked_note " << ((int) note) << "\n"; reset_clicked_note(note); } } } + cout << "<= on_button_press_event\n"; return true; } @@ -528,8 +537,10 @@ bool PianoRollHeader::on_button_release_event (GdkEventButton* ev) { int note = _view.y_to_note(ev->y); + cout << "<= on_button_release_event note=" << ((int) note) << "\n"; if (ev->button == 2) { + cout << "button 2, send note off\n"; send_note_off (note); if (Keyboard::no_modifiers_active (ev->state)) { @@ -547,11 +558,13 @@ PianoRollHeader::on_button_release_event (GdkEventButton* ev) _dragging = false; if (note == _clicked_note) { + cout << "deactivate " << ((int) note) << "\n"; reset_clicked_note(note); } } } + cout << "<= on_button_release_event\n"; return true; } @@ -570,6 +583,7 @@ PianoRollHeader::on_leave_notify_event (GdkEventCrossing*) invalidate_note_range(_highlighted_note, _highlighted_note); if (_clicked_note != no_note) { + cout << "leave notify: deactivate " << _clicked_note << "\n"; reset_clicked_note(_clicked_note, _clicked_note != _highlighted_note); } @@ -664,7 +678,7 @@ PianoRollHeader::send_note_on(uint8_t note) { boost::shared_ptr<ARDOUR::MidiTrack> track = _view.trackview().midi_track(); - //cerr << "note on: " << (int) note << endl; + cout << "note on: " << ((int) note) << endl; if (track) { _event[0] = (MIDI_CMD_NOTE_ON | track->default_channel()); @@ -681,6 +695,7 @@ PianoRollHeader::send_note_off(uint8_t note) boost::shared_ptr<ARDOUR::MidiTrack> track = _view.trackview().midi_track(); if (track) { + cout << "note off: " << ((int) note) << endl; _event[0] = (MIDI_CMD_NOTE_OFF | track->default_channel()); _event[1] = note; _event[2] = 100; |
|
You could try applying the attached patch, then triggering the bug and attaching the log file to this bug ... something like gtk2_ardour/ardev > log is probably the easiest way. |
2011-03-10 22:53
|
|
|
log file attached Contrary to what it says, this log was actually produced by a svn up'd, patched 9119 build, not 9113. I ran my cursor quickly up and down the MIDIed keyb, stopping periodically and then quitting as soon as I noticed the note to be stuck. |
2011-03-11 00:19
|
3817-1.patch (346 bytes)
diff --git a/gtk2_ardour/piano_roll_header.cc b/gtk2_ardour/piano_roll_header.cc index e88f551..a9baea8 100644 --- a/gtk2_ardour/piano_roll_header.cc +++ b/gtk2_ardour/piano_roll_header.cc @@ -585,6 +585,7 @@ PianoRollHeader::on_leave_notify_event (GdkEventCrossing*) } _highlighted_note = no_note; + _dragging = false; return true; } |
|
Perhaps you could try the attached 3817-1.patch and see if that helps at all? |
|
3817-1.patch hasn't fixed it under 9119 for both my LV2 and VSTi ~/src/3.0/vst/ardevst Ardour3.0pre0 (built using ['9119'] and GCC version 4.4.5) Copyright (C) 1999-2011 Paul Davis Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker Ardour comes with ABSOLUTELY NO WARRANTY not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This is free software, and you are welcome to redistribute it under certain conditions; see the source for copying conditions. Cannot xinstall SIGPIPE error handler ardour: [INFO]: Loading default ui configuration file /home/iatn/src/3.0/vst/../gtk2_ardour/ardour3_ui_default.conf Loading user ui configuration file /home/iatn/.config/ardour3/ardour3_ui.conf ardour: [INFO]: Loading ui configuration file /home/iatn/src/3.0/vst/../build/default/gtk2_ardour/ardour3_ui_dark.rc ardour: [INFO]: Ardour will be limited to 1024 open files Startup win32 GUI thread ardour: [INFO]: Loading user configuration file /home/iatn/.config/ardour3/ardour.rc Using SSE optimized routines ERROR: slv2_world_add_plugin: Duplicate plugin <http://linuxdsp.co.uk/lv2/gr-eq2.lv2> ERROR: slv2_world_add_plugin: ... found in file:///usr/local/lib/lv2/gr-eq2.lv2/ ERROR: slv2_world_add_plugin: ... and file:///usr/lib/lv2/gr-eq2.lv2/ ERROR: slv2_world_add_plugin: Duplicate plugin <http://linuxdsp.co.uk/lv2/mkii-graph-eq1.lv2> ERROR: slv2_world_add_plugin: ... found in file:///usr/local/lib/lv2/mkii-graph-eq1.lv2/ ERROR: slv2_world_add_plugin: ... and file:///usr/lib/lv2/mkii-graph-eq1.lv2/ ERROR: slv2_world_add_plugin: Duplicate plugin <http://linuxdsp.co.uk/lv2/mkii-graph-eq2.lv2> ERROR: slv2_world_add_plugin: ... found in file:///usr/local/lib/lv2/mkii-graph-eq2.lv2/ ERROR: slv2_world_add_plugin: ... and file:///usr/lib/lv2/mkii-graph-eq2.lv2/ ardour: [INFO]: looking for panners in /home/iatn/src/3.0/vst/../build/default/libs/panners/2in2out:/home/iatn/src/3.0/vst/../build/default/libs/panners/1in2out:/home/iatn/src/3.0/vst/../build/default/libs/panners/vbap ardour: [INFO]: Panner discovered: "Equal Power Stereo" ardour: [INFO]: Panner discovered: "Mono to Stereo Panner" ardour: [INFO]: Panner discovered: "VBAP 2D panner" Found 0 along :/home/iatn/.config/ardour3/templates Grab new name focus lost focus lost focus JACK COMMAND: /usr/bin/jackd -p 128 -R -P 60 -T -d alsa -n 2 -r 96000 -p 1024 -d hw:0,0 -X seq jackd 0.120.1 Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others. jackd comes with ABSOLUTELY NO WARRANTY This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details no message buffer overruns JACK compiled with System V SHM support. loading driver .. apparent rate = 96000 creating alsa driver ... hw:0,0|hw:0,0|1024|2|96000|0|0|nomon|swmeter|-|32bit control device hw:0 configuring for 96000Hz, period = 1024 frames (10.7 ms), buffer = 2 periods ALSA: final selected sample format for capture: 32bit integer little-endian ALSA: use 2 periods for capture ALSA: final selected sample format for playback: 32bit integer little-endian ALSA: use 2 periods for playback RemoteVSTClient: all cache files are up-to-date, not running scanner LV2: Discovering 78 plugins Done LV2 discovery Mixer UI removing strip for 0x6c2c2000 jack main caught signal 12 |
|
This no longer seems to be an issue so resolve please |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-03-02 21:12 | danboid | New Issue | |
2011-03-02 21:16 | cth103 | cost | => 0.00 |
2011-03-02 21:16 | cth103 | Target Version | => 3.0-beta1 |
2011-03-03 11:28 | danboid | Note Added: 0010264 | |
2011-03-03 11:29 | danboid | Note Edited: 0010264 | |
2011-03-05 10:41 | cth103 | Relationship added | related to 0003824 |
2011-03-09 18:14 | cth103 | Note Added: 0010328 | |
2011-03-09 18:14 | cth103 | Status | new => feedback |
2011-03-09 18:45 | danboid | Note Added: 0010333 | |
2011-03-10 00:10 | danboid | Note Added: 0010335 | |
2011-03-10 00:27 | cth103 | File Added: 3817-debug.patch | |
2011-03-10 00:28 | cth103 | Note Added: 0010337 | |
2011-03-10 22:53 | danboid | File Added: 3817-log.xz | |
2011-03-10 22:57 | danboid | Note Added: 0010341 | |
2011-03-11 00:19 | cth103 | File Added: 3817-1.patch | |
2011-03-11 00:20 | cth103 | Note Added: 0010344 | |
2011-03-11 01:04 | danboid | Note Added: 0010345 | |
2011-11-15 16:30 | cth103 | Target Version | 3.0-beta1 => 3.0-beta2 |
2011-11-16 10:44 | danboid | Note Added: 0012082 | |
2011-11-16 16:28 | cth103 | Status | feedback => resolved |
2011-11-16 16:28 | cth103 | Resolution | open => fixed |