Skip to content

Releases: anokta/barelymusician

barelymusician v0.4.1

17 Nov 06:47
Compare
Choose a tag to compare

Changes:

  • Added new Instrument controls:
    • Basic one-pole filter with low-pass and high-pass options
    • Pulse width for square wave oscillator
    • Gain values are now in decibels
  • Added relwithdebuginfo config option in build.py
  • Added benchmark tools with continuous benchmark CI
  • Major performance optimizations in instrument processing (#144)
  • Dropped multi-channel instrument output support (#145)
  • Decreased the maximum voice count per instrument to 20
  • Instrument gain now ramps up from silence to unity gain on initialization
  • Bumped Unity project version to 2022.3.0f1
  • Misc Unity project cleanup

Full Changelog: v0.4.0...v0.4.1

barelymusician v0.4.0

01 Nov 04:46
Compare
Choose a tag to compare

Changes:

  • Added new barelycomposer.h header that includes the new Arpeggiator, Random, Repeater, and Scale APIs
  • Revamped CMake support (#134)
  • Consolidated all instruments into a single Instrument (#140)
  • Refactored API entirely with better resource allocation (#133)
  • Refactored note values to use pitch with tuning (#138)
  • Reorganized folder structure with include and src (#143)
  • Dropped Effect API
  • Dropped Bazel support

Full Changelog: v0.3.1...v0.4.0

barelymusician v0.3.1

18 Feb 23:27
Compare
Choose a tag to compare

Changes:

  • Added BeatsFromSeconds and SecondsFromBeats functions to the Musician API
  • Added a simple LfoEffect for amplitude modulation
  • Added control slope support to all effects
  • Added a new PerformerDemo in Unity that makes use of Performer directly
  • More bug fixes and improvements

Full Changelog: v0.3.0...v0.3.1

barelymusician v0.3.0

05 Jan 20:28
Compare
Choose a tag to compare

Changes:

  • Added Daisy platform support (#123)
  • Added VS Code tasks
  • Created reference components that make use of Instrument and Performer (#122):
    • An Arpeggiator component that can play instrument notes in sequence
    • A Repeater component that can play instrument notes in a repeating sequence
  • Refactored the API to use handles everywhere (#121)
  • Refactored the custom effects and instruments to make them more easily extensible
  • Revamped the Unity integration with the new API
  • More bug fixes and improvements

Full Changelog: v0.2.0...v0.3.0

barelymusician v0.2.0

22 Apr 14:03
Compare
Choose a tag to compare

Changes:

  • Added effects that can be attached to instruments (#119)
  • Refactored the C++ API to use reference types (#118)
  • Extended CMake support to include all examples (#117)
  • Minor bug fixes and improvements

Full Changelog: v0.1.0...v0.2.0

barelymusician v0.1.0

05 Mar 01:00
Compare
Choose a tag to compare

This is the initial release of barelymusician! 🐰

barelymusician is a real-time music engine that is used to generate and perform musical sounds from scratch in a sample accurate way.

Supported platforms: Linux, OSX, Windows, Android, and a native Unity game engine plugin.

Features:

  • A Musician class to manage the real-time music engine. The musician governs the global tempo for all musical components.
  • An Instrument class to create and control musical instruments in real-time. Instruments can:
    • Play notes with pitch and intensity.
    • Modify their control values with an optional automation slope that is synced to the global tempo.
    • Modify per-note control values in a similar way while playing a note.
    • Set opaque data (which can be useful to pass audio sample data).
    • Trigger callbacks for note and control change events.
  • A Performer class to create and perform musical tasks in real-time. Performers can:
    • Create recurring tasks to be triggered in a loop with modifiable properties (such as a metronome tick).
    • Schedule one-off tasks to be triggered some time in the future represented in musical beats according to the global tempo.
    • Start and stop their playback to trigger their tasks.
    • Modify their position and other properties during playback.
  • InstrumentDefinition and TaskDefinition structures to define custom instruments and tasks to be used in the music engine. In addition:
    • Three pre-defined instrument types are implemented and included for reference, namely:
    • A Metronome component is implemented and included for reference.
  • Bazel and CMake targets for multi-platform builds.
  • A fully-featured Unity game engine integration with native plugins for each supported platform.
  • Example code with scenes and binaries to demonstrate all the features above.

Limitations:

All features aside, there certainly are rough edges here and there throughout the project, although the core functionality is intact. This is especially true when it comes to ease of use, hence the 0.1.0 versioning. :)

That said, more things are yet to come to make use of the engine in more practical ways, which surely includes the adaptive music features from the legacy implementation, so it comes full circle.

See for reference: anokta/barelyMusicianLegacy


Full changelog: https://github.com/anokta/barelymusician/commits/v0.1.0