Discussion:
[Lmuse-developer] More great routing and mixer fixes
Tim
2017-04-06 20:38:29 UTC
Permalink
Howdy lists!
Sorry for the long delay since last update.
Thanks for the suggestions and feedback.

The devil is in the details, they say.
These fixes were very, very tough. In the git master now.
Virtually every last little thing was taken care of.
Sometimes the small things are the toughest to fix.

If you love keyboards, you'll love this.
All tabbing, focus, and activation of all strip controls is fixed.
All controls accept tab, return/enter to 'edit', and escape to
get you out of focus.
The 'extra' controls are in tabs now, as shown by Budislav.

Even if the mixer is still to change, the lessons and fixes
applied here are solid, more secure, and good moving forward.
A lot of little 'gotcha' bugs or requirements were done.

Sorry, no time for a monitor column in the arranger yet...

Hope y'all like it.
Tim.


From the ChangeLog, for fun:

- New: As requested: Monitor on Record Arm option. Right click any strip,
or Global Settings.

- New: Mixer strip volume/pan affect multiple selected tracks.
Works fully with midi <-> audio strips.
Works in mixer and arranger, but purposely NOT in pianoroll to avoid
accidental changes to other tracks.

Tally of things that currently can operate on multiple selected tracks:
Track list: Channel, port, mute, solo. Strip: Volume, pan, routing
buttons.

- New: Strip keyboard focusing and operations: All strip controls now
accept keyboard focus. Strip volume box is now the default PROXY focus
for all strips. Any strip control having focus can be adjusted with
up/down keys. Regardless of who has focus, volume and pan always
can be adjusted with universal keys.
Keys:
Up/down: Adjust any focused control.
Alt + Up/down: Adjust volume regardless of focused control.
Alt + Left/right: Adjust pan regardless of focused control.
Ctrl + Alt + Left/right: Switch to a neighbouring strip.
Escape: "Get me out of this focused control to something higher-level!"
(Back to the arranger canvas, or the mixer window.)

- New: Show midi volume as dB option. Right click any strip, or Global
Settings.

- To achieve midi volume as dB and support inter-strip increments, class
MidiCtrlValList hwVal member type was changed from INT to DOUBLE.
Was required to support fractional increments.

- New: Midi strip instrument and patch labels respond to enter/return
key to open popup menu.

- New: As requested: Strip name labels: Double-click to edit track name,
or right-click context menu.

- New: Strips: 'Tabs' hold palettes of controls. Extra controls have been
moved there from right. The tabs accept keyboard focus and can
be activated by hitting return/enter or clicking.

- Fixed: Yay! Finally the strip volume boxes have proper focus and
mouse-over rectangles. There is a dumb problem with KDE
Oxygen and Breeze themes: They turn off ALL such rectangles
if the widget-to-font height ratio is too small. This required a HACK
to force the rectangles to be drawn. Fixed with new class LineEdit,
now is base of class DEntry.

- Fixed: Strip labels now show colour with a stylesheet active.
Looks good with dark stylesheets. It was a problem with the order
and way in which stylesheets were set. (And they override fonts,
so you can't SET then READ a widget font, it always returns
what the stylesheet set.)

- Fixed: Strip volume scale drawing was offset too much to the
left sometimes.

- Several other fixes along the way.
Tim
2017-04-08 16:34:05 UTC
Permalink
Oops!

5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.

Crashes soon after.

Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.

This crash bug is about about one year old.

If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.

Tim.


ChangeLog:
- Crash fix: File > New > Audio.med > change wave track 1 to stereo ->
crashes soon after.
In AudioTrack::copyData(): In two sections concerning '2ch' -> '1ch'
mixing:
Move 'sp' inside channel loop. Was allowed to increment beyond, into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's outputs
were routed to same jack port.
Michael Oswald
2017-04-08 19:47:43 UTC
Permalink
Hi Time,

For some reason, it doesn't compile on my machine:

/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
member function ‘virtual QSize MusEGui::TextEdit::sizeHint() const’:
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp:66:36:
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() + viewportMargins().top() +
^
[ 66%]
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp:70:1:
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [muse/widgets/CMakeFiles/widgets.dir/text_edit.o] Error 1
make[2]: *** Waiting for unfinished jobs....


I have had only a brief look and didn't find a suspect, any idea?

lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to stereo ->
crashes soon after.
In AudioTrack::copyData(): In two sections concerning '2ch' -> '1ch'
Move 'sp' inside channel loop. Was allowed to increment beyond, into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's outputs
were routed to same jack port.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
Tim
2017-04-08 23:19:28 UTC
Permalink
Hi, there was a dependency on Qt 5.5 in there.
I guess you aren't running that recent a version?

Try it now, I removed the line. That control isn't
used at all yet anyway so it doesn't matter.

But maybe you will get more errors...
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() + viewportMargins().top() +
^
[ 66%]
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [muse/widgets/CMakeFiles/widgets.dir/text_edit.o] Error 1
make[2]: *** Waiting for unfinished jobs....
I have had only a brief look and didn't find a suspect, any idea?
lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to stereo ->
crashes soon after.
In AudioTrack::copyData(): In two sections concerning '2ch' -> '1ch'
Move 'sp' inside channel loop. Was allowed to increment beyond, into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's outputs
were routed to same jack port.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
Michael Oswald
2017-04-09 09:55:10 UTC
Permalink
Hi Time,
Post by Tim
Hi, there was a dependency on Qt 5.5 in there.
I guess you aren't running that recent a version?
Ubuntu Studio 14.04 uses 5.2.1
Post by Tim
Try it now, I removed the line. That control isn't
used at all yet anyway so it doesn't matter.
But maybe you will get more errors...
It compiles now, but I get a link error:

[100%] Building CXX object muse/CMakeFiles/muse.dir/main.o
Linking CXX executable muse3
libmuse_core.so: undefined reference to
`MusECore::MidiController::dValToInt(double)'
collect2: error: ld returned 1 exit status
make[2]: *** [muse/muse3] Error 1
make[1]: *** [muse/CMakeFiles/muse.dir/all] Error 2
make: *** [all] Error 2


lg,
Michael
Post by Tim
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() +
viewportMargins().top() +
^
[ 66%]
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [muse/widgets/CMakeFiles/widgets.dir/text_edit.o] Error 1
make[2]: *** Waiting for unfinished jobs....
I have had only a brief look and didn't find a suspect, any idea?
lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to stereo ->
crashes soon after.
In AudioTrack::copyData(): In two sections concerning '2ch' -> '1ch'
Move 'sp' inside channel loop. Was allowed to increment beyond, into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's outputs
were routed to same jack port.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
Tim
2017-04-09 16:31:07 UTC
Permalink
Hi, sorry about that, I always struggle with the
'inline' keyword.

Strange it compiles here. Maybe I still missed something?

Try it now, I moved the function body into the header.

Thanks.
Tim.
Post by Michael Oswald
Hi Time,
Post by Tim
Hi, there was a dependency on Qt 5.5 in there.
I guess you aren't running that recent a version?
Ubuntu Studio 14.04 uses 5.2.1
Post by Tim
Try it now, I removed the line. That control isn't
used at all yet anyway so it doesn't matter.
But maybe you will get more errors...
[100%] Building CXX object muse/CMakeFiles/muse.dir/main.o
Linking CXX executable muse3
libmuse_core.so: undefined reference to
`MusECore::MidiController::dValToInt(double)'
collect2: error: ld returned 1 exit status
make[2]: *** [muse/muse3] Error 1
make[1]: *** [muse/CMakeFiles/muse.dir/all] Error 2
make: *** [all] Error 2
lg,
Michael
Post by Tim
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() +
viewportMargins().top() +
^
[ 66%]
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [muse/widgets/CMakeFiles/widgets.dir/text_edit.o] Error 1
make[2]: *** Waiting for unfinished jobs....
I have had only a brief look and didn't find a suspect, any idea?
lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to stereo ->
crashes soon after.
In AudioTrack::copyData(): In two sections concerning '2ch' -> '1ch'
Move 'sp' inside channel loop. Was allowed to increment beyond, into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's outputs
were routed to same jack port.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
Robert Jonsson
2017-04-09 20:07:01 UTC
Permalink
Hi guys,

sorry being late to the show. I had this problem also, on one computer, not
on the other, same distro,.. kubuntu 16.10, but apparently with some
difference.

Your latest checkin fixed it.

The other computer had another issue, I had to add curly braces in
astrip.cpp, the compiler complained that indentation was not right.
This is probably a warning and I'm guessing I'm compiling with debug which
defines -Werror to treat warnings as errors.

--- a/muse3/muse/mixer/astrip.cpp
+++ b/muse3/muse/mixer/astrip.cpp
@@ -274,14 +274,14 @@ void AudioComponentRack::newComponent(
ComponentDescriptor* desc, const Componen
{
case aStripAuxComponent:
{
- if(d->_compactKnob->specialValueText().isEmpty())
+ if(d->_compactKnob->specialValueText().isEmpty()) {
d->_compactKnob->setSpecialValueText(QString('-') +
QChar(0x221e)); // The infinity character
-
- connect(d->_compactKnob,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
- connect(d->_compactKnob, SIGNAL(sliderMoved(double,int,bool)),
SLOT(auxMoved(double,int,bool)));
- connect(d->_compactKnob, SIGNAL(sliderPressed(double, int)),
SLOT(auxPressed(double, int)));
- connect(d->_compactKnob, SIGNAL(sliderReleased(double, int)),
SLOT(auxReleased(double, int)));
- connect(d->_compactKnob,
SIGNAL(sliderRightClicked(QPoint,int)), SLOT(auxRightClicked(QPoint,int)));
+ }
+ connect(d->_compactKnob,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
+ connect(d->_compactKnob, SIGNAL(sliderMoved(double,int,bool)),
SLOT(auxMoved(double,int,bool)));
+ connect(d->_compactKnob, SIGNAL(sliderPressed(double, int)),
SLOT(auxPressed(double, int)));
+ connect(d->_compactKnob, SIGNAL(sliderReleased(double, int)),
SLOT(auxReleased(double, int)));
+ connect(d->_compactKnob, SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
}
break;
}
@@ -313,14 +313,14 @@ void AudioComponentRack::newComponent(
ComponentDescriptor* desc, const Componen
{
case aStripAuxComponent:
{
- if(d->_compactSlider->specialValueText().isEmpty())
+ if(d->_compactSlider->specialValueText().isEmpty()) {
d->_compactSlider->setSpecialValueText(QString('-') +
QChar(0x221e)); // The infinity character
-
- connect(d->_compactSlider,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
- connect(d->_compactSlider,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
- connect(d->_compactSlider, SIGNAL(sliderPressed(double, int)),
SLOT(auxPressed(double, int)));
- connect(d->_compactSlider, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
- connect(d->_compactSlider,
SIGNAL(sliderRightClicked(QPoint,int)), SLOT(auxRightClicked(QPoint,int)));
+ }
+ connect(d->_compactSlider,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
+ connect(d->_compactSlider, SIGNAL(sliderMoved(double,int,bool)),
SLOT(auxMoved(double,int,bool)));
+ connect(d->_compactSlider, SIGNAL(sliderPressed(double, int)),
SLOT(auxPressed(double, int)));
+ connect(d->_compactSlider, SIGNAL(sliderReleased(double, int)),
SLOT(auxReleased(double, int)));
+ connect(d->_compactSlider,
SIGNAL(sliderRightClicked(QPoint,int)), SLOT(auxRightClicked(QPoint,int)));
}
break;
}
~

I didn't check it in, are the braces at the right place?

Regards,
Robert
Post by Tim
Hi, sorry about that, I always struggle with the
'inline' keyword.
Strange it compiles here. Maybe I still missed something?
Try it now, I moved the function body into the header.
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
Post by Tim
Hi, there was a dependency on Qt 5.5 in there.
I guess you aren't running that recent a version?
Ubuntu Studio 14.04 uses 5.2.1
Post by Tim
Try it now, I removed the line. That control isn't
used at all yet anyway so it doesn't matter.
But maybe you will get more errors...
[100%] Building CXX object muse/CMakeFiles/muse.dir/main.o
Linking CXX executable muse3
libmuse_core.so: undefined reference to
`MusECore::MidiController::dValToInt(double)'
collect2: error: ld returned 1 exit status
make[2]: *** [muse/muse3] Error 1
make[1]: *** [muse/CMakeFiles/muse.dir/all] Error 2
make: *** [all] Error 2
lg,
Michael
Post by Tim
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() +
viewportMargins().top() +
^
[ 66%]
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [muse/widgets/CMakeFiles/widgets.dir/text_edit.o] Error 1
make[2]: *** Waiting for unfinished jobs....
I have had only a brief look and didn't find a suspect, any idea?
lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to stereo ->
crashes soon after.
In AudioTrack::copyData(): In two sections concerning '2ch' -> '1ch'
Move 'sp' inside channel loop. Was allowed to increment beyond, into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's outputs
were routed to same jack port.
------------------------------------------------------------
------------------
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
------------------------------------------------------------
------------------
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
Tim
2017-04-09 20:40:01 UTC
Permalink
Post by Robert Jonsson
Hi guys,
sorry being late to the show. I had this problem also, on one
computer, not on the other, same distro,.. kubuntu 16.10, but
apparently with some difference.
Your latest checkin fixed it.
The other computer had another issue, I had to add curly braces in
astrip.cpp, the compiler complained that indentation was not right.
This is probably a warning and I'm guessing I'm compiling with debug
which defines -Werror to treat warnings as errors.
Ha! I'm always in debug mode.
I notice in release mode, like other apps, there a
heck of a lot of silly complaints about unused
return values - well duh, of course I'm not using them,
I wrote it that way, ha ha...

OK that's very weird spamatica.
Talk about a Draconian compiler -
complaining about indentation!

I've pushed the fix.
Plus, just in case, I put QString() around that QChar
'cause I noticed there didn't seem to be a
QString::operator+(QChar), so just to be clear about it.

Thanks for your help guys.
Lemme know if anything else, I'm here.

Should... release... RC2... sometime... this year... eh?
Tim.
Post by Robert Jonsson
--- a/muse3/muse/mixer/astrip.cpp
+++ b/muse3/muse/mixer/astrip.cpp
@@ -274,14 +274,14 @@void AudioComponentRack::newComponent(
ComponentDescriptor* desc, const Componen
{
{
- if(d->_compactKnob->specialValueText().isEmpty())
+ if(d->_compactKnob->specialValueText().isEmpty()) {
d->_compactKnob->setSpecialValueText(QString('-') +
QChar(0x221e)); // The infinity character
-
- connect(d->_compactKnob,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
- connect(d->_compactKnob,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
- connect(d->_compactKnob, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
- connect(d->_compactKnob, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
- connect(d->_compactKnob,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
+ }
+ connect(d->_compactKnob,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
+ connect(d->_compactKnob,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
+ connect(d->_compactKnob, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
+ connect(d->_compactKnob, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
+ connect(d->_compactKnob,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
}
break;
}
@@ -313,14 +313,14 @@void AudioComponentRack::newComponent(
ComponentDescriptor* desc, const Componen
{
{
- if(d->_compactSlider->specialValueText().isEmpty())
+ if(d->_compactSlider->specialValueText().isEmpty()) {
d->_compactSlider->setSpecialValueText(QString('-') +
QChar(0x221e)); // The infinity character
-
- connect(d->_compactSlider,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
- connect(d->_compactSlider,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
- connect(d->_compactSlider, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
- connect(d->_compactSlider, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
- connect(d->_compactSlider,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
+ }
+ connect(d->_compactSlider,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
+ connect(d->_compactSlider,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
+ connect(d->_compactSlider, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
+ connect(d->_compactSlider, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
+ connect(d->_compactSlider,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
}
break;
}
~
I didn't check it in, are the braces at the right place?
Regards,
Robert
Hi, sorry about that, I always struggle with the
'inline' keyword.
Strange it compiles here. Maybe I still missed something?
Try it now, I moved the function body into the header.
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
Post by Tim
Hi, there was a dependency on Qt 5.5 in there.
I guess you aren't running that recent a version?
Ubuntu Studio 14.04 uses 5.2.1
Post by Tim
Try it now, I removed the line. That control isn't
used at all yet anyway so it doesn't matter.
But maybe you will get more errors...
[100%] Building CXX object muse/CMakeFiles/muse.dir/main.o
Linking CXX executable muse3
libmuse_core.so: undefined reference to
`MusECore::MidiController::dValToInt(double)'
collect2: error: ld returned 1 exit status
make[2]: *** [muse/muse3] Error 1
make[1]: *** [muse/CMakeFiles/muse.dir/all] Error 2
make: *** [all] Error 2
lg,
Michael
Post by Tim
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
member function ‘virtual QSize MusEGui::TextEdit::sizeHint()
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() +
viewportMargins().top() +
^
[ 66%]
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: *** [muse/widgets/CMakeFiles/widgets.dir/text_edit.o]
Error 1
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
make[2]: *** Waiting for unfinished jobs....
I have had only a brief look and didn't find a suspect, any idea?
lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to
stereo ->
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
crashes soon after.
In AudioTrack::copyData(): In two sections concerning
'2ch' ->
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
'1ch'
Move 'sp' inside channel loop. Was allowed to increment
beyond,
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's
outputs
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
were routed to same jack port.
------------------------------------------------------------------------------
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
<https://lists.sourceforge.net/lists/listinfo/lmuse-developer>
------------------------------------------------------------------------------
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
<https://lists.sourceforge.net/lists/listinfo/lmuse-developer>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
<https://lists.sourceforge.net/lists/listinfo/lmuse-developer>
Tim
2017-04-09 20:57:32 UTC
Permalink
FYI I updated my audio_convert branch as well,
although not with these three recent 'quickies',
hang in there, will do...

The branch still works.

On this new PC, I loaded up several of my old
songs from CD#2 (2006), which was recorded at
48000Hz on a SoundBlaster Live!, way back
when I was into that onboard DSP and so on.

These days I run at 44100Hz.

The songs contain dozens of tracks, and takes
and retakes, kept for posterity sake.

Without doing much except setting up my midi device,
the songs play, with reasonable DSP usage.
I noticed a few mistakes with 'split' parts and so on,
but it works. I'll try to get back into that branch.
A lot of work went into it, there are other
important 'fixes', or improvements, in there as well.
Not that it will go into master any time real soon,
there's much more to do.
Let me put it this way: So far, it COULD go into master
and the automatic sample-rate conversion will
'just work' for everyone, and I could sort of disable
the other stretching/shifting stuff for now. We'll see...

Tim.
Post by Tim
Post by Robert Jonsson
Hi guys,
sorry being late to the show. I had this problem also, on one
computer, not on the other, same distro,.. kubuntu 16.10, but
apparently with some difference.
Your latest checkin fixed it.
The other computer had another issue, I had to add curly braces in
astrip.cpp, the compiler complained that indentation was not right.
This is probably a warning and I'm guessing I'm compiling with debug
which defines -Werror to treat warnings as errors.
Ha! I'm always in debug mode.
I notice in release mode, like other apps, there a
heck of a lot of silly complaints about unused
return values - well duh, of course I'm not using them,
I wrote it that way, ha ha...
OK that's very weird spamatica.
Talk about a Draconian compiler -
complaining about indentation!
I've pushed the fix.
Plus, just in case, I put QString() around that QChar
'cause I noticed there didn't seem to be a
QString::operator+(QChar), so just to be clear about it.
Thanks for your help guys.
Lemme know if anything else, I'm here.
Should... release... RC2... sometime... this year... eh?
Tim.
Post by Robert Jonsson
--- a/muse3/muse/mixer/astrip.cpp
+++ b/muse3/muse/mixer/astrip.cpp
@@ -274,14 +274,14 @@void AudioComponentRack::newComponent(
ComponentDescriptor* desc, const Componen
{
{
- if(d->_compactKnob->specialValueText().isEmpty())
+ if(d->_compactKnob->specialValueText().isEmpty()) {
d->_compactKnob->setSpecialValueText(QString('-') +
QChar(0x221e)); // The infinity character
-
- connect(d->_compactKnob,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
- connect(d->_compactKnob,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
- connect(d->_compactKnob, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
- connect(d->_compactKnob, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
- connect(d->_compactKnob,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
+ }
+ connect(d->_compactKnob,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
+ connect(d->_compactKnob,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
+ connect(d->_compactKnob, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
+ connect(d->_compactKnob, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
+ connect(d->_compactKnob,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
}
break;
}
@@ -313,14 +313,14 @@void AudioComponentRack::newComponent(
ComponentDescriptor* desc, const Componen
{
{
- if(d->_compactSlider->specialValueText().isEmpty())
+ if(d->_compactSlider->specialValueText().isEmpty()) {
d->_compactSlider->setSpecialValueText(QString('-') +
QChar(0x221e)); // The infinity character
-
- connect(d->_compactSlider,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
- connect(d->_compactSlider,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
- connect(d->_compactSlider, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
- connect(d->_compactSlider, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
- connect(d->_compactSlider,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
+ }
+ connect(d->_compactSlider,
SIGNAL(valueStateChanged(double,bool,int,int)),
SLOT(auxChanged(double,bool,int,int)));
+ connect(d->_compactSlider,
SIGNAL(sliderMoved(double,int,bool)), SLOT(auxMoved(double,int,bool)));
+ connect(d->_compactSlider, SIGNAL(sliderPressed(double,
int)), SLOT(auxPressed(double, int)));
+ connect(d->_compactSlider, SIGNAL(sliderReleased(double,
int)), SLOT(auxReleased(double, int)));
+ connect(d->_compactSlider,
SIGNAL(sliderRightClicked(QPoint,int)),
SLOT(auxRightClicked(QPoint,int)));
}
break;
}
~
I didn't check it in, are the braces at the right place?
Regards,
Robert
Hi, sorry about that, I always struggle with the
'inline' keyword.
Strange it compiles here. Maybe I still missed something?
Try it now, I moved the function body into the header.
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
Post by Tim
Hi, there was a dependency on Qt 5.5 in there.
I guess you aren't running that recent a version?
Ubuntu Studio 14.04 uses 5.2.1
Post by Tim
Try it now, I removed the line. That control isn't
used at all yet anyway so it doesn't matter.
But maybe you will get more errors...
[100%] Building CXX object muse/CMakeFiles/muse.dir/main.o
Linking CXX executable muse3
libmuse_core.so: undefined reference to
`MusECore::MidiController::dValToInt(double)'
collect2: error: ld returned 1 exit status
make[2]: *** [muse/muse3] Error 1
make[1]: *** [muse/CMakeFiles/muse.dir/all] Error 2
make: *** [all] Error 2
lg,
Michael
Post by Tim
Thanks.
Tim.
Post by Michael Oswald
Hi Time,
/home/oswald/Projects/music/muse/muse3/muse/widgets/text_edit.cpp: In
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
member function ‘virtual QSize MusEGui::TextEdit::sizeHint()
error: ‘viewportMargins’ was not declared in this scope
viewportMargins().bottom() +
viewportMargins().top() +
^
[ 66%]
warning: control reaches end of non-void function [-Wreturn-type]
}
^
make[2]: ***
[muse/widgets/CMakeFiles/widgets.dir/text_edit.o] Error 1
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
make[2]: *** Waiting for unfinished jobs....
I have had only a brief look and didn't find a suspect, any idea?
lg,
Michael
Post by Tim
Oops!
5 minutes later, in foolish confidence, I simply clicked
File > New > Audio.med > change wave track 1 to stereo.
Crashes soon after.
Took two days to track this puppy down.
Insidious silent data corruption. And of course my fault,
in the worst possible place, the low-level audio engine.
This crash bug is about about one year old.
If you experienced any crashes simply by changing
an audio track from mono <> stereo, this was likely it.
Tim.
- Crash fix: File > New > Audio.med > change wave track 1 to
stereo ->
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
crashes soon after.
In AudioTrack::copyData(): In two sections concerning
'2ch' ->
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
'1ch'
Move 'sp' inside channel loop. Was allowed to increment
beyond,
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
into
other variable data, causing silent corruption.
- Also, fixed template "audo.med": Both audio output track's
outputs
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
were routed to same jack port.
------------------------------------------------------------------------------
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Post by Tim
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
<https://lists.sourceforge.net/lists/listinfo/lmuse-developer>
------------------------------------------------------------------------------
Post by Michael Oswald
Post by Tim
Post by Michael Oswald
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
<https://lists.sourceforge.net/lists/listinfo/lmuse-developer>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
<https://lists.sourceforge.net/lists/listinfo/lmuse-developer>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Lmuse-developer mailing list
https://lists.sourceforge.net/lists/listinfo/lmuse-developer
Tim
2017-04-10 04:54:07 UTC
Permalink
Slight tweak in git master: Don't allow the strips to gain focus.

Seemed like a good idea but no, the buttons kept stealing
the focus from the arranger canvas. Annoying.

Seems just fine now. Better.

Also, perhaps I should make it so that the knobs themselves
do not grab focus if you simply adjust them, but
clicking inside their labels will.
That is what the volume slider does now, after I removed
the strip focus. It used to redirect focus to the volume
label box, but now it will not steal your focus.

Tim.

Loading...