Verified Commit a3494291 authored by ಚಿರಾಗ್ ನಟರಾಜ್'s avatar ಚಿರಾಗ್ ನಟರಾಜ್
Browse files

Add AUTHOR, CHANGELOG, and build instructions

parent fcd967c5
The Original and Current Programmer of Musik is Chiraag M. Nataraj
If you modify this program, please add your name here, but DO NOT REMOVE MY NAME.
Version 2.2 - 3/16/2011
* Added ability to include other .musik files from within one "master" .musik file
* Fixed severe problems with the parser where it would hang on line 1
* Split the (former) public static void parse(File file) into two methods:
public static void parse(File file)
public static String parse(String s)
This is in preparation for an implementation of real-time musik generation ... stay tuned!
* Added the method public static void parseInput(File file) to parse the inputted file (without
playing the resulting string)
* Created a system where Musik writes a log for every file it parses
* Set up a file filter so that only .musik files are shown (by default)
* Added the ability to import a custom soundbank
* Increased verbosity of program
* Started the change log :)
Version 2.3 - 5/28/2011
* Fixed long-standing bug with parsing notes (didn't realize it was there until now!) - b_4, for example, was parsed incorrectly
* Added a graphical echo of the console so that people using it graphically will know what is going on
* Added a live mode (only works from the command-line for now - I plan to add a graphical version in the near future
* Added a \transpose command which allows you to transpose keys - USE CAREFULLY!! If you shift it up or down too much, bad things may happen
- I don't know what JFugue does when the note is out of the range which MIDI recognizes - it may conk out or just randomly play a note
Version 2.4 - 1/25/2012
* Upgraded to JFugue 4.1.0-20120125 which may have solved the timing bug.
Version 2.5 - 2/16/2013
* Mostly a bug-fix release
* Fixed problems with the parser where it wouldn't parse certain things correctly (for example, multiple sections inside a newSection declaration)
* Moved the homepage to a subpage of my personal website ( - all updates will be posted there from now on
* Removed some redundant code
* Added more command-line arguments and better argument handling
* Fixed the graphical feedback (it wasn't working because I had forgotten to pack the JFrame)
* Took out the constant check for updates and made it a command-line argument
* Separated the graphical and command-line elements more to keep with good design principles
Version 2.6 - 8/20/2013
* Fixed a stupid bug where the file chooser wasn't working
* Changed the wording of the initial dialog to make it clearer what you are choosing between
* Fixed the URL for checking for updates (I updated my website and changed some of the URLs)
* Added the repeat command
* Removed an unnecessary library, decreasing the size of the program
* Implemented relative paths
Version 2.7 - 8/30/2013
* Fixed another stupid bug where the save file chooser wasn't working
* Made the save file chooser start in the same directory as the musik file
* Fixed the crash after saying you want to save the file in text mode
* Handle unknown non-command input more gracefully (ignores the offending input)
Version 2.8 - 9/04/2013
* Fixed the multinote code so that all commands should now work (instead of only notes)
* Fixed the chord code so that all commands should now work (instead of only notes and sections)
* Fixed a bug where the saving code wasn't actually loading the synthesizer (although it claimed it was)
* Fixed the displayed URL for an update
Version 2.9 - 1/12/2016
* Completely rewritten in Haskell
* Breaking changes:
- Saves directly to a MIDI file
- Live mode currently removed - may be reintroduced in a future release
- Graphical interface discontinued - now completely a command-line program
- \saveOnly and \soundbank have been rendered obsolete as a result of these changes
* Beats can now be created
* Many little bugs fixed as a result of the complete rewrite
* New instrument mappings can now be created with \addInstrument
* \file is now an alias for \noPromptFile
* New beat character mappings can be created with \addBeatMap
Version 3.0 - 11/08/2016
* Rewrote to use State monad instead of IO monad
* Added many more scales and modes
* Added ability to read in from standard input
* Better and more informative error messages
* Default duration is now a quarter note
* Parsing is generally a lot more flexible
Version 3.1
* Rewrote significant parts to improve performance
* Updated documentation
......@@ -29,3 +29,30 @@ Musik is a program which takes text such as `C4 D4 E4 F4 G4 A4 B4 C^4` and trans
* Custom beat symbol mappings (to access sounds other than the ones mapped by default)
* Per-file option to specify the file to save the music to
* Allows you to split your music into multiple musik files and import them
# Building
To build Musik from source, you will need the following programs:
* ghc
* GNU Make
You will also need the following Haskell packages:
* HCodecs (provides `Codec.Midi`)
* megaparsec (provides `Text.Megaparsec`)
* text (provides `Data.Text`)
* unordered-containers (provides `Data.HashMap`)
* containers (provides `Data.Sequence`)
* mtl (provides `Control.Monad.State`)
* hashable (provides `Data.Hashable`)
* dlist (provides `Data.DList`)
* split (provides `Data.List.Split`)
You can install all of these dependencies in Debian sid by using the following set of commands:
sudo aptitude install haskell-platform libghc-megaparsec-dev libghc-unordered-containers-dev libghc-hashable-dev libghc-dlist-dev libghc-split-dev
cabal install HCodecs
After installing the dependencies, a simple `make` should generate the `musik` binary.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment