Merge branch 'bends' of https://github.com/Igevorse/MuseScore into Igevorse-bends
This commit is contained in:
commit
c7c7a180a4
14 changed files with 811 additions and 1 deletions
|
@ -38,6 +38,7 @@ Bend::Bend(Score* s)
|
|||
: Element(s)
|
||||
{
|
||||
setFlags(ElementFlag::MOVABLE | ElementFlag::SELECTABLE);
|
||||
setPlayBend(true);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
@ -259,6 +260,7 @@ void Bend::write(Xml& xml) const
|
|||
xml.tagE(QString("point time=\"%1\" pitch=\"%2\" vibrato=\"%3\"")
|
||||
.arg(v.time).arg(v.pitch).arg(v.vibrato));
|
||||
}
|
||||
writeProperty(xml, P_ID::PLAY_BEND);
|
||||
Element::writeProperties(xml);
|
||||
xml.etag();
|
||||
}
|
||||
|
@ -278,10 +280,58 @@ void Bend::read(XmlReader& e)
|
|||
_points.append(pv);
|
||||
e.readNext();
|
||||
}
|
||||
else if (e.name() == "playBend") {
|
||||
setPlayBend(e.readBool());
|
||||
}
|
||||
else if (!Element::readProperties(e))
|
||||
e.unknown();
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// getProperty
|
||||
//---------------------------------------------------------
|
||||
|
||||
QVariant Bend::getProperty(P_ID propertyId) const
|
||||
{
|
||||
switch (propertyId) {
|
||||
case P_ID::PLAY_BEND:
|
||||
return bool(playBend());
|
||||
default:
|
||||
return Element::getProperty(propertyId);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// setProperty
|
||||
//---------------------------------------------------------
|
||||
|
||||
bool Bend::setProperty(P_ID propertyId, const QVariant& v)
|
||||
{
|
||||
switch (propertyId) {
|
||||
case P_ID::PLAY_BEND:
|
||||
setPlayBend(v.toBool());
|
||||
break;
|
||||
default:
|
||||
return Element::setProperty(propertyId, v);
|
||||
}
|
||||
score()->setLayoutAll(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// propertyDefault
|
||||
//---------------------------------------------------------
|
||||
|
||||
QVariant Bend::propertyDefault(P_ID propertyId) const
|
||||
{
|
||||
switch (propertyId) {
|
||||
case P_ID::PLAY_BEND:
|
||||
return true;
|
||||
default:
|
||||
return Element::propertyDefault(propertyId);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@ class Bend : public Element {
|
|||
qreal _lw;
|
||||
QPointF notePos;
|
||||
qreal noteWidth;
|
||||
bool _playBend;
|
||||
|
||||
public:
|
||||
Bend(Score* s);
|
||||
|
@ -43,6 +44,13 @@ class Bend : public Element {
|
|||
QList<PitchValue>& points() { return _points; }
|
||||
const QList<PitchValue>& points() const { return _points; }
|
||||
void setPoints(const QList<PitchValue>& p) { _points = p; }
|
||||
bool playBend() const { return _playBend; }
|
||||
void setPlayBend(bool v) { _playBend = v; }
|
||||
|
||||
// property methods
|
||||
virtual QVariant getProperty(P_ID propertyId) const override;
|
||||
virtual bool setProperty(P_ID propertyId, const QVariant&) override;
|
||||
virtual QVariant propertyDefault(P_ID) const override;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -228,6 +228,7 @@ static const PropertyData propertyList[] = {
|
|||
{ P_ID::TRACK, false, 0, P_TYPE::INT },
|
||||
|
||||
{ P_ID::GLISSANDO_STYLE, false, "glissandoStyle", P_TYPE::GLISSANDO_STYLE},
|
||||
{ P_ID::PLAY_BEND, false, "playBend", P_TYPE::BOOL},
|
||||
{ P_ID::END, false, "", P_TYPE::INT }
|
||||
};
|
||||
|
||||
|
|
|
@ -222,6 +222,7 @@ enum class P_ID : unsigned char {
|
|||
TRACK,
|
||||
|
||||
GLISSANDO_STYLE,
|
||||
PLAY_BEND,
|
||||
END
|
||||
};
|
||||
|
||||
|
|
|
@ -245,6 +245,8 @@ static void collectNote(EventMap* events, int channel, const Note* note, int vel
|
|||
if (e == 0 || e->type() != Element::Type::BEND)
|
||||
continue;
|
||||
Bend* bend = static_cast<Bend*>(e);
|
||||
if (!bend->playBend())
|
||||
break;
|
||||
const QList<PitchValue>& points = bend->points();
|
||||
int pitchSize = points.size();
|
||||
|
||||
|
|
|
@ -123,6 +123,7 @@ QT5_WRAP_UI (ui_headers
|
|||
inspector/inspector_empty.ui
|
||||
inspector/inspector_fret.ui
|
||||
inspector/inspector_break.ui
|
||||
inspector/inspector_bend.ui
|
||||
${SCRIPT_UI}
|
||||
)
|
||||
|
||||
|
|
|
@ -244,6 +244,9 @@ void Inspector::setElements(const QList<Element*>& l)
|
|||
case Element::Type::LAYOUT_BREAK:
|
||||
ie = new InspectorBreak(this);
|
||||
break;
|
||||
case Element::Type::BEND:
|
||||
ie = new InspectorBend(this);
|
||||
break;
|
||||
default:
|
||||
if (_element->isText())
|
||||
ie = new InspectorText(this);
|
||||
|
@ -628,6 +631,23 @@ InspectorAccidental::InspectorAccidental(QWidget* parent)
|
|||
mapSignals();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// InspectorBend
|
||||
//---------------------------------------------------------
|
||||
|
||||
InspectorBend::InspectorBend(QWidget* parent)
|
||||
: InspectorBase(parent)
|
||||
{
|
||||
e.setupUi(addWidget());
|
||||
g.setupUi(addWidget());
|
||||
|
||||
iList = {
|
||||
{ P_ID::PLAY_BEND, 0, 0, g.playBend, g.resetPlayBend }
|
||||
};
|
||||
|
||||
mapSignals();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// InspectorClef
|
||||
//---------------------------------------------------------
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include "inspectorBase.h"
|
||||
#include "ui_inspector_element.h"
|
||||
#include "ui_inspector_bend.h"
|
||||
#include "ui_inspector_break.h"
|
||||
#include "ui_inspector_vbox.h"
|
||||
#include "ui_inspector_tbox.h"
|
||||
|
@ -241,6 +242,20 @@ class InspectorAccidental : public InspectorBase {
|
|||
InspectorAccidental(QWidget* parent);
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// InspectorBend
|
||||
//---------------------------------------------------------
|
||||
|
||||
class InspectorBend : public InspectorBase {
|
||||
Q_OBJECT
|
||||
|
||||
UiInspectorElement e;
|
||||
Ui::InspectorBend g;
|
||||
|
||||
public:
|
||||
InspectorBend(QWidget* parent);
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
// InspectorTempoText
|
||||
//---------------------------------------------------------
|
||||
|
|
113
mscore/inspector/inspector_bend.ui
Normal file
113
mscore/inspector/inspector_bend.ui
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>InspectorBend</class>
|
||||
<widget class="QWidget" name="InspectorBend">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>270</width>
|
||||
<height>58</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="accessibleName">
|
||||
<string>Glissando Inspector</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="elementName">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="accessibleName">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Bend</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>6</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::HLine</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>2</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="leftMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="horizontalSpacing">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="playBend">
|
||||
<property name="text">
|
||||
<string>Play</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QToolButton" name="resetPlayBend">
|
||||
<property name="accessibleName">
|
||||
<string>Reset Play value</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
BIN
mtest/libmscore/midi/testBends1-ref.mid
Normal file
BIN
mtest/libmscore/midi/testBends1-ref.mid
Normal file
Binary file not shown.
226
mtest/libmscore/midi/testBends1.mscx
Normal file
226
mtest/libmscore/midi/testBends1.mscx
Normal file
|
@ -0,0 +1,226 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="2.06">
|
||||
<programVersion>2.1.0</programVersion>
|
||||
<programRevision>d8321d9</programRevision>
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Synthesizer>
|
||||
</Synthesizer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<lastSystemFillLimit>0</lastSystemFillLimit>
|
||||
<page-layout>
|
||||
<page-height>1683.36</page-height>
|
||||
<page-width>1190.88</page-width>
|
||||
<page-margins type="even">
|
||||
<left-margin>56.6929</left-margin>
|
||||
<right-margin>56.6929</right-margin>
|
||||
<top-margin>56.6929</top-margin>
|
||||
<bottom-margin>113.386</bottom-margin>
|
||||
</page-margins>
|
||||
<page-margins type="odd">
|
||||
<left-margin>56.6929</left-margin>
|
||||
<right-margin>56.6929</right-margin>
|
||||
<top-margin>56.6929</top-margin>
|
||||
<bottom-margin>113.386</bottom-margin>
|
||||
</page-margins>
|
||||
</page-layout>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="creationDate">2015-06-11</metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="platform">Linux</metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle"></metaTag>
|
||||
<PageList>
|
||||
<Page>
|
||||
<System>
|
||||
</System>
|
||||
</Page>
|
||||
</PageList>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<defaultClef>G8vb</defaultClef>
|
||||
<bracket type="-1" span="0"/>
|
||||
</Staff>
|
||||
<trackName>Electric Guitar</trackName>
|
||||
<Instrument>
|
||||
<longName>Electric Guitar</longName>
|
||||
<shortName>El. Guit.</shortName>
|
||||
<trackName>Electric Guitar</trackName>
|
||||
<minPitchP>40</minPitchP>
|
||||
<maxPitchP>86</maxPitchP>
|
||||
<minPitchA>40</minPitchA>
|
||||
<maxPitchA>86</maxPitchA>
|
||||
<instrumentId>pluck.guitar.electric</instrumentId>
|
||||
<clef>G8vb</clef>
|
||||
<StringData>
|
||||
<frets>24</frets>
|
||||
<string>40</string>
|
||||
<string>45</string>
|
||||
<string>50</string>
|
||||
<string>55</string>
|
||||
<string>59</string>
|
||||
<string>64</string>
|
||||
</StringData>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="27"/>
|
||||
<synti>Fluid</synti>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<Measure number="1">
|
||||
<KeySig>
|
||||
<accidental>0</accidental>
|
||||
</KeySig>
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="2">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="10" pitch="100" vibrato="0"/>
|
||||
<point time="20" pitch="100" vibrato="0"/>
|
||||
<point time="30" pitch="0" vibrato="0"/>
|
||||
<point time="60" pitch="0" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="10" pitch="100" vibrato="0"/>
|
||||
<point time="20" pitch="100" vibrato="0"/>
|
||||
<point time="30" pitch="0" vibrato="0"/>
|
||||
<point time="40" pitch="0" vibrato="0"/>
|
||||
<point time="50" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="5">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="100" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="30" pitch="0" vibrato="0"/>
|
||||
<point time="60" pitch="0" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="6">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="5" pitch="50" vibrato="0"/>
|
||||
<point time="10" pitch="100" vibrato="0"/>
|
||||
<point time="15" pitch="125" vibrato="0"/>
|
||||
<point time="20" pitch="25" vibrato="0"/>
|
||||
<point time="25" pitch="275" vibrato="0"/>
|
||||
<point time="30" pitch="25" vibrato="0"/>
|
||||
<point time="35" pitch="275" vibrato="0"/>
|
||||
<point time="40" pitch="25" vibrato="0"/>
|
||||
<point time="45" pitch="275" vibrato="0"/>
|
||||
<point time="50" pitch="75" vibrato="0"/>
|
||||
<point time="55" pitch="225" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
BIN
mtest/libmscore/midi/testBends2-ref.mid
Normal file
BIN
mtest/libmscore/midi/testBends2-ref.mid
Normal file
Binary file not shown.
371
mtest/libmscore/midi/testBends2.mscx
Normal file
371
mtest/libmscore/midi/testBends2.mscx
Normal file
|
@ -0,0 +1,371 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<museScore version="2.06">
|
||||
<programVersion>2.1.0</programVersion>
|
||||
<programRevision>de3a7c2</programRevision>
|
||||
<Score>
|
||||
<LayerTag id="0" tag="default"></LayerTag>
|
||||
<currentLayer>0</currentLayer>
|
||||
<Synthesizer>
|
||||
</Synthesizer>
|
||||
<Division>480</Division>
|
||||
<Style>
|
||||
<lastSystemFillLimit>0</lastSystemFillLimit>
|
||||
<page-layout>
|
||||
<page-height>1683.36</page-height>
|
||||
<page-width>1190.88</page-width>
|
||||
<page-margins type="even">
|
||||
<left-margin>56.6929</left-margin>
|
||||
<right-margin>56.6929</right-margin>
|
||||
<top-margin>56.6929</top-margin>
|
||||
<bottom-margin>113.386</bottom-margin>
|
||||
</page-margins>
|
||||
<page-margins type="odd">
|
||||
<left-margin>56.6929</left-margin>
|
||||
<right-margin>56.6929</right-margin>
|
||||
<top-margin>56.6929</top-margin>
|
||||
<bottom-margin>113.386</bottom-margin>
|
||||
</page-margins>
|
||||
</page-layout>
|
||||
<Spatium>1.76389</Spatium>
|
||||
</Style>
|
||||
<showInvisible>1</showInvisible>
|
||||
<showUnprintable>1</showUnprintable>
|
||||
<showFrames>1</showFrames>
|
||||
<showMargins>0</showMargins>
|
||||
<metaTag name="arranger"></metaTag>
|
||||
<metaTag name="composer"></metaTag>
|
||||
<metaTag name="copyright"></metaTag>
|
||||
<metaTag name="creationDate">2015-06-11</metaTag>
|
||||
<metaTag name="lyricist"></metaTag>
|
||||
<metaTag name="movementNumber"></metaTag>
|
||||
<metaTag name="movementTitle"></metaTag>
|
||||
<metaTag name="platform">Linux</metaTag>
|
||||
<metaTag name="poet"></metaTag>
|
||||
<metaTag name="source"></metaTag>
|
||||
<metaTag name="translator"></metaTag>
|
||||
<metaTag name="workNumber"></metaTag>
|
||||
<metaTag name="workTitle"></metaTag>
|
||||
<PageList>
|
||||
<Page>
|
||||
<System>
|
||||
</System>
|
||||
</Page>
|
||||
</PageList>
|
||||
<Part>
|
||||
<Staff id="1">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<defaultClef>G8vb</defaultClef>
|
||||
<bracket type="-1" span="0"/>
|
||||
</Staff>
|
||||
<trackName>Electric Guitar</trackName>
|
||||
<Instrument>
|
||||
<longName>Electric Guitar</longName>
|
||||
<shortName>El. Guit.</shortName>
|
||||
<trackName>Electric Guitar</trackName>
|
||||
<minPitchP>40</minPitchP>
|
||||
<maxPitchP>86</maxPitchP>
|
||||
<minPitchA>40</minPitchA>
|
||||
<maxPitchA>86</maxPitchA>
|
||||
<instrumentId>pluck.guitar.electric</instrumentId>
|
||||
<clef>G8vb</clef>
|
||||
<StringData>
|
||||
<frets>24</frets>
|
||||
<string>40</string>
|
||||
<string>45</string>
|
||||
<string>50</string>
|
||||
<string>55</string>
|
||||
<string>59</string>
|
||||
<string>64</string>
|
||||
</StringData>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="27"/>
|
||||
<synti>Fluid</synti>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Part>
|
||||
<Staff id="2">
|
||||
<StaffType group="pitched">
|
||||
<name>stdNormal</name>
|
||||
</StaffType>
|
||||
<defaultClef>G8vb</defaultClef>
|
||||
<bracket type="-1" span="0"/>
|
||||
</Staff>
|
||||
<trackName>Acoustic Guitar</trackName>
|
||||
<Instrument>
|
||||
<longName>Acoustic Guitar</longName>
|
||||
<shortName>Guit.</shortName>
|
||||
<trackName>Acoustic Guitar</trackName>
|
||||
<minPitchP>40</minPitchP>
|
||||
<maxPitchP>83</maxPitchP>
|
||||
<minPitchA>40</minPitchA>
|
||||
<maxPitchA>83</maxPitchA>
|
||||
<instrumentId>pluck.guitar.acoustic</instrumentId>
|
||||
<clef>G8vb</clef>
|
||||
<StringData>
|
||||
<frets>19</frets>
|
||||
<string>40</string>
|
||||
<string>45</string>
|
||||
<string>50</string>
|
||||
<string>55</string>
|
||||
<string>59</string>
|
||||
<string>64</string>
|
||||
</StringData>
|
||||
<Articulation>
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccatissimo">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>33</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="staccato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>50</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="portato">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="tenuto">
|
||||
<velocity>100</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="marcato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>67</gateTime>
|
||||
</Articulation>
|
||||
<Articulation name="sforzato">
|
||||
<velocity>120</velocity>
|
||||
<gateTime>100</gateTime>
|
||||
</Articulation>
|
||||
<Channel>
|
||||
<program value="25"/>
|
||||
<synti>Fluid</synti>
|
||||
</Channel>
|
||||
</Instrument>
|
||||
</Part>
|
||||
<Staff id="1">
|
||||
<Measure number="1">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="2">
|
||||
<Chord>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<pitch>64</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<pitch>67</pitch>
|
||||
<tpc>15</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
<playBend>0</playBend>
|
||||
</Bend>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>eighth</durationType>
|
||||
<Note>
|
||||
<pitch>62</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>quarter</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>eighth</durationType>
|
||||
<Note>
|
||||
<pitch>65</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>eighth</durationType>
|
||||
<Note>
|
||||
<pitch>69</pitch>
|
||||
<tpc>17</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<Chord>
|
||||
<durationType>eighth</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="50" vibrato="0"/>
|
||||
<point time="20" pitch="150" vibrato="0"/>
|
||||
<point time="25" pitch="0" vibrato="0"/>
|
||||
<point time="30" pitch="250" vibrato="0"/>
|
||||
<point time="35" pitch="25" vibrato="0"/>
|
||||
<point time="40" pitch="250" vibrato="0"/>
|
||||
<point time="45" pitch="50" vibrato="0"/>
|
||||
<point time="50" pitch="275" vibrato="0"/>
|
||||
<point time="55" pitch="200" vibrato="0"/>
|
||||
<point time="60" pitch="150" vibrato="0"/>
|
||||
</Bend>
|
||||
<Tie id="2">
|
||||
</Tie>
|
||||
<pitch>69</pitch>
|
||||
<tpc>17</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<endSpanner id="2"/>
|
||||
<pitch>69</pitch>
|
||||
<tpc>17</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
<Staff id="2">
|
||||
<Measure number="1">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
<playBend>0</playBend>
|
||||
</Bend>
|
||||
<pitch>50</pitch>
|
||||
<tpc>16</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="2">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="15" pitch="100" vibrato="0"/>
|
||||
<point time="60" pitch="100" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>53</pitch>
|
||||
<tpc>13</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="3">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<Bend>
|
||||
<point time="0" pitch="0" vibrato="0"/>
|
||||
<point time="10" pitch="50" vibrato="0"/>
|
||||
<point time="20" pitch="50" vibrato="0"/>
|
||||
<point time="30" pitch="0" vibrato="0"/>
|
||||
<point time="40" pitch="0" vibrato="0"/>
|
||||
<point time="50" pitch="50" vibrato="0"/>
|
||||
<point time="60" pitch="50" vibrato="0"/>
|
||||
</Bend>
|
||||
<pitch>52</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
</Measure>
|
||||
<Measure number="4">
|
||||
<Chord>
|
||||
<durationType>whole</durationType>
|
||||
<Note>
|
||||
<pitch>52</pitch>
|
||||
<tpc>18</tpc>
|
||||
</Note>
|
||||
</Chord>
|
||||
<BarLine>
|
||||
<subtype>end</subtype>
|
||||
<span>1</span>
|
||||
</BarLine>
|
||||
</Measure>
|
||||
</Staff>
|
||||
</Score>
|
||||
</museScore>
|
|
@ -53,7 +53,9 @@ class TestMidi : public QObject, public MTest
|
|||
void midi03();
|
||||
void events_data();
|
||||
void events();
|
||||
void midiPortExport() { midiExportTestRef("testMidiPort"); }
|
||||
void midiBendsExport1() { midiExportTestRef("testBends1"); }
|
||||
void midiBendsExport2() { midiExportTestRef("testBends2"); } // Play property test
|
||||
void midiPortExport() { midiExportTestRef("testMidiPort"); }
|
||||
};
|
||||
|
||||
//---------------------------------------------------------
|
||||
|
|
Loading…
Reference in a new issue