MuseScore  3.4
Music composition and notation
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Ms::GuitarPro Class Referenceabstract

#include <importgtp.h>

Inheritance diagram for Ms::GuitarPro:
Inheritance graph
[legend]
Collaboration diagram for Ms::GuitarPro:
Collaboration graph
[legend]

Public Types

enum  GuitarProError : char { GuitarProError::GP_NO_ERROR, GuitarProError::GP_UNKNOWN_FORMAT, GuitarProError::GP_EOF, GuitarProError::GP_BAD_NUMBER_OF_STRINGS }
 

Public Member Functions

void setTempo (int n, Measure *measure)
 
void initGuitarProDrumset ()
 
 GuitarPro (MasterScore *, int v)
 
virtual ~GuitarPro ()
 
virtual bool read (QFile *)=0
 
QString error (GuitarProError n) const
 

Public Attributes

std::vector< std::string > tunings
 
QString title
 
QString subtitle
 
QString artist
 
QString album
 
QString composer
 
QString transcriber
 
QString instructions
 
QStringList comments
 
GpTrack channelDefaults [GP_MAX_TRACK_NUMBER *2]
 
int staves
 
int measures
 
QList< GpBarbars
 

Protected Member Functions

void skip (qint64 len)
 
void read (void *p, qint64 len)
 
int readUChar ()
 
int readChar ()
 
QString readPascalString (int)
 
QString readWordPascalString ()
 
QString readBytePascalString ()
 
int readInt ()
 
QString readDelphiString ()
 
void readVolta (GPVolta *, Measure *)
 
virtual void readBend (Note *)
 
virtual bool readMixChange (Measure *measure)
 
virtual int readBeatEffects (int track, Segment *)=0
 
void readLyrics ()
 
void readChannels ()
 
void setTuplet (Tuplet *tuplet, int tuple)
 
void setupTupletStyle (Tuplet *tuplet)
 
Fraction len2fraction (int len)
 
void addDynamic (Note *, int d)
 
void createMeasures ()
 
void applyBeatEffects (Chord *, int beatEffects)
 
void readTremoloBar (int track, Segment *)
 
void readChord (Segment *seg, int track, int numStrings, QString name, bool gpHeader)
 
void restsForEmptyBeats (Segment *seg, Measure *measure, ChordRest *cr, Fraction &l, int track, const Fraction &tick)
 
void createSlur (bool hasSlur, int staffIdx, ChordRest *cr)
 
void createOttava (bool hasOttava, int track, ChordRest *cr, QString value)
 
void createSlide (int slide, ChordRest *cr, int staffIdx, Note *note=nullptr)
 
void createCrecDim (int staffIdx, int track, const Fraction &tick, bool crec)
 
TextaddTextToNote (QString, Align, Note *)
 
void addPalmMute (Note *)
 
void addLetRing (Note *)
 
void addVibrato (Note *, Vibrato::Type type=Vibrato::Type::GUITAR_VIBRATO)
 
void addTap (Note *)
 
void addSlap (Note *)
 
void addPop (Note *)
 
void createTuningString (int strings, int tuning[])
 

Protected Attributes

std::list< Note * > slideList
 
int version
 
int key { 0 }
 
Segmentlast_segment { nullptr }
 
Measurelast_measure { nullptr }
 
int last_tempo { -1 }
 
QMap< int, QList< GPFermata > * > fermatas
 
std::vector< Ottava * > ottava
 
Hairpin ** hairpins
 
MasterScorescore
 
QFile * f
 
int curPos
 
int previousTempo
 
int previousDynamic
 
std::vector< int > ottavaFound
 
std::vector< QString > ottavaValue
 
std::map< int, std::pair< int, bool > > tempoMap
 
int tempo
 
QMap< int, int > slides
 
GPLyrics gpLyrics
 
int slide
 
int voltaSequence
 
QTextCodec * _codec { 0 }
 
Slur ** slurs { nullptr }
 
std::vector< PalmMute * > _palmMutes
 
std::vector< LetRing * > _letRings
 
std::vector< Vibrato * > _vibratos
 

Static Protected Attributes

static const uchar EFFECT_BEND = 0x1
 
static const uchar EFFECT_STACATTO = 0x1
 
static const uchar EFFECT_HAMMER = 0x2
 
static const uchar EFFECT_PALM_MUTE = 0x2
 
static const uchar EFFECT_TREMOLO = 0x4
 
static const uchar EFFECT_LET_RING = 0x8
 
static const uchar EFFECT_SLIDE_OLD = 0x4
 
static const uchar EFFECT_SLIDE = 0x8
 
static const uchar EFFECT_GRACE = 0x10
 
static const uchar EFFECT_ARTIFICIAL_HARMONIC = 0x10
 
static const uchar EFFECT_TRILL = 0x20
 
static const uchar EFFECT_GHOST = 0x01
 
static const uchar ARPEGGIO_UP = 0xa
 
static const uchar ARPEGGIO_DOWN = 0x2
 
static const uchar NOTE_GHOST = 0x04
 
static const uchar NOTE_DEAD = 0x20
 
static const uchar NOTE_DYNAMIC = 0x10
 
static const uchar NOTE_FRET = 0x20
 
static const uchar NOTE_FINGERING = 0x80
 
static const uchar NOTE_MARCATO = 0x02
 
static const uchar NOTE_SFORZATO = 0x40
 
static const uchar NOTE_SLUR = 0x8
 
static const uchar NOTE_APPOGIATURA = 0x02
 
static const uchar BEAT_VIBRATO_TREMOLO = 0x02
 
static const uchar BEAT_FADE = 0x10
 
static const uchar BEAT_EFFECT = 0x20
 
static const uchar BEAT_TREMOLO = 0x04
 
static const uchar BEAT_ARPEGGIO = 0x40
 
static const uchar BEAT_STROKE_DIR = 0x02
 
static const uchar BEAT_DOTTED = 0x01
 
static const uchar BEAT_PAUSE = 0x40
 
static const uchar BEAT_TUPLET = 0x20
 
static const uchar BEAT_LYRICS = 0x4
 
static const uchar BEAT_EFFECTS = 0x8
 
static const uchar BEAT_MIX_CHANGE = 0x10
 
static const uchar BEAT_CHORD = 0x2
 
static const uchar SCORE_TIMESIG_NUMERATOR = 0x1
 
static const uchar SCORE_TIMESIG_DENOMINATOR = 0x2
 
static const uchar SCORE_REPEAT_START = 0x4
 
static const uchar SCORE_REPEAT_END = 0x8
 
static const uchar SCORE_MARKER = 0x20
 
static const uchar SCORE_VOLTA = 0x10
 
static const uchar SCORE_KEYSIG = 0x40
 
static const uchar SCORE_DOUBLE_BAR = 0x80
 
static const int SHIFT_SLIDE = 1
 
static const int LEGATO_SLIDE = 2
 
static const int SLIDE_OUT_DOWN = 4
 
static const int SLIDE_OUT_UP = 8
 
static const int SLIDE_IN_ABOVE = 16
 
static const int SLIDE_IN_BELOW = 32
 
static const int MAX_PITCH = 127
 
static const char *const errmsg []
 

Member Enumeration Documentation

◆ GuitarProError

enum Ms::GuitarPro::GuitarProError : char
strong
Enumerator
GP_NO_ERROR 
GP_UNKNOWN_FORMAT 
GP_EOF 
GP_BAD_NUMBER_OF_STRINGS 

Constructor & Destructor Documentation

◆ GuitarPro()

Ms::GuitarPro::GuitarPro ( MasterScore s,
int  v 
)

◆ ~GuitarPro()

Ms::GuitarPro::~GuitarPro ( )
virtual

Member Function Documentation

◆ addDynamic()

void Ms::GuitarPro::addDynamic ( Note note,
int  d 
)
protected

◆ addLetRing()

void Ms::GuitarPro::addLetRing ( Note note)
protected

◆ addPalmMute()

void Ms::GuitarPro::addPalmMute ( Note note)
protected

◆ addPop()

void Ms::GuitarPro::addPop ( Note note)
protected

◆ addSlap()

void Ms::GuitarPro::addSlap ( Note note)
protected

◆ addTap()

void Ms::GuitarPro::addTap ( Note note)
protected

◆ addTextToNote()

Text * Ms::GuitarPro::addTextToNote ( QString  string,
Align  a,
Note note 
)
protected

◆ addVibrato()

void Ms::GuitarPro::addVibrato ( Note note,
Vibrato::Type  type = Vibrato::Type::GUITAR_VIBRATO 
)
protected

◆ applyBeatEffects()

void Ms::GuitarPro::applyBeatEffects ( Chord chord,
int  beatEffects 
)
protected

◆ createCrecDim()

void Ms::GuitarPro::createCrecDim ( int  staffIdx,
int  track,
const Fraction tick,
bool  crec 
)
protected

◆ createMeasures()

void Ms::GuitarPro::createMeasures ( )
protected

◆ createOttava()

void Ms::GuitarPro::createOttava ( bool  hasOttava,
int  track,
ChordRest cr,
QString  value 
)
protected

◆ createSlide()

void Ms::GuitarPro::createSlide ( int  slide,
ChordRest cr,
int  staffIdx,
Note note = nullptr 
)
protected

TODO we should not just take the top note here but the /correct/ note need to check whether GP supports multi-note gliss. I think it can in modern versions

◆ createSlur()

void Ms::GuitarPro::createSlur ( bool  hasSlur,
int  staffIdx,
ChordRest cr 
)
protected

◆ createTuningString()

void Ms::GuitarPro::createTuningString ( int  strings,
int  tuning[] 
)
protected

◆ error()

QString Ms::GuitarPro::error ( GuitarProError  n) const
inline

◆ initGuitarProDrumset()

void Ms::GuitarPro::initGuitarProDrumset ( )

◆ len2fraction()

Fraction Ms::GuitarPro::len2fraction ( int  len)
protected

◆ read() [1/2]

void Ms::GuitarPro::read ( void *  p,
qint64  len 
)
protected

◆ read() [2/2]

virtual bool Ms::GuitarPro::read ( QFile *  )
pure virtual

◆ readBeatEffects()

virtual int Ms::GuitarPro::readBeatEffects ( int  track,
Segment  
)
protectedpure virtual

◆ readBend()

void Ms::GuitarPro::readBend ( Note note)
protectedvirtual

◆ readBytePascalString()

QString Ms::GuitarPro::readBytePascalString ( )
protected

◆ readChannels()

void Ms::GuitarPro::readChannels ( )
protected

◆ readChar()

int Ms::GuitarPro::readChar ( )
protected

◆ readChord()

void Ms::GuitarPro::readChord ( Segment seg,
int  track,
int  numStrings,
QString  name,
bool  gpHeader 
)
protected

◆ readDelphiString()

QString Ms::GuitarPro::readDelphiString ( )
protected

◆ readInt()

int Ms::GuitarPro::readInt ( )
protected

◆ readLyrics()

void Ms::GuitarPro::readLyrics ( )
protected

◆ readMixChange()

bool Ms::GuitarPro::readMixChange ( Measure measure)
protectedvirtual

Reimplemented in Ms::GuitarPro5, and Ms::GuitarPro4.

◆ readPascalString()

QString Ms::GuitarPro::readPascalString ( int  n)
protected

◆ readTremoloBar()

void Ms::GuitarPro::readTremoloBar ( int  track,
Segment  
)
protected

◆ readUChar()

int Ms::GuitarPro::readUChar ( )
protected

◆ readVolta()

void Ms::GuitarPro::readVolta ( GPVolta gpVolta,
Measure m 
)
protected

◆ readWordPascalString()

QString Ms::GuitarPro::readWordPascalString ( )
protected

◆ restsForEmptyBeats()

void Ms::GuitarPro::restsForEmptyBeats ( Segment seg,
Measure measure,
ChordRest cr,
Fraction l,
int  track,
const Fraction tick 
)
protected

◆ setTempo()

void Ms::GuitarPro::setTempo ( int  n,
Measure measure 
)

◆ setTuplet()

void Ms::GuitarPro::setTuplet ( Tuplet tuplet,
int  tuple 
)
protected

◆ setupTupletStyle()

void Ms::GuitarPro::setupTupletStyle ( Tuplet tuplet)
protected

◆ skip()

void Ms::GuitarPro::skip ( qint64  len)
protected

Member Data Documentation

◆ _codec

QTextCodec* Ms::GuitarPro::_codec { 0 }
protected

◆ _letRings

std::vector<LetRing*> Ms::GuitarPro::_letRings
protected

◆ _palmMutes

std::vector<PalmMute*> Ms::GuitarPro::_palmMutes
protected

◆ _vibratos

std::vector<Vibrato*> Ms::GuitarPro::_vibratos
protected

◆ album

QString Ms::GuitarPro::album

◆ ARPEGGIO_DOWN

const uchar Ms::GuitarPro::ARPEGGIO_DOWN = 0x2
staticprotected

◆ ARPEGGIO_UP

const uchar Ms::GuitarPro::ARPEGGIO_UP = 0xa
staticprotected

◆ artist

QString Ms::GuitarPro::artist

◆ bars

QList<GpBar> Ms::GuitarPro::bars

◆ BEAT_ARPEGGIO

const uchar Ms::GuitarPro::BEAT_ARPEGGIO = 0x40
staticprotected

◆ BEAT_CHORD

const uchar Ms::GuitarPro::BEAT_CHORD = 0x2
staticprotected

◆ BEAT_DOTTED

const uchar Ms::GuitarPro::BEAT_DOTTED = 0x01
staticprotected

◆ BEAT_EFFECT

const uchar Ms::GuitarPro::BEAT_EFFECT = 0x20
staticprotected

◆ BEAT_EFFECTS

const uchar Ms::GuitarPro::BEAT_EFFECTS = 0x8
staticprotected

◆ BEAT_FADE

const uchar Ms::GuitarPro::BEAT_FADE = 0x10
staticprotected

◆ BEAT_LYRICS

const uchar Ms::GuitarPro::BEAT_LYRICS = 0x4
staticprotected

◆ BEAT_MIX_CHANGE

const uchar Ms::GuitarPro::BEAT_MIX_CHANGE = 0x10
staticprotected

◆ BEAT_PAUSE

const uchar Ms::GuitarPro::BEAT_PAUSE = 0x40
staticprotected

◆ BEAT_STROKE_DIR

const uchar Ms::GuitarPro::BEAT_STROKE_DIR = 0x02
staticprotected

◆ BEAT_TREMOLO

const uchar Ms::GuitarPro::BEAT_TREMOLO = 0x04
staticprotected

◆ BEAT_TUPLET

const uchar Ms::GuitarPro::BEAT_TUPLET = 0x20
staticprotected

◆ BEAT_VIBRATO_TREMOLO

const uchar Ms::GuitarPro::BEAT_VIBRATO_TREMOLO = 0x02
staticprotected

◆ channelDefaults

GpTrack Ms::GuitarPro::channelDefaults[GP_MAX_TRACK_NUMBER *2]

◆ comments

QStringList Ms::GuitarPro::comments

◆ composer

QString Ms::GuitarPro::composer

◆ curPos

int Ms::GuitarPro::curPos
protected

◆ EFFECT_ARTIFICIAL_HARMONIC

const uchar Ms::GuitarPro::EFFECT_ARTIFICIAL_HARMONIC = 0x10
staticprotected

◆ EFFECT_BEND

const uchar Ms::GuitarPro::EFFECT_BEND = 0x1
staticprotected

◆ EFFECT_GHOST

const uchar Ms::GuitarPro::EFFECT_GHOST = 0x01
staticprotected

◆ EFFECT_GRACE

const uchar Ms::GuitarPro::EFFECT_GRACE = 0x10
staticprotected

◆ EFFECT_HAMMER

const uchar Ms::GuitarPro::EFFECT_HAMMER = 0x2
staticprotected

◆ EFFECT_LET_RING

const uchar Ms::GuitarPro::EFFECT_LET_RING = 0x8
staticprotected

◆ EFFECT_PALM_MUTE

const uchar Ms::GuitarPro::EFFECT_PALM_MUTE = 0x2
staticprotected

◆ EFFECT_SLIDE

const uchar Ms::GuitarPro::EFFECT_SLIDE = 0x8
staticprotected

◆ EFFECT_SLIDE_OLD

const uchar Ms::GuitarPro::EFFECT_SLIDE_OLD = 0x4
staticprotected

◆ EFFECT_STACATTO

const uchar Ms::GuitarPro::EFFECT_STACATTO = 0x1
staticprotected

◆ EFFECT_TREMOLO

const uchar Ms::GuitarPro::EFFECT_TREMOLO = 0x4
staticprotected

◆ EFFECT_TRILL

const uchar Ms::GuitarPro::EFFECT_TRILL = 0x20
staticprotected

◆ errmsg

const char *const Ms::GuitarPro::errmsg
staticprotected
Initial value:
= {
"no error",
"unknown file format",
"unexpected end of file",
"bad number of strings",
}

◆ f

QFile* Ms::GuitarPro::f
protected

◆ fermatas

QMap<int, QList<GPFermata>*> Ms::GuitarPro::fermatas
protected

◆ gpLyrics

GPLyrics Ms::GuitarPro::gpLyrics
protected

◆ hairpins

Hairpin** Ms::GuitarPro::hairpins
protected

◆ instructions

QString Ms::GuitarPro::instructions

◆ key

int Ms::GuitarPro::key { 0 }
protected

◆ last_measure

Measure* Ms::GuitarPro::last_measure { nullptr }
protected

◆ last_segment

Segment* Ms::GuitarPro::last_segment { nullptr }
protected

◆ last_tempo

int Ms::GuitarPro::last_tempo { -1 }
protected

◆ LEGATO_SLIDE

const int Ms::GuitarPro::LEGATO_SLIDE = 2
staticprotected

◆ MAX_PITCH

const int Ms::GuitarPro::MAX_PITCH = 127
staticprotected

◆ measures

int Ms::GuitarPro::measures

◆ NOTE_APPOGIATURA

const uchar Ms::GuitarPro::NOTE_APPOGIATURA = 0x02
staticprotected

◆ NOTE_DEAD

const uchar Ms::GuitarPro::NOTE_DEAD = 0x20
staticprotected

◆ NOTE_DYNAMIC

const uchar Ms::GuitarPro::NOTE_DYNAMIC = 0x10
staticprotected

◆ NOTE_FINGERING

const uchar Ms::GuitarPro::NOTE_FINGERING = 0x80
staticprotected

◆ NOTE_FRET

const uchar Ms::GuitarPro::NOTE_FRET = 0x20
staticprotected

◆ NOTE_GHOST

const uchar Ms::GuitarPro::NOTE_GHOST = 0x04
staticprotected

◆ NOTE_MARCATO

const uchar Ms::GuitarPro::NOTE_MARCATO = 0x02
staticprotected

◆ NOTE_SFORZATO

const uchar Ms::GuitarPro::NOTE_SFORZATO = 0x40
staticprotected

◆ NOTE_SLUR

const uchar Ms::GuitarPro::NOTE_SLUR = 0x8
staticprotected

◆ ottava

std::vector<Ottava*> Ms::GuitarPro::ottava
protected

◆ ottavaFound

std::vector<int> Ms::GuitarPro::ottavaFound
protected

◆ ottavaValue

std::vector<QString> Ms::GuitarPro::ottavaValue
protected

◆ previousDynamic

int Ms::GuitarPro::previousDynamic
protected

◆ previousTempo

int Ms::GuitarPro::previousTempo
protected

◆ score

MasterScore* Ms::GuitarPro::score
protected

◆ SCORE_DOUBLE_BAR

const uchar Ms::GuitarPro::SCORE_DOUBLE_BAR = 0x80
staticprotected

◆ SCORE_KEYSIG

const uchar Ms::GuitarPro::SCORE_KEYSIG = 0x40
staticprotected

◆ SCORE_MARKER

const uchar Ms::GuitarPro::SCORE_MARKER = 0x20
staticprotected

◆ SCORE_REPEAT_END

const uchar Ms::GuitarPro::SCORE_REPEAT_END = 0x8
staticprotected

◆ SCORE_REPEAT_START

const uchar Ms::GuitarPro::SCORE_REPEAT_START = 0x4
staticprotected

◆ SCORE_TIMESIG_DENOMINATOR

const uchar Ms::GuitarPro::SCORE_TIMESIG_DENOMINATOR = 0x2
staticprotected

◆ SCORE_TIMESIG_NUMERATOR

const uchar Ms::GuitarPro::SCORE_TIMESIG_NUMERATOR = 0x1
staticprotected

◆ SCORE_VOLTA

const uchar Ms::GuitarPro::SCORE_VOLTA = 0x10
staticprotected

◆ SHIFT_SLIDE

const int Ms::GuitarPro::SHIFT_SLIDE = 1
staticprotected

◆ slide

int Ms::GuitarPro::slide
protected

◆ SLIDE_IN_ABOVE

const int Ms::GuitarPro::SLIDE_IN_ABOVE = 16
staticprotected

◆ SLIDE_IN_BELOW

const int Ms::GuitarPro::SLIDE_IN_BELOW = 32
staticprotected

◆ SLIDE_OUT_DOWN

const int Ms::GuitarPro::SLIDE_OUT_DOWN = 4
staticprotected

◆ SLIDE_OUT_UP

const int Ms::GuitarPro::SLIDE_OUT_UP = 8
staticprotected

◆ slideList

std::list<Note*> Ms::GuitarPro::slideList
protected

◆ slides

QMap<int,int> Ms::GuitarPro::slides
protected

◆ slurs

Slur** Ms::GuitarPro::slurs { nullptr }
protected

◆ staves

int Ms::GuitarPro::staves

◆ subtitle

QString Ms::GuitarPro::subtitle

◆ tempo

int Ms::GuitarPro::tempo
protected

◆ tempoMap

std::map<int, std::pair<int, bool> > Ms::GuitarPro::tempoMap
protected

◆ title

QString Ms::GuitarPro::title

◆ transcriber

QString Ms::GuitarPro::transcriber

◆ tunings

std::vector<std::string> Ms::GuitarPro::tunings

◆ version

int Ms::GuitarPro::version
protected

◆ voltaSequence

int Ms::GuitarPro::voltaSequence
protected

The documentation for this class was generated from the following files: