Repository navigation
libtrackerboy v0.9.0
Pre-release
Pre-release
Important
- Nim 2.0.0 is now required.
- All init procs have been renamed,
init(T, ...)->initT(...) Immutable[ref T]has been replaced byiref[T]Immutable[ptr T]has been replaced byiptr[T]- Renamed
toImmutable->immutable
The API in the data module has been completely overhauled:
- removed types
EffectIndex,EffectColumns - added consts
rangeSpeed,noLoopPoint,noteNone,instrumentNoneand
effectNone - Speed
- is now a
distinct uint8 - Renamed
speedToFloat->toFloat - Renamed
speedToTempo->tempo - Added
toSpeed,isValid,$procs
- is now a
- added type
LoopPoint - Sequence
- renamed field
loopIndex->loop loopfield is now of typeLoopPoint- add
isValidproc - removed
data,data=procs
- renamed field
- Instrument
- removed
newoverload - add
hashoverload
- removed
- Waveform
- removed
newoverload - add
hashoverload
- removed
- Renamed
SequenceSize->SequenceLen - Renamed
OrderSize->OrderLen - Table
- added proc
uniqueIds
- added proc
- Order
Orderis now aseq[OrderRow]- add proc
initOrderRow, templateorow - removed procs
[],[]=,len,setLen,setData,add,insert,
removeandswap
- Effect
- renamed
EffectType->EffectCmd, each enum starts withecinstead ofet - renamed field
effectType->cmd - renamed proc
effectTypeShortensPattern->shortensPattern - renamed proc
toEffectType->toEffectCmd - renamed proc
effectTypeToChar->effectCmdToChar
- renamed
- TrackRow
- add types
NoteColumnandInstrumentColumn - field
noteis now of typeNoteColumn - field
instrumentis now of typeInstrumentColumn - added procs
has,value,asOption,$for Column types - removed procs
clearNote,clearInstrument,hasNote,hasInstrument,
setNote,setInstrument,queryNote,queryInstrument,
- add types
- Track
- Track data is now stored using a
ref seq[TrackRow] - added proc
datafor accessing the track's data seq - removed procs
setNote,setInstrument,setEffect,setEffectType,
setEffectParam - add converter to a TrackView,
toView
- Track data is now stored using a
- added types
Pattern,PatternView,SomePattern,SomeTrack - Song
- add procs
$,isValid,removeUnusedTracks,allocateTracks,getRow,
effectiveTickrate,patternLen trackLenis now a property instead of a fieldeditPatternandviewPatterntemplates inject aPatternvariable
instead of a template. Usevalue[channel]instead ofvalue(channel)
- add procs
- add types
SongPos,SongSpan - SongList
- add procs
isValid,data - removed overload for
getthat returns aref Song - added proc
mgetthat returns aref Song - removed procs
add,duplicate,remove,moveUp,moveDown
- add procs
- Module
- add proc
isValid
- add proc
Changes to the API in engine:
- engine internals now utilize the new
trackingmodule - modules
apucontrol,enginecontrolandfrequencyhave an unstable API,
so any changes made to them will not be documented. - added proc
isPlaying getLockedrenamed tolocked- added proc
unlocked - invalid starting position given to
playno longer results in an
IndexDefectbeing raised, instead the engine is halted. steprenamed totickcurrentFramerenamed toframecurrentSongrenamed tosongcurrentNoterenamed tonotecurrentStaterenamed totrackStategetTrackTimbrerenamed totrackTimbregetTrackEnveloperenamed totrackEnvelopegetTrackPanningrenamed totrackPanningstepAndApplyrenamed totickAndApplyEngineFrameobject changedhalted,startedNewRow,startedNewPatternfields replaced by
status: TrackerStatusspeedis now of typeSpeedorderandrowfields are replaced bypos: SongPos
GlobalStateobject removed, as the engine internals no longer requires itufAllrenamed toupdateAll
Added
- (common)
iref[T]andiptr[T](these replaceImmutable[T]) - (common)
FixedSeq[N, T]type for a seq-like container of fixed capacity. - (common)
Tristateenum - (ir)
==operator overload forRowIr - (ir)
runtimeproc for anOperation - (ir)
toTrackRowproc for converting anOperationback into aTrackRow - (ir) overload for
toIrproc for partial ir conversion - (note)
NoteRange,Octave,Letter,NoteIndexandNotePairtypes - (note) procs for converting a
NoteIndexto aNotePairand vice versa - New module,
text, for text conversion and parsing of libtrackerboy data. - New module,
tracking, for tracking playback of a song.
Changed
- (data) The data module has been overhauled, see above
- (ir)
fromIr(TrackIr)returns a tuple containing a track and a bool - (ir)
setFromIrproc now returnsbool - (ir) renamed proc
toEffectType->toEffectCmd - modules
apucontrol,enginecontrolandenginestateare no longer
private and are now located inlibtrackerboy/engine - (engine) see above for detailed changes.
- (editing) completely rewritten, safer and easier to use.
Removed
- (common)
MixModetype and related procs. - (common)
Immutable[T]type and related procs. - (data)
$procs forSequenceandWaveDatatypes. Use text module instead. - (data)
parseSequenceproc, use text module instead. - (data)
parseWaveproc, use text module instead. - (ir)
SongPathandPatternVisittypes. - (editing)
PatternIter,ColumnItertypes - (notes)
notecompile-time proc