2023-02-22
Changes:
- Fixed
GraceEffect.durationTime
#34. - Fixed hashing #31.
- Improved the type checking support for models.
- Fixed
Song.newMeasure
.
2022-06-26
Changes:
- Enabled passing
bytes
to theparse
andwrite
functions.
2022-06-26
Changes:
- Enabled passing PathLike objects to the
parse
andwrite
functions. - Fixed reading and writing measure headers in Guitar Pro 5.
2022-01-23
Backward-incompatible changes:
- Aligned the
GuitarString
representation with scientific pitch notation. - Dropped support for Python 3.6.
Changes:
- Switched to the hash function generated by attrs.
2020-11-21
Backward-incompatible changes:
- Dropped support for Python 2.7.
- Dropped support for Python 3.4.
- Dropped support for Python 3.5.
- Removed the
Fingering.unknown
member. - Removed the misleading
MeasureHeader.tempo
andMeasure.tempo
attributes. - Removed the unused
Beat.index
attribute. - Removed the unused
Color.a
attribute. - Removed the unused
MeasureHeader.hasMarker
property. - Removed the unused
BeatStroke.getIncrementTime
method. - Removed the unused
Tempo
class. - Changed the
Beat.text
type tostr
and removed theBeatText
class. - Implemented lenient handling of unknown
Fingering
,NoteType
,ChordType
,ChordExtension
values #18. - Functions
guitarpro.parse
andguitarpro.write
no longer close the passed file object.
Changes:
- Added type hints.
- Annotated read and write errors with track, measure, voice, and beat numbers.
- Moved the
end
property fromMeasure
toMeasureHeader
. - Truncated the
MeasureHeader.repeatAlternative
to 8 bits when writing GP5 file. - Fixed the vibrato and harmonics when converting a GP3 file to the newer versions.
2020-09-25
Backward-incompatible changes:
- Removed the deprecated
Beat.realStart
property. - Made
Tuplet.convertTime()
andDuration.time
returnint
for whole times andFraction
for rational times.
Changes:
- Fixed creating durations from dotted tuplets #16.
2020-01-19
Backward-incompatible changes:
- Removed the deprecated
Duration.isDoubleDotted
property.
Deprecations:
- Deprecated the usage of
Beat.realStart
in favor ofBeat.startInMeasure
. The former will be removed in the next release.
Changes:
- Updated attrs to at least 19.2.
2018-10-21
Backward-incompatible changes:
- Changed the implementation of
Duration.fromTime
and removed itsminimum
anddiff
arguments. Now it raises aValueError
if given time cannot be displayed in Guitar Pro.
Deprecations:
- Deprecated the usage of
Duration.isDoubleDotted
because it's not supported in Guitar Pro 3-5. Setting values to this attribute will issue a warning. The attribute will be completely removed in the next release.
Changes:
Fixed a bug that causes chord information to be lost #10.
Allowed 13-tuplets to be written.
Fixed hashing.
Removed wordy reprs on
Lyrics
,Song
,MeasureHeader
,TrackRSE
,Track
,Measure
,Voice
,Beat
,NoteEffect
instances. To see an object in somewhat human-readable form use the following snippet:import attr attr.astuple(track, recurse=False)
2018-04-14
Backward-incompatible changes:
Changed default instantiation behaviour of
Song
,Track
, andMeasure
objects #4. WhenTrack
is created withoutmeasures
argument, it automatically creates aMeasureHeader
with aMeasure
that has twoVoices
in it. To create a track without measures, do:track = guitarpro.Track(base_song, measures=[])
Changed how measure headers are compared. Comparing measures won't consider measure headers. Measure headers are stored in
Song
instances, so they will be compared there.Implemented gradual wah-wah changes. There's no
WahState
enum,WahEffect
now holds the exact value of wah-wah pedal position.
Changes:
- Updated attrs to at least 17.1.
- Fixed note order in beats before writing.
- Fixed chord reading when there's no fingering.
2017-02-13
Changes:
- Made models hashable again.
2017-02-10
Changes:
- Removed
Note.deadNote
attribute. - Fixed track order changes.
- Removed attribute
Marker.measureHeader
. - Provided better default values for some models.
- Implemented clipboard files handling.
- Replaced
GPObject
with attrs class decorator. - Reimplemented version handling. Keyword
version
of functionsparse
andwrite
expects a version tuple. - Moved class
GPFileBase
to moduleguitarpro.iobase
, and renamed moduleguitarpro.base
toguitarpro.models
. - Exported all models alongside with functions
parse
andwrite
fromguitarpro
module. Now they can be accessed asguitarpro.Song
, for example. - Swapped beat stroke directions. Downstroke is represented by
BeatStrokeDirection.down
and upstroke is represented byBeatStrokeDirection.up
. - Resolved issue #1. Now it's easier to create a tab from scratch.
Minor changes:
- Replaced nosetest with pytest.
2014-04-01
Changes:
- Fixed
NoteType
enumeration. - Included examples into sdist.
- Create
tests.OUTPUT
directory before running tests. - Type coercion before writing data (fixes py3k compatibility).
2014-03-30
Changes:
- Converted Markdown docs to reST docs.
- Added
MANIFEST.in
.
2014-03-30
Changes:
- Added Python 3 compatibility.
- Added documentation.
- Added support for RSE.
- Added automated tests using
nose
. - Fixed harmonics conversion.
- Converted some classes to
Enum
subclasses. - Added support for chord diagrams.
- Added generic arguments to
GPObject.__init__
. - Cleaned up the code.
2014-03-11
First public release.