hydrogen 1.2.6
LilyPond Class Reference

A class to convert a Hydrogen song to LilyPond format. More...

#include <Lilypond.h>

Inheritance diagram for LilyPond:
Object< LilyPond > Base

Public Member Functions

 LilyPond ()
 
void extractData (const Song &song)
 
void write (const QString &sFilename) const
 
- Public Member Functions inherited from Object< LilyPond >
 Object ()
 
 Object (const Object< LilyPond > &other)
 
- Public Member Functions inherited from Base
 Base ()
 
 Base (const Base &other)
 
virtual const char * class_name () const
 
void logBacktrace () const
 Print the current stack at point into the debug log.
 
void Print (bool bShort=true) const
 Prints content of toQString() via DEBUGLOG.
 
virtual QString toQString (const QString &sPrefix="", bool bShort=true) const
 Formatted string version for debugging purposes.
 

Private Types

typedef std::vector< std::vector< std::pair< int, float > > > notes_t
 

Private Member Functions

void writeLower (QTextStream &stream, unsigned nMeasure) const
 Write lower voice of given measure to stream.
 
void writeMeasures (QTextStream &stream) const
 Write measures in LilyPond format to stream.
 
void writeUpper (QTextStream &stream, unsigned nMeasure) const
 Write upper voice of given measure to stream.
 
void writeVoice (QTextStream &stream, unsigned nMeasure, const std::vector< int > &whiteList) const
 

Static Private Member Functions

static void addPattern (const Pattern &pattern, notes_t &notes)
 
static void addPatternList (const PatternList &list, notes_t &notes)
 

Private Attributes

float m_fBPM
 BPM of the song.
 
std::vector< notes_tm_Measures
 Representation of the song.
 
QString m_sAuthor
 Author of the song.
 
QString m_sName
 Name of the song.
 

Additional Inherited Members

- Static Public Member Functions inherited from Base
static const char * _class_name ()
 return the class name
 
static QString base_clock (const QString &sMsg)
 Measures the current time and stores it in __last_clock.
 
static QString base_clock_in (const QString &sMsg)
 
static int bootstrap (Logger *logger, bool count=false)
 must be called before any Object instantiation !
 
static bool count_active ()
 
static int getAliveObjectCount ()
 
static object_map_t getObjectMap ()
 
static Loggerlogger ()
 return the logger instance
 
static int objects_count ()
 
static void printObjectMapDiff (object_map_t map)
 Creates the difference between a snapshot of the object map and its current state and prints it to std::cout.
 
static void set_count (bool flag)
 enable/disable class instances counting
 
static void write_objects_map_to (std::ostream &out, object_map_t *map=nullptr)
 output the full objects map to a given ostream
 
static void write_objects_map_to_cerr ()
 output objects map to stderr
 
- Static Public Attributes inherited from Base
static QString sPrintIndention = " "
 String used to format the debugging string output of some core classes.
 
- Protected Member Functions inherited from Object< LilyPond >
 ~Object ()
 
- Protected Member Functions inherited from Base
 ~Base ()
 
- Static Protected Member Functions inherited from Base
static void registerClass (const char *name, const atomic_obj_cpt_t *counters)
 
- Static Protected Attributes inherited from Base
static bool __count = false
 should we count class instances
 
static timeval __last_clock = { 0, 0 }
 
static Logger__logger = nullptr
 
static bool bLogColors = true
 

Detailed Description

A class to convert a Hydrogen song to LilyPond format.

Definition at line 42 of file Lilypond.h.

Member Typedef Documentation

◆ notes_t

typedef std::vector<std::vector<std::pair<int, float> > > notes_t
private

Definition at line 67 of file Lilypond.h.

Constructor & Destructor Documentation

◆ LilyPond()

LilyPond ( )

Definition at line 70 of file Lilypond.cpp.

Member Function Documentation

◆ addPattern()

void addPattern ( const Pattern & pattern,
notes_t & notes )
staticprivate

Definition at line 145 of file Lilypond.cpp.

◆ addPatternList()

void addPatternList ( const PatternList & list,
notes_t & notes )
staticprivate

Definition at line 136 of file Lilypond.cpp.

◆ extractData()

void extractData ( const Song & song)

Definition at line 75 of file Lilypond.cpp.

◆ write()

void write ( const QString & sFilename) const

Definition at line 96 of file Lilypond.cpp.

◆ writeLower()

void writeLower ( QTextStream & stream,
unsigned nMeasure ) const
private

Write lower voice of given measure to stream.

Mapping of GM-kit instrument to LilyPond names.

Definition at line 202 of file Lilypond.cpp.

◆ writeMeasures()

void writeMeasures ( QTextStream & stream) const
private

Write measures in LilyPond format to stream.

Definition at line 166 of file Lilypond.cpp.

◆ writeUpper()

void writeUpper ( QTextStream & stream,
unsigned nMeasure ) const
private

Write upper voice of given measure to stream.

Definition at line 186 of file Lilypond.cpp.

◆ writeVoice()

void writeVoice ( QTextStream & stream,
unsigned nMeasure,
const std::vector< int > & whiteList ) const
private

Definition at line 263 of file Lilypond.cpp.

Field Documentation

◆ m_fBPM

float m_fBPM
private

BPM of the song.

Definition at line 105 of file Lilypond.h.

◆ m_Measures

std::vector<notes_t> m_Measures
private

Representation of the song.

Definition at line 102 of file Lilypond.h.

◆ m_sAuthor

QString m_sAuthor
private

Author of the song.

Definition at line 104 of file Lilypond.h.

◆ m_sName

QString m_sName
private

Name of the song.

Definition at line 103 of file Lilypond.h.