From: Emanuel R. <xb...@gm...> - 2009-10-29 19:44:04
|
Hi @Chris F. Will it be possible to add custom number controllers (to select the midi-ctrl. number)? Do you plan to (or already do) support fine tune (LSB) controller messages ? @ Chris C. , you made the dialogs "delete on close". But that means, they loose their status too. (size,position,selected items,.. ) Is it worth that? Where would be the right place to store such data ? In QSettings ? Notes: Quantisation setting is always 1/1 when starting the matrix editor. The position line/pointer/cursor doesn't move on playback anymore. (Only when pressing <back> while playing) The first playback-device sometimes gets arbitrarily renamed (without user interaction), especially when pressing the refresh button in the DeviceManager. 2 backtraces: --------------------------------------------------------------------------------------------------- There are still/again crashes when importing files: #0 0x08770b6d in Rosegarden::CompositionModelImpl::slotInstrumentParametersChanged (this=0xabe6008, id=2944) at src/gui/editors/segment/compositionview/CompositionModelImpl.cpp:488 #1 0x087715ba in Rosegarden::CompositionModelImpl::qt_metacall (this=0xabe6008, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0xbfefa560) at src/gui/editors/segment/compositionview/CompositionModelImpl.moc:79 #2 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #3 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #4 0x082de6f0 in Rosegarden::RosegardenMainWindow::instrumentParametersChanged (this=0xaa529e0, _t1=2944) at src/gui/application/RosegardenMainWindow.moc:786 #5 0x0831f225 in Rosegarden::RosegardenMainWindow::qt_metacall (this=0xaa529e0, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xbfefa6c0) at src/gui/application/RosegardenMainWindow.moc:500 #6 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #7 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #8 0x086fd928 in Rosegarden::InstrumentParameterBox::instrumentParametersChanged (this=0xac90f48, _t1=2944) at src/gui/editors/parameters/InstrumentParameterBox.moc:128 #9 0x086fe125 in Rosegarden::InstrumentParameterBox::qt_metacall (this=0xac90f48, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0xbfefa7d0) at src/gui/editors/parameters/InstrumentParameterBox.moc:90 #10 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #11 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #12 0x08700a5c in Rosegarden::MIDIInstrumentParameterPanel::instrumentParametersChanged (this=0xad47168, _t1=2944) at src/gui/editors/parameters/MIDIInstrumentParameterPanel.moc:123 #13 0x087041b9 in Rosegarden::MIDIInstrumentParameterPanel::slotToggleProgramChange (this=0xad47168, value=true) at src/gui/editors/parameters/MIDIInstrumentParameterPanel.cpp:1002 #14 0x08705426 in Rosegarden::MIDIInstrumentParameterPanel::qt_metacall (this=0xad47168, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbfefa91c) at src/gui/editors/parameters/MIDIInstrumentParameterPanel.moc:101 #15 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #16 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #17 0xb7b021d9 in QAbstractButton::toggled () from /usr/lib/libQtGui.so.4 #18 0xb782f055 in QAbstractButton::setChecked () from /usr/lib/libQtGui.so.4 #19 0x08706ea9 in Rosegarden::MIDIInstrumentParameterPanel::setupForInstrument (this=0xad47168, instrument=0xb2bf760) at src/gui/editors/parameters/MIDIInstrumentParameterPanel.cpp:347 #20 0x086fdd6b in Rosegarden::InstrumentParameterBox::useInstrument (this=0xac90f48, instrument=0xb2bf760) at src/gui/editors/parameters/InstrumentParameterBox.cpp:215 #21 0x082d577f in Rosegarden::RosegardenMainViewWidget::slotUpdateInstrumentParameterBox (this=0xb46a168, id=2944) at src/gui/application/RosegardenMainViewWidget.cpp:1129 #22 0x082d5d27 in Rosegarden::RosegardenMainViewWidget::slotSelectTrackSegments (this=0xb46a168, trackId=9) at src/gui/application/RosegardenMainViewWidget.cpp:1014 #23 0x0830a295 in Rosegarden::RosegardenMainWindow::initView (this=0xaa529e0) at src/gui/application/RosegardenMainWindow.cpp:1033 #24 0x0830b043 in Rosegarden::RosegardenMainWindow::setDocument (this=0xaa529e0, newDocument=0xb2f7c40) at src/gui/application/RosegardenMainWindow.cpp:1192 #25 0x0830eaf4 in Rosegarden::RosegardenMainWindow::openFile (this=0xaa529e0, filePath={d = 0xbfefadfc}, type=Rosegarden::RosegardenMainWindow::ImportCheckType) at src/gui/application/RosegardenMainWindow.cpp:1255 #26 0x08327560 in Rosegarden::RosegardenMainWindow::openFile (this=0xaa529e0, filePath={d = 0xbfefae98}) at src/gui/application/RosegardenMainWindow.h:164 #27 0x082fddab in Rosegarden::RosegardenMainWindow::openURL (this=0xaa529e0, url=@0xbfefb048) at src/gui/application/RosegardenMainWindow.cpp:1739 #28 0x082ff9eb in Rosegarden::RosegardenMainWindow::slotFileOpen (this=0xaa529e0) at src/gui/application/RosegardenMainWindow.cpp:1796 --------------------------------------------------------------------------------------- When dropping audio on TrackEditor from AudioManagerDialog I get a crash now: #0 Rosegarden::RosegardenMainViewWidget::slotDroppedNewAudio (this=0x96a5018, audioDesc={d = 0xbfe70930}) at src/gui/application/RosegardenMainViewWidget.cpp:1659 #1 0x082da52a in Rosegarden::RosegardenMainViewWidget::qt_metacall (this=0x96a5018, _c=QMetaObject::InvokeMetaMethod, _id=40, _a=0xbfe70a10) at src/gui/application/RosegardenMainViewWidget.moc:217 #2 0xb7164ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #3 0xb7165932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #4 0x0875174e in Rosegarden::TrackEditor::droppedNewAudio (this=0x96cf0f0, _t1={d = 0xbfe70af0}) at src/gui/editors/segment/TrackEditor.moc:163 #5 0x087523cb in Rosegarden::TrackEditor::dropEvent (this=0x96cf0f0, e=0xbfe70f3c) at src/gui/editors/segment/TrackEditor.cpp:834 #6 0xb753f721 in QWidget::event () from /usr/lib/libQtGui.so.4 #7 0xb74e8e9c in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #8 0xb74f17b1 in QApplication::notify () from /usr/lib/libQtGui.so.4 #9 0xb714ea3b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4 #10 0xb756e51d in ?? () from /usr/lib/libQtGui.so.4 #11 0xb75731a3 in QDragManager::drop () from /usr/lib/libQtGui.so.4 #12 0xb7573366 in QDragManager::eventFilter () from /usr/lib/libQtGui.so.4 #13 0xb714dd1c in QCoreApplicationPrivate::sendThroughApplicationEventFilters () from /usr/lib/libQtCore.so.4 #14 0xb74e8e13 in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #15 0xb74f1b11 in QApplication::notify () from /usr/lib/libQtGui.so.4 #16 0xb714ea3b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4 #17 0xb74f0b7e in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4 #18 0xb756097e in ?? () from /usr/lib/libQtGui.so.4 #19 0xb755fca7 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 #20 0xb758ac6a in ?? () from /usr/lib/libQtGui.so.4 #21 0xb66adb88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #22 0xb66b10eb in ?? () from /usr/lib/libglib-2.0.so.0 #23 0xb66b1268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #24 0xb717a438 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4 #25 0xb758a365 in ?? () from /usr/lib/libQtGui.so.4 #26 0xb714d06a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #27 0xb714d4aa in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #28 0xb7571310 in QDragManager::drag () from /usr/lib/libQtGui.so.4 #29 0xb74fc4b0 in QDrag::start () from /usr/lib/libQtGui.so.4 #30 0x0857653c in Rosegarden::AudioListView::mouseMoveEvent (this=0x9224210, event=0xbfe726e8) at src/gui/widgets/AudioListView.cpp:99 |
From: Chris F. <chr...@go...> - 2009-10-29 22:29:37
|
On Thu, 2009-10-29 at 20:43 +0100, Emanuel Rumpf wrote: > @Chris F. Will it be possible to add custom number controllers (to > select the midi-ctrl. number)? Michael wrote the code to turn on available controllers. I don't suppose it would be too tricky to add a controller N option but I don't know enough about this to be confident. > Do you plan to (or already do) support fine tune (LSB) controller messages ? I'm afraid, again, I haven't looked into this. I do know that the pitch-bend ruler is a two byte number and that works fine so I expect it is fairly achievable. Chris |
From: D. M. M. <mic...@ro...> - 2009-10-29 22:44:36
|
On Thursday 29 October 2009, Chris Fryer wrote: > Michael wrote the code to turn on available controllers. I don't suppose > it would be too tricky to add a controller N option but I don't know > enough about this to be confident. It would be wrong to go that route anyway. It needs to go through the studio, and then it should get picked up from there (once that bug is sorted out--I got sidetracked and haven't thought about it again.) -- D. Michael McIntyre |
From: Emanuel R. <xb...@gm...> - 2009-10-30 18:08:15
|
2009/10/29 Chris Fryer <chr...@go...>: > On Thu, 2009-10-29 at 20:43 +0100, Emanuel Rumpf wrote: >> @Chris F. Will it be possible to add custom number controllers (to >> select the midi-ctrl. number)? > Michael wrote the code to turn on available controllers. I don't suppose > it would be too tricky to add a controller N option but I don't know > enough about this to be confident. > Control Rulers are almost functional (with a few bugs remaining). That's great. Thanks to all who helped. >> Do you plan to (or already do) support fine tune (LSB) controller messages ? > I'm afraid, again, I haven't looked into this. I do know that the > pitch-bend ruler is a two byte number and that works fine so I expect it > is fairly achievable. > The theory is that instead of poor 128 steps, with additional LSB message, one can get 16384 steps. The controller number for LSB is that of MSB +32. example: volume is ctrl 7 => LSB is ctrl 39 (=7+32) Each message transmits 7 bits. (first for coarse MSB, second for fine tune LSB) Sounds appealing, but actually I don't know any device that supports it, so it likely doesn't really matter. -- E.R. |
From: D. M. M. <mic...@ro...> - 2009-10-29 22:39:06
|
On Thursday 29 October 2009, Emanuel Rumpf wrote: > @Chris F. Will it be possible to add custom number controllers (to > select the midi-ctrl. number)? It already is. Studio -> Manage MIDI Devices -> Controllers... Let's say you want to add controller 53 called "Distort." Click Add. Set up your controller (name "Distort" number 53 etc.) and then the next time you open a matrix or notation view, the new controller will show up on the list of available rulers to choose from. (In theory. In practice when I tried to go through this just now, I crashed trying to create the new controller.) > Do you plan to (or already do) support fine tune (LSB) controller messages > ? I'll leave that to somebody else. I don't know what you're talking about. > @ Chris C. , you made the dialogs "delete on close". > But that means, they loose their status too. (size,position,selected > items,.. ) Is it worth that? Where would be the right place to store such > data ? In QSettings ? They definitely need to be delete on close. We had a ton of crashes related to this. QSettings is the way to go indeed. All major editors already store last position and size in a special settings group, so there is code to follow if you are interested in implementing this elsewhere. You implement a custom closeEvent() method for this purpose, which could also be used to store any other settings. I've also found a few things here and there that read from settings (settings.value() ) but never actually *write* any settings (settings.Value() ) back out. I fixed one or two, but there are probably more to do. Please note that if you do wish to store additional dialog-specific settings (see PresetHandlerDialog for an example) beyond the window position data, please use appropriate config groups to do it. > The position line/pointer/cursor doesn't move on playback anymore. > (Only when pressing <back> while playing) Where? I assumed you were talking about the matrix (from context) and everything seems to check out there as far as I see. > The first playback-device sometimes gets arbitrarily renamed (without > user interaction), especially when pressing the refresh button in the > DeviceManager. I haven't seen this. In practice I've found the refresh button is not normally needed, incidentally. > 2 backtraces: > > --------------------------------------------------------------------------- >------------------------ There are still/again crashes when importing files: Leaving that for Chris Cannam when he gets back from (another, ugh!) trip away. -- D. Michael McIntyre |
From: Chris C. <ca...@al...> - 2009-10-31 17:04:28
|
On Thu, Oct 29, 2009 at 10:38 PM, D. Michael McIntyre <mic...@ro...> wrote: > Leaving that for Chris Cannam when he gets back from (another, ugh!) trip > away. Hey! I'm just visiting my parents. It's not like I'm hanging out on my yacht in Monaco or anything... Chris |
From: Emanuel R. <xb...@gm...> - 2009-10-30 17:21:18
|
Hm. Very strange. After rebooting some of the bugs just disappeared. Maybe my system or disk somehow was in an invalid state. Obsolete: Playback curser moves now, when playing. Dropping audio-files works again. Remaining: Opening rg files crashes RG. Quantisation setting is always 1/1 when starting the matrix editor. The first playback-device sometimes gets arbitrarily renamed (without user interaction), especially when pressing the refresh button in the DeviceManager. (try to reproduce: open deviceManager, rename the first device, assign a port,close deviceManager,reopen it,press refresh) Further notes: When dropping audio, always a copy of the file is created now, instead of reusing the same file (version), as it used to be. Selecting "HR timer" as timing source crashes my whole system, requires hardware-reset. There are a lot of crashing errors in src/base/ColourMap.cpp (in function getColourByIndex( ) ) (and std::string ColourMap::getNameByIndex() crashes too) Here one backtrace: #0 0x080a2ef7 in std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::pair<Rosegarden::Colour, std::string> >, std::_Select1st<std::pair<unsigned int const, std::pair<Rosegarden::Colour, std::string> > >, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::pair<Rosegarden::Colour, std::string> > > >::begin (this=0x148) at /usr/include/c++/4.3/bits/stl_tree.h:606 #1 0x080a2f29 in std::map<unsigned int, std::pair<Rosegarden::Colour, std::string>, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::pair<Rosegarden::Colour, std::string> > > >::begin (this=0x148) at /usr/include/c++/4.3/bits/stl_map.h:285 #2 0x080a1fd9 in Rosegarden::ColourMap::getColourByIndex (this=0x148, item_num=2) at src/base/ColourMap.cpp:72 #3 0x0872f31e in Rosegarden::ControlEditorDialog::slotUpdate (this=0xab26670, added=false) at src/gui/editors/segment/ControlEditorDialog.cpp:272 #4 0x08733363 in Rosegarden::ControlEditorDialog::slotUpdate (this=0xab26670) at src/gui/editors/segment/ControlEditorDialog.h:71 #5 0x0872faef in Rosegarden::ControlEditorDialog::qt_metacall (this=0xab26670, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfb1def8) at src/gui/editors/segment/ControlEditorDialog.moc:81 #6 0xb7179ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #7 0xb717a932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #8 0x0813e237 in Rosegarden::CommandHistory::commandExecuted (this=0xa195b10) at src/document/CommandHistory.moc:108 #9 0x0813f937 in Rosegarden::CommandHistory::addCommand (this=0xa195b10, command=0xa80c988, execute=true, bundle=false) at src/document/CommandHistory.cpp:180 #10 0x0813fc06 in Rosegarden::CommandHistory::addCommand (this=0xa195b10, command=0xa80c988) at src/document/CommandHistory.cpp:135 #11 0x08548058 in Rosegarden::DeviceManagerDialog::slotDeviceItemChanged (this=0xac27190, twItem=0xa80a550, column=1) at src/gui/studio/DeviceManagerDialog.cpp:942 #12 0x0854b095 in Rosegarden::DeviceManagerDialog::qt_metacall (this=0xac27190, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0xbfb1e0c8) at src/gui/studio/DeviceManagerDialog.moc:119 #13 0xb7179ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #14 0xb717a932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #15 0xb7aedd79 in QTreeWidget::itemChanged () from /usr/lib/libQtGui.so.4 #16 0xb7af2528 in ?? () from /usr/lib/libQtGui.so.4 #17 0xb7afb429 in QTreeWidget::qt_metacall () from /usr/lib/libQtGui.so.4 #18 0xb7179ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #19 0xb717a932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #20 0xb71b4ab9 in QAbstractItemModel::dataChanged () from /usr/lib/libQtCore.so.4 #21 0xb7af387f in ?? () from /usr/lib/libQtGui.so.4 #22 0xb7af3dc5 in QTreeWidgetItem::setData () from /usr/lib/libQtGui.so.4 #23 0x0838d256 in QTreeWidgetItem::setText (this=0xa80a550, column=1, atext=@0xbfb1e43c) at /usr/include/qt4/QtGui/qtreewidget.h:227 #24 0x085493b4 in Rosegarden::DeviceManagerDialog::updateDevicesList (this=0xac27190, devices=0xa1f7b78, treeWid=0xabd72a0, in_out_direction=Rosegarden::MidiDevice::Play) at src/gui/studio/DeviceManagerDialog.cpp:454 #25 0x0854a27d in Rosegarden::DeviceManagerDialog::slotRefreshOutputPorts (this=0xac27190) at src/gui/studio/DeviceManagerDialog.cpp:142 #26 0x0854ae22 in Rosegarden::DeviceManagerDialog::show (this=0xac27190) at src/gui/studio/DeviceManagerDialog.cpp:97 #27 0x082e70ae in Rosegarden::RosegardenMainWindow::slotManageMIDIDevices (this=0xa1cb7d0) at src/gui/application/RosegardenMainWindow.cpp:6287 2009/10/29 Emanuel Rumpf <xb...@gm...>: > Hi > > > @Chris F. Will it be possible to add custom number controllers (to > select the midi-ctrl. number)? > Do you plan to (or already do) support fine tune (LSB) controller messages ? > > > @ Chris C. , you made the dialogs "delete on close". > But that means, they loose their status too. (size,position,selected items,.. ) > Is it worth that? Where would be the right place to store such data ? > In QSettings ? > > > Notes: > Quantisation setting is always 1/1 when starting the matrix editor. > > The position line/pointer/cursor doesn't move on playback anymore. > (Only when pressing <back> while playing) > > The first playback-device sometimes gets arbitrarily renamed (without > user interaction), especially when pressing the refresh button in the > DeviceManager. > > > 2 backtraces: > > --------------------------------------------------------------------------------------------------- > There are still/again crashes when importing files: > > > #0 0x08770b6d in > Rosegarden::CompositionModelImpl::slotInstrumentParametersChanged > (this=0xabe6008, id=2944) at > src/gui/editors/segment/compositionview/CompositionModelImpl.cpp:488 > #1 0x087715ba in Rosegarden::CompositionModelImpl::qt_metacall > (this=0xabe6008, _c=QMetaObject::InvokeMetaMethod, _id=3, > _a=0xbfefa560) at > src/gui/editors/segment/compositionview/CompositionModelImpl.moc:79 > #2 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #3 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #4 0x082de6f0 in > Rosegarden::RosegardenMainWindow::instrumentParametersChanged > (this=0xaa529e0, _t1=2944) at > src/gui/application/RosegardenMainWindow.moc:786 > #5 0x0831f225 in Rosegarden::RosegardenMainWindow::qt_metacall > (this=0xaa529e0, _c=QMetaObject::InvokeMetaMethod, _id=5, > _a=0xbfefa6c0) at src/gui/application/RosegardenMainWindow.moc:500 > #6 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #7 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #8 0x086fd928 in > Rosegarden::InstrumentParameterBox::instrumentParametersChanged > (this=0xac90f48, _t1=2944) at > src/gui/editors/parameters/InstrumentParameterBox.moc:128 > #9 0x086fe125 in Rosegarden::InstrumentParameterBox::qt_metacall > (this=0xac90f48, _c=QMetaObject::InvokeMetaMethod, _id=3, > _a=0xbfefa7d0) at > src/gui/editors/parameters/InstrumentParameterBox.moc:90 > #10 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #11 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #12 0x08700a5c in > Rosegarden::MIDIInstrumentParameterPanel::instrumentParametersChanged > (this=0xad47168, _t1=2944) at > src/gui/editors/parameters/MIDIInstrumentParameterPanel.moc:123 > #13 0x087041b9 in > Rosegarden::MIDIInstrumentParameterPanel::slotToggleProgramChange > (this=0xad47168, value=true) at > src/gui/editors/parameters/MIDIInstrumentParameterPanel.cpp:1002 > #14 0x08705426 in > Rosegarden::MIDIInstrumentParameterPanel::qt_metacall (this=0xad47168, > _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbfefa91c) at > src/gui/editors/parameters/MIDIInstrumentParameterPanel.moc:101 > #15 0xb70c7ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #16 0xb70c8932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #17 0xb7b021d9 in QAbstractButton::toggled () from /usr/lib/libQtGui.so.4 > #18 0xb782f055 in QAbstractButton::setChecked () from /usr/lib/libQtGui.so.4 > #19 0x08706ea9 in > Rosegarden::MIDIInstrumentParameterPanel::setupForInstrument > (this=0xad47168, instrument=0xb2bf760) at > src/gui/editors/parameters/MIDIInstrumentParameterPanel.cpp:347 > #20 0x086fdd6b in Rosegarden::InstrumentParameterBox::useInstrument > (this=0xac90f48, instrument=0xb2bf760) at > src/gui/editors/parameters/InstrumentParameterBox.cpp:215 > #21 0x082d577f in > Rosegarden::RosegardenMainViewWidget::slotUpdateInstrumentParameterBox > (this=0xb46a168, id=2944) at > src/gui/application/RosegardenMainViewWidget.cpp:1129 > #22 0x082d5d27 in > Rosegarden::RosegardenMainViewWidget::slotSelectTrackSegments > (this=0xb46a168, trackId=9) at > src/gui/application/RosegardenMainViewWidget.cpp:1014 > #23 0x0830a295 in Rosegarden::RosegardenMainWindow::initView > (this=0xaa529e0) at src/gui/application/RosegardenMainWindow.cpp:1033 > #24 0x0830b043 in Rosegarden::RosegardenMainWindow::setDocument > (this=0xaa529e0, newDocument=0xb2f7c40) at > src/gui/application/RosegardenMainWindow.cpp:1192 > #25 0x0830eaf4 in Rosegarden::RosegardenMainWindow::openFile > (this=0xaa529e0, filePath={d = 0xbfefadfc}, > type=Rosegarden::RosegardenMainWindow::ImportCheckType) at > src/gui/application/RosegardenMainWindow.cpp:1255 > #26 0x08327560 in Rosegarden::RosegardenMainWindow::openFile > (this=0xaa529e0, filePath={d = 0xbfefae98}) at > src/gui/application/RosegardenMainWindow.h:164 > #27 0x082fddab in Rosegarden::RosegardenMainWindow::openURL > (this=0xaa529e0, url=@0xbfefb048) at > src/gui/application/RosegardenMainWindow.cpp:1739 > #28 0x082ff9eb in Rosegarden::RosegardenMainWindow::slotFileOpen > (this=0xaa529e0) at src/gui/application/RosegardenMainWindow.cpp:1796 > > > --------------------------------------------------------------------------------------- > > When dropping audio on TrackEditor from AudioManagerDialog I get a crash now: > > > #0 Rosegarden::RosegardenMainViewWidget::slotDroppedNewAudio > (this=0x96a5018, audioDesc={d = 0xbfe70930}) at > src/gui/application/RosegardenMainViewWidget.cpp:1659 > #1 0x082da52a in Rosegarden::RosegardenMainViewWidget::qt_metacall > (this=0x96a5018, _c=QMetaObject::InvokeMetaMethod, _id=40, > _a=0xbfe70a10) at src/gui/application/RosegardenMainViewWidget.moc:217 > #2 0xb7164ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #3 0xb7165932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 > #4 0x0875174e in Rosegarden::TrackEditor::droppedNewAudio > (this=0x96cf0f0, _t1={d = 0xbfe70af0}) at > src/gui/editors/segment/TrackEditor.moc:163 > #5 0x087523cb in Rosegarden::TrackEditor::dropEvent (this=0x96cf0f0, > e=0xbfe70f3c) at src/gui/editors/segment/TrackEditor.cpp:834 > #6 0xb753f721 in QWidget::event () from /usr/lib/libQtGui.so.4 > #7 0xb74e8e9c in QApplicationPrivate::notify_helper () from > /usr/lib/libQtGui.so.4 > #8 0xb74f17b1 in QApplication::notify () from /usr/lib/libQtGui.so.4 > #9 0xb714ea3b in QCoreApplication::notifyInternal () from > /usr/lib/libQtCore.so.4 > #10 0xb756e51d in ?? () from /usr/lib/libQtGui.so.4 > #11 0xb75731a3 in QDragManager::drop () from /usr/lib/libQtGui.so.4 > #12 0xb7573366 in QDragManager::eventFilter () from /usr/lib/libQtGui.so.4 > #13 0xb714dd1c in > QCoreApplicationPrivate::sendThroughApplicationEventFilters () from > /usr/lib/libQtCore.so.4 > #14 0xb74e8e13 in QApplicationPrivate::notify_helper () from > /usr/lib/libQtGui.so.4 > #15 0xb74f1b11 in QApplication::notify () from /usr/lib/libQtGui.so.4 > #16 0xb714ea3b in QCoreApplication::notifyInternal () from > /usr/lib/libQtCore.so.4 > #17 0xb74f0b7e in QApplicationPrivate::sendMouseEvent () from > /usr/lib/libQtGui.so.4 > #18 0xb756097e in ?? () from /usr/lib/libQtGui.so.4 > #19 0xb755fca7 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4 > #20 0xb758ac6a in ?? () from /usr/lib/libQtGui.so.4 > #21 0xb66adb88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 > #22 0xb66b10eb in ?? () from /usr/lib/libglib-2.0.so.0 > #23 0xb66b1268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 > #24 0xb717a438 in QEventDispatcherGlib::processEvents () from > /usr/lib/libQtCore.so.4 > #25 0xb758a365 in ?? () from /usr/lib/libQtGui.so.4 > #26 0xb714d06a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 > #27 0xb714d4aa in QEventLoop::exec () from /usr/lib/libQtCore.so.4 > #28 0xb7571310 in QDragManager::drag () from /usr/lib/libQtGui.so.4 > #29 0xb74fc4b0 in QDrag::start () from /usr/lib/libQtGui.so.4 > #30 0x0857653c in Rosegarden::AudioListView::mouseMoveEvent > (this=0x9224210, event=0xbfe726e8) at > src/gui/widgets/AudioListView.cpp:99 > -- E.R. |
From: Emanuel R. <xb...@gm...> - 2009-10-30 17:30:33
|
2009/10/29 D. Michael McIntyre <mic...@ro...>: > On Thursday 29 October 2009, Emanuel Rumpf wrote: > >> @Chris F. Will it be possible to add custom number controllers (to >> select the midi-ctrl. number)? > > It already is. Studio -> Manage MIDI Devices -> Controllers... > > Let's say you want to add controller 53 called "Distort." > > Click Add. Set up your controller (name "Distort" number 53 etc.) and then > the next time you open a matrix or notation view, the new controller will show > up on the list of available rulers to choose from. > That's interesting. But one has to know, that the controllers are bound to the device as well. Also I had to manually choose an unused position nr. for the controller, if not, then it showed a wrong name in the IPB. > >> @ Chris C. , you made the dialogs "delete on close". >> But that means, they loose their status too. (size,position,selected >> items,.. ) Is it worth that? Where would be the right place to store such >> data ? In QSettings ? > > They definitely need to be delete on close. We had a ton of crashes related > to this. QSettings is the way to go indeed. > I don't believe this theory. If it crashes (any way), there must be something more wrong with it. > All major editors already store last position and size in a special settings > group, so there is code to follow if you are interested in implementing this > elsewhere. You implement a custom closeEvent() method for this purpose, which > could also be used to store any other settings. > > I've also found a few things here and there that read from settings > (settings.value() ) but never actually *write* any settings (settings.Value() > ) back out. I fixed one or two, but there are probably more to do. > > Please note that if you do wish to store additional dialog-specific settings > (see PresetHandlerDialog for an example) beyond the window position data, > please use appropriate config groups to do it. > Ok, thanks. -- E.R. |
From: D. M. M. <mic...@ro...> - 2009-10-31 01:04:53
|
On Friday 30 October 2009, Emanuel Rumpf wrote: > But one has to know, that the controllers are bound to the device as well. Well, they *are* bound to the device, so there's no other way to do it. These things are very highly variable, and very highly device-specific. > Also I had to manually choose an unused position nr. for the controller, > if not, then it showed a wrong name in the IPB. I don't like that whole picking a number to choose a position thing. It's garbage. If someone wants a little project, come up with some kind of little WYSIWYG controller-arranger widget where you can drag things around and show and hide them through a nice usable interface instead of this tripe. As far as that goes though, you shouldn't actually have to have your new controller showing for it to work on a control ruler. > I don't believe this theory. If it crashes (any way), there must be > something more wrong with it. Chris Cannam could explain it better than me. I don't remember the details, but there is no doubt in my mind that we want to "delete on close" these things. If you want something to be persistent, use QSettings. -- D. Michael McIntyre |
From: Chris C. <ca...@al...> - 2009-10-31 17:07:15
|
On Fri, Oct 30, 2009 at 5:30 PM, Emanuel Rumpf <xb...@gm...> wrote: > 2009/10/29 D. Michael McIntyre <mic...@ro...>: >> They definitely need to be delete on close. We had a ton of crashes related >> to this. QSettings is the way to go indeed. > > I don't believe this theory. If it crashes (any way), there must be > something more wrong with it. The canonical case is: open the dialog; close the dialog; load a new document; open the dialog again. This crashes several of the dialogs, prior to adding delete-on-close -- and so it should, since they were always delete-on-close before and several of them retain references to the document and things in it. I'm sure all these could be fixed some other way, but I'm not clear that there would be any significant enough advantage to that to make it worth the new work. Chris |
From: Emanuel R. <xb...@gm...> - 2009-10-30 19:59:32
Attachments:
screen1.png
|
2009/10/29 D. Michael McIntyre <mic...@ro...>: > On Thursday 29 October 2009, Emanuel Rumpf wrote: > >> @Chris F. Will it be possible to add custom number controllers (to >> select the midi-ctrl. number)? > > It already is. Studio -> Manage MIDI Devices -> Controllers... > > Let's say you want to add controller 53 called "Distort." > > Click Add. Set up your controller (name "Distort" number 53 etc.) and then > the next time you open a matrix or notation view, the new controller will show > up on the list of available rulers to choose from. > > (In theory. In practice when I tried to go through this just now, I crashed > trying to create the new controller.) > It works. (After disabling some code in ColourMap.cpp ) Here is a screenshot with midi controller 08 recorded. But it is clipped at top and bottom, meaning not the full range (0...127) is visible ? -- E.R. |
From: Chris F. <chr...@go...> - 2009-10-30 20:27:01
|
On Fri, 2009-10-30 at 20:59 +0100, Emanuel Rumpf wrote: > 2009/10/29 D. Michael McIntyre <mic...@ro...>: > > On Thursday 29 October 2009, Emanuel Rumpf wrote: > > > >> @Chris F. Will it be possible to add custom number controllers (to > >> select the midi-ctrl. number)? > > > > It already is. Studio -> Manage MIDI Devices -> Controllers... > > > > Let's say you want to add controller 53 called "Distort." > > > > Click Add. Set up your controller (name "Distort" number 53 etc.) and then > > the next time you open a matrix or notation view, the new controller will show > > up on the list of available rulers to choose from. > > > > (In theory. In practice when I tried to go through this just now, I crashed > > trying to create the new controller.) > > > > It works. (After disabling some code in ColourMap.cpp ) > Here is a screenshot with midi controller 08 recorded. > But it is clipped at top and bottom, meaning not the full range > (0...127) is visible ? That's cool. I'll look a bit further this w/e. The control ruler code works from the controller's min and max values (eg pitch bend is no different to a normal 0->127 ruler). As I recall, it just works with an int and is ambivalent as to how that is coded in the MIDI section. I think we'll need to look into the controller code (whatever, or where-ever that is!). Chris |
From: Chris F. <chr...@go...> - 2009-10-30 20:34:22
|
I've got a problem making the control rulers align properly in the Notation view. Right now, I'm effectively using m_ruler->getXForTime(m_event->getAbsoluteTime) (where m_ruler is the NotationView's Ruler) and I get X positions offset to the left of the notation. This same mechanism works fine in MatrixView. I note that an event has a 'getNotationAbsoluteTime'. What is notation absolute time? Regards Chris |
From: D. M. M. <mic...@ro...> - 2009-10-31 01:10:10
|
On Friday 30 October 2009, Emanuel Rumpf wrote: > It works. (After disabling some code in ColourMap.cpp ) What code? Your knobs are all black. > Here is a screenshot with midi controller 08 recorded. > But it is clipped at top and bottom, meaning not the full range > (0...127) is visible ? Forget the real problems! :) Why do you have a red background in so many places? Did you customize your stylesheet? I'll look into the crashes on this. I had been operating under the assumption that the ColourMap crashes were studio-related, but maybe there's more to it. -- D. Michael McIntyre |
From: D. M. M. <mic...@ro...> - 2009-10-31 02:37:04
|
On Friday 30 October 2009, D. Michael McIntyre wrote: > On Friday 30 October 2009, Emanuel Rumpf wrote: > > It works. (After disabling some code in ColourMap.cpp ) > > What code? Your knobs are all black. I think I figured it out. You disabled code in ColourMap to stop it from crashing, but that wasn't the real reason why it was crashing. This turned out to be another example of why we setAttribute(Qt::WA_DeleteOnClose); What was happening, I'd open a ControlEditorDialog, add some controllers and do my thing, close it, close the device manager, and everything would be fine until I drew something with the segment pencil. Then ControlEditorDialog would crash in slotUpdate() even after it was closed. Why was a closed dialog trying to update itself anyway? I'm not sure, but I imagine it must have caught a signal from something. Add the delete on close, and the problem goes away as far as I can tell. No more crash, and I don't see any strange side effects. -- D. Michael McIntyre |
From: D. M. M. <mic...@ro...> - 2009-10-31 05:12:35
|
On Friday 30 October 2009, Emanuel Rumpf wrote: > Remaining: > Opening rg files crashes RG. Which file was that again? I don't have this problem generally. > Quantisation setting is always 1/1 when starting the matrix editor. Classic defaulted to "Off" and did not store this setting anywhere, so you'd have to change it each time if you wanted to change it for some reason. Thorn now does the same. > The first playback-device sometimes gets arbitrarily renamed (without > user interaction), especially when pressing the refresh button in the > DeviceManager. > (try to reproduce: > open deviceManager, rename the first device, assign a port,close > deviceManager,reopen it,press refresh) It does. I had to keep hitting refresh and closing the device manager, re- opening it, hitting refresh some more, etc. Eventually it reverted to "MIDI system device" or something. This looks really hard to sort out and correct. Does it ever happen when you *don't* hit the refresh button? > Further notes: > When dropping audio, always a copy of the file is created now, instead > of reusing the same file (version), as it used to be. Is this a bad thing? Is this a bug? I'm afraid I don't use this much, and I'm not familiar with how it should behave. > Selecting "HR timer" as timing source crashes my whole system, > requires hardware-reset. This happens. That timing source is dangerous. We try to avoid making it available as an option in situations where it is most likely to cause a hard freeze, but it's not perfect. Now that you've determined it will cause a hard freeze on your system, please refrain from trying it again. Chris will have to explain what this is all about. Personally, I never touch "(auto)" and leave well enough alone. > There are a lot of crashing errors in src/base/ColourMap.cpp > Here one backtrace: I fixed that one today. > >-------------------------- There are still/again crashes when importing > > files: Do you have a specific file that always causes this problem? I can't repeat it, and the trace doesn't suggest much. -- D. Michael McIntyre |
From: Chris C. <ca...@al...> - 2009-10-31 17:10:18
|
On Sat, Oct 31, 2009 at 5:12 AM, D. Michael McIntyre <mic...@ro...> wrote: > On Friday 30 October 2009, Emanuel Rumpf wrote: >> The first playback-device sometimes gets arbitrarily renamed (without >> user interaction), especially when pressing the refresh button in the >> DeviceManager. >> (try to reproduce: >> open deviceManager, rename the first device, assign a port,close >> deviceManager,reopen it,press refresh) > > It does. I had to keep hitting refresh and closing the device manager, re- > opening it, hitting refresh some more, etc. Eventually it reverted to "MIDI > system device" or something. > > This looks really hard to sort out and correct. Does it ever happen when you > *don't* hit the refresh button? The device name is supposed to be completely under the control of the device manager dialog now -- the asynchronous changes to things like device names and connections "at the sequencer", with the sequencer having to push the information back to the GUI, that used to happen have been removed. So this should be tractable, I'll look at it this coming week if it hasn't been explained by then. >> Selecting "HR timer" as timing source crashes my whole system, >> requires hardware-reset. > > This happens. That timing source is dangerous. We try to avoid making it > available as an option in situations where it is most likely to cause a hard > freeze, but it's not perfect. Actually I think we simply avoid picking dangerous timers by default, we don't actually remove it from the timer list. If it causes a hard lock, that's an ALSA or other kernel bug. Chris |
From: Chris C. <ca...@al...> - 2009-11-02 10:30:12
|
On Fri, Oct 30, 2009 at 8:34 PM, Chris Fryer <chr...@go...> wrote: > I've got a problem making the control rulers align properly in the > Notation view. > > Right now, I'm effectively using > m_ruler->getXForTime(m_event->getAbsoluteTime) > (where m_ruler is the NotationView's Ruler) and I get X positions offset > to the left of the notation. This same mechanism works fine in > MatrixView. IIRC, the notation view has an additional offset not accounted for in the ruler scale -- try StaffLayout::getMargin(). I could probably deduce the reason for this given enough time, but I don't have it handy. > I note that an event has a 'getNotationAbsoluteTime'. > What is notation absolute time? It's the event's absolute time following quantization for notation purposes. In other words, it's the time that is actually used to determine where to place the note (and the notation duration is the duration actually used to determine what note to draw). Generally speaking, and almost certainly in your case, you want to use the notation times rather than the raw (performance) times when drawing in the context of notation. Chris |
From: Chris F. <chr...@go...> - 2009-11-02 22:37:17
Attachments:
Screenshot-2.png
|
On Mon, 2009-11-02 at 10:29 +0000, Chris Cannam wrote: > On Fri, Oct 30, 2009 at 8:34 PM, Chris Fryer <chr...@go...> wrote: > > I've got a problem making the control rulers align properly in the > > Notation view. > > > > Right now, I'm effectively using > > m_ruler->getXForTime(m_event->getAbsoluteTime) > > (where m_ruler is the NotationView's Ruler) and I get X positions offset > > to the left of the notation. This same mechanism works fine in > > MatrixView. > > IIRC, the notation view has an additional offset not accounted for in > the ruler scale -- try StaffLayout::getMargin(). I could probably > deduce the reason for this given enough time, but I don't have it > handy. Thanks Chris but I'm getting zeros from StaffLayout::getMargin() on the Notation view because m_pageMode != MultiPageMode but m_margin is zero anyways (see attached screen grab). I'd appreciate it if you could take a look because it will take me a while to find the offset mechanism from the code. Regards Chris |
From: Chris C. <ca...@al...> - 2009-11-03 10:34:50
|
On Mon, Nov 2, 2009 at 10:36 PM, Chris Fryer <chr...@go...> wrote: > Thanks Chris but I'm getting zeros from StaffLayout::getMargin() on the > Notation view because m_pageMode != MultiPageMode but m_margin is zero > anyways (see attached screen grab). > > I'd appreciate it if you could take a look because it will take me a > while to find the offset mechanism from the code. OK, I'm confused myself now. It turns out that the quantity I was thinking of is m_leftGutter in NotationScene. This is set to 20 pixels -- does that match the error you're seeing? The reason I am confused is as follows... and I'd be glad to hear from anyone who can explain this without all the investigation it would take me or Chris to work it out. The left gutter is used as the x coordinate of all of the staff objects in the scene. In the classic code, it was stored by NotationView and was used when constructing all of the rulers, being provided as the ruler's constructor's "xorigin" parameter in order to make sure the rulers lined up with the score. Now, however, the left gutter value is contained in NotationScene and nobody has ever actually provided an accessor for it, meaning that the NotationWidget (which now owns the rulers) cannot possibly be telling the rulers the right value. And indeed, NotationWidget now has 0 hardcoded as the xorigin for all rulers. Yet most of the rulers do in fact line up with the score. How? Chris |
From: Yves G. <yc....@wa...> - 2009-11-03 14:53:25
|
Le mardi 03 novembre 2009 11:34:35, Chris Cannam a écrit : > Now, however, the left gutter value is contained in NotationScene and > nobody has ever actually provided an accessor for it, meaning that the > NotationWidget (which now owns the rulers) cannot possibly be telling > the rulers the right value. And indeed, NotationWidget now has 0 > hardcoded as the xorigin for all rulers. > > Yet most of the rulers do in fact line up with the score. How? > This works because I discovered the need of an 20 pixels offset at the time I was porting back the rulers and, as I had no idea from where this offset came from, I hardcoded it in NotationWidget.cpp (lines 1002 to 1004). Yves |
From: Chris C. <ca...@al...> - 2009-11-03 15:04:55
|
On Tue, Nov 3, 2009 at 2:53 PM, Yves Guillemot <yc....@wa...> wrote: > Le mardi 03 novembre 2009 11:34:35, Chris Cannam a écrit : >> Yet most of the rulers do in fact line up with the score. How? > > This works because I discovered the need of an 20 pixels offset at the time I > was porting back the rulers and, as I had no idea from where this offset came > from, I hardcoded it in NotationWidget.cpp (lines 1002 to 1004). Hurrah! Thanks Yves, that's exactly the answer I was hoping someone would come out with. I had somehow failed to notice that function and its helpful comment on the topic. Sorry to have inadvertently caused you probably quite a bit of puzzlement when you were trying to work that one out! Chris |