Maialib

Latest version: v1.9.0

Safety actively analyzes 725151 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 7

0.0.17

API Changes

- `Chord::getStackedHeaps()` -> `Chord::getStackDataFrame()`

New Features

- `Interval Class`: 50 new classification methods
- Replace old log using `std::cout` by the new C++ macros for log data and exceptions:
- `LOG_DEBUG()`
- `LOG_INFO()`
- `LOG_WARN()`
- `LOG_ERROR()`
- `Chord Class`
- 50 new `.haveXInterval()` methods
- `.getCloseChord()`
- `.isInRootPosition()`
- Add `make validate`: Includes `CppCheck` and `CppLint`

Improved

- `Chord Class`
- `.getStackDataFrame()` and `.getStackHeaps()`: Improve sorted heaps algorithm and DataFrame data types
- `Interval Class`:
- `.isAscendant()`
- `.isDescendant()`

Fixed

- `Interval Class`:
- `.getDiatonicInterval()`
- `Chord::getRoot()`

---

0.0.16

API Changes

- `Chord::getStackedChord()` -> `Chord::getOpenStackChord()`

New Features

- `Note Class`:
- `.getFrequency()`
- `.getEnharmonicPitch()`
- `.toEnharmonicPitch()`
- `.getEnharmonicPitches()`
- `.getEnharmonicNote()`
- `.getEnharmonicNotes()`
- `Interval Class`:
- `.setNotes()`
- `.getPitchStepInterval()`
- `.isMinorThird()`
- `.isMajorThird()`
- `.isDiminishedFifth()`
- `.isPerfectFifth()`
- `.isAugmentedFifth()`
- `.isDiminishedSeventh()`
- `.isMinorSeventh()`
- `.isMajorSeventh()`
- `.isMinorNinth()`
- `.isMajorNinth()`
- `.isPerfectEleventh()`
- `.isSharpEleventh()`
- `.isMinorThirdteenth()`
- `.isMajorThirdteenth()`
- `.isSimple()`
- `.isCompound()`
- Oveload operator `<`
- `Helper Class`:
- `.midiNote2octave()`
- `.notes2intervals()`
- `Chord Class`:
- `.getOpenStackChord()`
- `.getCloseStackChord()`
- `.getOpenStackedNotes()`
- `.getStackedHeaps()`
- `.getOpenStackIntervals()`
- `.getCloseStackIntervals()`
- `.isSorted()`
- New Unit Tests:
- `Note::getEnharmonicPitch`
- `Note::getEnharmonicPitches()`
- `Note::getEnharmonicNotes()`

Improved

- `Chord::stackInThirds()` now can use enharmony to compute the stacked chord
- `Interval::getDiatonicSteps()` added optional argument `useSingleOctave`
- `Chord::getMIDIIntervals()` added optional argument `firstNoteAsReference`
- Now every maiacore C++ exception message starts with `[maiacore]` prefix

Fixed

- `Note::Note()` Prevent invalid user type octaves and out of range MIDI numbers

---

0.0.15

New Features

- Add maialib Python stubs

Improved

- `ScoreCollection` class:
- Add overloaded constructor: vector of directories paths
- Add `.merge(ScoreCollection& other)` method
- Add `+` operator overload to `.merge(ScoreCollection& other)` method
- Add `.getNumDirectories()` method
- Add `.addDirectory()` method
- Add `.setDirectoriesPaths()` method
- Add oveloaded methods:
- `.addScore(const std::string& filePath)`
- `.addScore(const std::vector<std::string>& filePaths)`
- Replace `python3` to `python` calls
- Update `Pybind11` to v2.10.0

Fixed

- C++ & Python unit tests are now running without any errors:
- `make cpp-tests`
- `make py-tests`
- `make tests`

---

0.0.14

New Features

- Add New `ScoreCollection` class
- Add to all maialib classes:
- Add Python `__hash__` method
- Add Python `__sizeof__` method
- `Chord` Class: Add `getNotes()` method

Improved

- Update Pybind11 to v2.9.2
- Better maialib objects representation inside the Python environment
- `Score::forEachNote()` callback contains more input parameters

Fixed

---

0.0.13

New Features

Improved

- `Chord` class:
- Add optional input argument: `.getIntervals(bool fromRoot = false)`
- Add optional input argument: `.getStackIntervals(bool fromRoot = false)`
- Trello: Cards and status updated

Fixed

- Fix `Score::setRepeat()` default arguments
- Fix `Note::transpose()` now works as expected

---

0.0.12

New Features

- Add `Note::getDuration()` as an alias to `Note::getQuarterDuration()`
- Add `Duration` enum class
- Add `std::vector<std::string> Helper::midiNotes2pitches(int midiNote)`
- Add `void Score::setRepeat(int measureStart, int measureEnd)`
- `Chord` class:
- Add `.getIntervals()`
- Add `.getStackIntervals()`

Improved

- `Note` constructor now receives a `Duration` enum class as second parameter
- `Helper::midiNotes2pitch()` if the user try to do something impossible, now this method returns an error

Fixed

- Replace `Chord::getIntervalNames()` by `Chord::getIntervals()`

---

Page 5 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.