Releases: jeremy-collette/midistar
v0.9.0
midistar v0.9.0 (rev. 7abd86a)
Changes:
- Added practice mode to piano songs. Upon missing a note, practice mode pauses the playback of the song until the missed note is correctly played.
- Added support for M1 Macs running on OSX Monterey and later.
- Added score screen which is displayed at the end of a song.
- Added scaling of piano instrument on different screen resolutions (which can be set in the
config.cfg
file). - Added icon to game window.
- Added max activation time to each drum.
v0.8.0
midistar v0.8.0 (rev. 0bbc06e)
Changes:
- Added pause screen to start of song that allows instrument to be tested (with MIDI note number annotations on drums)
- Moved title theme
chopin_nocturne_op9_n2.mid
to piano songs directory so that it can be played by user - Added
rock1.mid
to drum songs directory - Added MIDI input port configuration option
midi_input_port
- Drum mode now plays sound for all instrument notes even if they aren't part of the song
- Added custom drum ordering (by MIDI note number) configuration option
drum_midi_order
- Song list now sorted alphabetically
- Songs can now be found recursively in subfolders in the
songs
directory
Bug fixes:
- SFML external libraries now included in OSX builds
v0.7.0
midistar v0.7.0 (rev. d3653d6)
Changes:
- Added Scores! Check the upper-left hand corner when playing to see the game score.
- Added the "songs" directory. Place your MIDI files here in the "drums" or "piano" sub-folders.
- Added basic main-thread hang handling. This reduces note skipping when dragging / resizing the game window or during increased system load.
- Added git revision to version. This allows developers to determine exactly what version of the source code is being used.
- Updated Fluid SoundFont download URL. This is a URL controlled by the midistar team, which means hosting can be ensured in the future.
v0.6.1
v0.6.0
OSX support is back with v0.6.0! OSX Catalina (v10.15.7 or greater) is now supported. Also, SoundFont files are now automatically installed by midistar on first-time setup. This means midistar should now work out-of-the-box without additional configuration.
Here is a full list of changes:
- Fixed OSX build errors. OSX Catalina (v10.15.7 or greater) is now supported.
- Added automatic SoundFont installation. Fluid SoundFont (Release 3) is now installed as part of initial setup. Simply run the appropriate "setup" script on your platform. Thanks to Frank Wen et al. for all your hard work!
- Added Chopin's Nocturne Op. 9 No. 2 as the main menu background music. You should be able to hear this playing when you start midistar.
- Fixed a bug where Windows binaries were built as 32-bit (#56).
- Converted README to markdown and added some screenshots.
- Updated copyright headers.
Known issues:
- midistar won't start when installed using .deb package (v0.6.0) (#84).
- On OSX, you may see a message similar to "midistar cannot be opened because the developer cannot be verified". To run midistar, you will have to modify your security settings.
v0.5.0
Introducing the main menu! Now you can start midistar without specifying the MIDI file and game mode that you want to play. Just start the game and navigate through the various menus using the arrow keys, enter, and escape.
A full list of changes:
- Added main menu
- Added Scenes (GameObjects are now held in Scenes instead of all being held in the "Game" object)
- Removed 'midi_file' and 'game_mode' config and commandline options (as these are now selected using the menu)
- Added Silkscreen font (thanks Jason Kottke!)
- Added MenuBuilder to easily create menus (and sub-menus)
- Added TextBuilder to easily create on-screen text
- MIDI logic (such as MIDI file in, MIDI output) and SFML logic (such as SFML events) are now in Components / GameObjects
- GameObjects now have tags and can be enabled/disabled
Note: OSX is not supported in this release due to Mojave missing the <experimental/filesystem>
headers. This may be fixed in later releases.
v0.4.0
Introducing the 'drum' game mode! Now you can finally play electronic drums on midistar. Simply hook up your MIDI drums through USB, set the 'game_mode' config option to 'drum', and you're away! Make sure that the SoundFont file that you're using supports drum noises, and make sure you're playing a MIDI file that is intended to be played on drums.
And now you can build midistar on Windows! Windows build support has been added.
A full list of changes:
- Added 'drum' game mode!
- Added Windows build support!
- Added 'instrument_midi_remapping' config option, which allows player to remap the MIDI notes that their instrument plays.
- Added 'show_third_party' command line flag, which prints out the third-party projects included with midistar and their copyright holders.
- Other minor changes.
v0.3.0
Introducing game modes! Game modes change the way midistar is played. This version adds the 'default' and 'piano' game modes. The 'default' game mode is similar to previous versions of midistar, but the 'piano' game mode transforms midistar in to a piano! Connect your electronic piano or digital keyboard with a MIDI cable and play midistar using your piano!
Features:
- Added 'piano' and 'default' game modes
- 'auto_play' now visibly plays song notes
Bug fixes:
- Fixed a bug where overlapping notes were not correctly played by 'auto_play'
Other changes:
- Game modes inherit the GameObjectFactory interface and control the look & feel of the game
- Game modes now control keyboard bindings for instruments
- Added PianoGameObjectFactory and DefaultGameObjectFactory game modes
- GameObject now holds an SFML object that implements sf::Drawable and sf::Transformable instead of using a GraphicsComponent instance. This adds support for sprite and text drawing.
- Added support for sprite animation using SpirteAnimatorComponent class
- Collisions are now handled by the VerticalCollisionDetectorComponent class
- Added CollidableComponent, InstrumentCollisionHandler, InvertColourComponent, LambdaComponent components
- Removed CollisionDetectorComponent and GraphicsComponent classes
v0.2.1
Bug fixes:
- Fixed a bug where midistar would not find shared libraries at runtime if the project folder had been moved since building.
v0.2.0
Version 0.2.0 brings some new features and changes.
Features:
- Notes are now created at the appropriate size depending on their duration, instead of being expanded through a costly process. The game now runs much faster.
- Frame independence: timing of game events is now independent of frame rate.
- Game speed is now dependent on the speed of the MIDI file (ticks per quarter note) and
note_fall_speed
configuration option. - Users can now specify multiple MIDI channels / tracks to play from the supplied MIDI file by setting the
midi_file_channels
andmidi_file_tracks
configuration settings. - Users can now specify max frame-rate by setting the
max_fps
configuration setting.
Other changes:
- Removed 'note off' GameObjects as notes are now represented by one GameObject.
- Removed AnchorComponent and RemoveSongNoteAnchorComponent classes.
- Components now retrieve the instrument bar in constant time using the
Game::GetInstrumentBar()
method. - Removed TestInputComponent class.
- Removed '_COMPONENT' suffix from the ComponentType enum.
- Removed 'bool on' from the NoteInfoComponent class.
- GameObjectFactory is now a singleton and holds note / instrument width info.