├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle
├── config
└── src
│ └── main
│ └── groovy
│ └── compiler-config.groovy
├── docs
├── assets
│ ├── css
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── mircomp.css
│ │ └── monokai.min.css
│ ├── images
│ │ ├── documentation.png
│ │ ├── download.png
│ │ ├── fork-github.png
│ │ ├── logo.png
│ │ ├── piano.png
│ │ ├── screenshots
│ │ │ ├── Bach-Invention1.png
│ │ │ ├── FraMartino.png
│ │ │ ├── FraMartinoMirIDE.png
│ │ │ ├── Marche.png
│ │ │ ├── MirIDE-start.png
│ │ │ ├── accidentals.png
│ │ │ ├── api.png
│ │ │ ├── automatic-notes-split.png
│ │ │ ├── automaton.png
│ │ │ ├── chord-symbols.png
│ │ │ ├── chords-inversions.png
│ │ │ ├── chords-progression.png
│ │ │ ├── controller-tab.png
│ │ │ ├── genetic.png
│ │ │ ├── instruments-tab.png
│ │ │ ├── major-scale.png
│ │ │ ├── midi-menubar-middle.png
│ │ │ ├── midi-menubar-top.png
│ │ │ ├── miride-hp.png
│ │ │ ├── miride-menubar.png
│ │ │ ├── mirmidi-hp.png
│ │ │ ├── mirmidi-pianoroll.png
│ │ │ ├── mirmidi.png
│ │ │ ├── mirscore-menubar.2png
│ │ │ ├── mirscore-menubar.png
│ │ │ ├── mirscore-playback.png
│ │ │ ├── mirscore.png
│ │ │ ├── mirtext-hp.png
│ │ │ ├── mirtext-menubar.png
│ │ │ ├── mirtext.png
│ │ │ ├── mirtext2.png
│ │ │ ├── mirtext3.png
│ │ │ ├── mysymbol.png
│ │ │ ├── new-project-dialog.png
│ │ │ ├── octave-marks.png
│ │ │ ├── phrase.png
│ │ │ ├── project-tree.png
│ │ │ ├── properties-dialog.png
│ │ │ ├── repeat-phrase.png
│ │ │ ├── rests.png
│ │ │ ├── scale.png
│ │ │ ├── simple-chord.png
│ │ │ ├── synth.png
│ │ │ ├── tempo-tab.png
│ │ │ ├── tied-notes.png
│ │ │ ├── transpose-phrase.png
│ │ │ ├── triplet.png
│ │ │ ├── universal-key.png
│ │ │ ├── unpitched-rhythm.png
│ │ │ └── zip-phrase-pattern.png
│ │ └── sitelogo.png
│ └── js
│ │ ├── bootstrap.min.js
│ │ ├── bootstrap.min.js.map
│ │ ├── clojure.min.js
│ │ ├── highlight.min.js
│ │ ├── java.min.js
│ │ └── mircomp.js
├── documentation.html
├── download.html
├── framework.html
├── getting_started.html
├── index.html
├── mirchord.html
├── mirchord_ext.html
├── mirmidi.html
├── mirscore.html
└── soundfonts.html
├── draft
└── workflows
│ └── build.yml
├── examples
└── Example1
│ ├── config.xml
│ ├── mirchords
│ ├── Arioso.mirchord
│ ├── FraMartino.mirchord
│ ├── Inno_alla_gioia.mirchord
│ ├── Invention1_JSBach.mirchord
│ ├── Marche-CPEBach.mirchord
│ └── Unpitched.mirchord
│ ├── mirgrams
│ ├── melchordsym.mirgram
│ └── score.mirgram
│ └── src
│ ├── JustIntonation.groovy
│ ├── builder
│ ├── AutoMeasureSepExample.groovy
│ ├── InstrumentChangeExample.groovy
│ ├── Marche.groovy
│ └── TripletsExample.groovy
│ ├── fo.groovy
│ ├── ge
│ ├── buildDataset.groovy
│ ├── chordProgMelody.groovy
│ └── melodyGE.groovy
│ └── ip.groovy
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libs
├── lingwah.jar
└── zong-all.jar
├── licenses
├── AceEditor-LICENSE
├── AtlantaFX-LICENSE
├── CrystalProject-LICENSE
├── Groovy-LICENSE
├── Lingwah-LICENSE
├── RichTextFx-LICENSE
└── Zong-LICENSE
├── mirchord
├── build.gradle
└── src
│ └── main
│ └── groovy
│ ├── io
│ └── github
│ │ └── mcolletta
│ │ └── mirchord
│ │ ├── core
│ │ ├── Chord.groovy
│ │ ├── ChordSymbol.groovy
│ │ ├── Instrument.groovy
│ │ ├── Music.groovy
│ │ ├── ScoreBuilder.groovy
│ │ └── Utils.groovy
│ │ ├── interpreter
│ │ ├── Grammar.groovy
│ │ ├── GroovyScriptInterpreter.groovy
│ │ ├── Interpreter.groovy
│ │ └── Processor.groovy
│ │ └── io
│ │ ├── Listeners.groovy
│ │ └── Readers.groovy
│ └── utils
│ ├── Importers.groovy
│ └── MChainFile.groovy
├── mircomposer
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mircomposer
│ ├── ConfigEditor.groovy
│ ├── ConfigurationManager.groovy
│ ├── DraggableTabs.groovy
│ ├── Editor.fxml
│ ├── Editor.groovy
│ ├── MirChordEditor.groovy
│ ├── MirComposer.groovy
│ ├── Utils.groovy
│ ├── UtilsFx.groovy
│ ├── resources
│ ├── icons
│ │ ├── checkedclipboard.png
│ │ ├── edit.png
│ │ ├── fileopen.png
│ │ ├── folder_new.png
│ │ ├── locked.png
│ │ ├── mix_audio.png
│ │ ├── project_open.png
│ │ ├── reload.png
│ │ ├── runprog.png
│ │ ├── sc_controlproperties.png
│ │ ├── stop.png
│ │ ├── view_sidetree.png
│ │ ├── view_tree.png
│ │ ├── window_new.png
│ │ └── xconsole.png
│ ├── images
│ │ └── logo.png
│ └── info.txt
│ └── styles.css
├── mirconverter
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirconverter
│ ├── Helper.groovy
│ ├── Listeners.groovy
│ ├── Utils.groovy
│ └── ZongConverter.groovy
├── mircoracle
├── README.md
├── build.gradle
└── src
│ ├── main
│ └── groovy
│ │ └── io
│ │ └── github
│ │ └── mcolletta
│ │ └── mircoracle
│ │ ├── Compressor.groovy
│ │ ├── ContinuationDictionary.groovy
│ │ ├── Demo.groovy
│ │ ├── FactorOracle.groovy
│ │ ├── OracleNavigator.groovy
│ │ └── TreeDictionary.groovy
│ └── test
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mircoracle
│ ├── OracleTests.groovy
│ └── PredictorTests.groovy
├── mirdaw
├── build.gradle
├── config
│ └── src
│ │ └── main
│ │ └── groovy
│ │ └── compiler-config.groovy
├── settings.gradle
└── src
│ └── main
│ ├── groovy
│ └── io
│ │ └── github
│ │ └── mcolletta
│ │ └── mirdaw
│ │ ├── ControllerEditor.groovy
│ │ ├── Instrument.groovy
│ │ ├── InstrumentsEditor.groovy
│ │ ├── MidiEditor.fxml
│ │ ├── MidiEditor.groovy
│ │ ├── MidiManager.groovy
│ │ ├── MidiTableView.fxml
│ │ ├── MidiTableView.groovy
│ │ ├── MidiView.groovy
│ │ ├── MirDAW.groovy
│ │ ├── PianoKeyboard.groovy
│ │ ├── PianoRollEditor.groovy
│ │ ├── ResizableRegion.groovy
│ │ ├── TempoEditor.groovy
│ │ ├── resources
│ │ ├── icons
│ │ │ ├── color_line.png
│ │ │ ├── colorman.png
│ │ │ ├── enumlist1.png
│ │ │ ├── eraser.png
│ │ │ ├── fileopen.png
│ │ │ ├── insert_table_row.png
│ │ │ ├── kcmmidi.png
│ │ │ ├── kmixdocked_mute.png
│ │ │ ├── mini_autoform.png
│ │ │ ├── mix_midi.png
│ │ │ ├── move.png
│ │ │ ├── new_window.png
│ │ │ ├── player_eject.png
│ │ │ ├── player_end.png
│ │ │ ├── player_fwd.png
│ │ │ ├── player_pause.png
│ │ │ ├── player_play.png
│ │ │ ├── player_rew.png
│ │ │ ├── player_start.png
│ │ │ ├── player_stop.png
│ │ │ ├── player_time.png
│ │ │ ├── redo.png
│ │ │ ├── reload.png
│ │ │ ├── sc_aligncenter.png
│ │ │ ├── sc_arrowshapes.striped-right-arrow.png
│ │ │ ├── sc_autoformat.png
│ │ │ ├── sc_beziersmooth.png
│ │ │ ├── sc_beziersmooth2.png
│ │ │ ├── sc_connectorline.png
│ │ │ ├── sc_firstrecord.png
│ │ │ ├── sc_freeline.png
│ │ │ ├── sc_lastrecord.png
│ │ │ ├── sc_nextrecord.png
│ │ │ ├── sc_prevrecord.png
│ │ │ ├── sc_save.png
│ │ │ ├── sc_saveas.png
│ │ │ ├── sc_selectobject.png
│ │ │ ├── sc_selecttable.png
│ │ │ ├── sc_spinbutton.png
│ │ │ ├── sc_toggleaxisdescr.png
│ │ │ ├── sc_zoom100percent.png
│ │ │ ├── sc_zoomin.png
│ │ │ ├── sc_zoomout.png
│ │ │ └── undo.png
│ │ └── themes
│ │ │ ├── cupertino-dark.css
│ │ │ ├── cupertino-light.css
│ │ │ ├── nord-dark.css
│ │ │ ├── nord-light.css
│ │ │ ├── primer-dark.css
│ │ │ └── primer-light.css
│ │ └── styles.css
│ └── java
│ ├── Main.java
│ └── module-info.java
├── mirfoldertreeview
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirfoldertreeview
│ ├── Demo.groovy
│ ├── FolderTreeView.fxml
│ ├── FolderTreeView.groovy
│ ├── PathTreeCell.groovy
│ ├── WatchFolderTask.groovy
│ ├── resources
│ └── icons
│ │ ├── cdaudio_mount.png
│ │ ├── file_doc.png
│ │ ├── folder.png
│ │ ├── groovy.png
│ │ ├── java.png
│ │ ├── midi.png
│ │ ├── mix_audio.png
│ │ ├── mix_midi.png
│ │ ├── music.png
│ │ ├── pdf.png
│ │ ├── sc_open.png
│ │ ├── tar.png
│ │ └── xml.png
│ └── styles.css
├── mirgene
├── .gitignore
├── README.md
├── build.gradle
└── src
│ ├── main
│ └── groovy
│ │ └── io
│ │ └── github
│ │ └── mcolletta
│ │ └── mirgene
│ │ ├── Demo.groovy
│ │ ├── Expression.groovy
│ │ ├── Fitness.groovy
│ │ ├── Grammar.groovy
│ │ ├── Individual.groovy
│ │ ├── MirGene.groovy
│ │ └── MirGram.groovy
│ └── test
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirgene
│ ├── GrammarTests.groovy
│ ├── GrammaticalEvolutionTests.groovy
│ └── resources
│ └── grammars
│ ├── chordprogression.mirgram
│ ├── chordprogression2.mirgram
│ ├── melody.mirgram
│ ├── symreg.mirgram
│ └── test.mirgram
├── miride
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── miride
│ ├── ConfigEditor.groovy
│ ├── ConfigurationManager.groovy
│ ├── DraggableTabs.groovy
│ ├── Editor.fxml
│ ├── Editor.groovy
│ ├── InterpreterTypeCheckingExtension.groovy
│ ├── MirChordEditor.groovy
│ ├── MirIDE.groovy
│ ├── NewProjectDialog.groovy
│ ├── ProjectInterpreter.groovy
│ ├── Utils.groovy
│ ├── UtilsFx.groovy
│ ├── resources
│ ├── icons
│ │ ├── checkedclipboard.png
│ │ ├── edit.png
│ │ ├── fileopen.png
│ │ ├── folder_new.png
│ │ ├── locked.png
│ │ ├── mix_audio.png
│ │ ├── project_open.png
│ │ ├── reload.png
│ │ ├── runprog.png
│ │ ├── sc_controlproperties.png
│ │ ├── stop.png
│ │ ├── view_sidetree.png
│ │ ├── view_tree.png
│ │ ├── window_new.png
│ │ └── xconsole.png
│ ├── images
│ │ └── logo.png
│ ├── info.txt
│ └── themes
│ │ ├── cupertino-dark.css
│ │ ├── cupertino-light.css
│ │ ├── nord-dark.css
│ │ ├── nord-light.css
│ │ ├── primer-dark.css
│ │ └── primer-light.css
│ └── styles.css
├── mirmidi
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirmidi
│ ├── ControllerEditor.groovy
│ ├── Demo.groovy
│ ├── InstrumentsEditor.groovy
│ ├── MidiEditor.fxml
│ ├── MidiEditor.groovy
│ ├── MidiManager.groovy
│ ├── MidiTableView.fxml
│ ├── MidiTableViewController.groovy
│ ├── MidiView.groovy
│ ├── PianoRollEditor.groovy
│ ├── ResizableCanvas.groovy
│ ├── TempoEditor.groovy
│ ├── resources
│ └── icons
│ │ ├── color_line.png
│ │ ├── colorman.png
│ │ ├── enumlist1.png
│ │ ├── eraser.png
│ │ ├── fileopen.png
│ │ ├── insert_table_row.png
│ │ ├── kcmmidi.png
│ │ ├── kmixdocked_mute.png
│ │ ├── mini_autoform.png
│ │ ├── mix_midi.png
│ │ ├── move.png
│ │ ├── new_window.png
│ │ ├── player_eject.png
│ │ ├── player_end.png
│ │ ├── player_fwd.png
│ │ ├── player_pause.png
│ │ ├── player_play.png
│ │ ├── player_rew.png
│ │ ├── player_start.png
│ │ ├── player_stop.png
│ │ ├── player_time.png
│ │ ├── redo.png
│ │ ├── reload.png
│ │ ├── sc_aligncenter.png
│ │ ├── sc_arrowshapes.striped-right-arrow.png
│ │ ├── sc_autoformat.png
│ │ ├── sc_beziersmooth.png
│ │ ├── sc_beziersmooth2.png
│ │ ├── sc_connectorline.png
│ │ ├── sc_firstrecord.png
│ │ ├── sc_freeline.png
│ │ ├── sc_lastrecord.png
│ │ ├── sc_nextrecord.png
│ │ ├── sc_prevrecord.png
│ │ ├── sc_save.png
│ │ ├── sc_saveas.png
│ │ ├── sc_selectobject.png
│ │ ├── sc_selecttable.png
│ │ ├── sc_spinbutton.png
│ │ ├── sc_toggleaxisdescr.png
│ │ ├── sc_zoom100percent.png
│ │ ├── sc_zoomin.png
│ │ ├── sc_zoomout.png
│ │ └── undo.png
│ └── styles.css
├── mirscore
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirscore
│ ├── Demo.groovy
│ ├── MidiScorePlayer.groovy
│ ├── Playback.groovy
│ ├── ScoreModel.groovy
│ ├── ScoreViewer.fxml
│ ├── ScoreViewer.groovy
│ ├── resources
│ └── icons
│ │ ├── fileopen.png
│ │ ├── move.png
│ │ ├── player_eject.png
│ │ ├── player_end.png
│ │ ├── player_fwd.png
│ │ ├── player_pause.png
│ │ ├── player_play.png
│ │ ├── player_rew.png
│ │ ├── player_start.png
│ │ ├── player_stop.png
│ │ ├── player_time.png
│ │ ├── sc_arrowshapes.striped-right-arrow.png
│ │ ├── sc_firstpage.png
│ │ ├── sc_firstrecord.png
│ │ ├── sc_lastpage.png
│ │ ├── sc_lastrecord.png
│ │ ├── sc_nextrecord.png
│ │ ├── sc_prevrecord.png
│ │ ├── sc_save.png
│ │ ├── sc_saveas.png
│ │ ├── sc_selectobject.png
│ │ ├── sc_zoom100percent.png
│ │ ├── sc_zoomin.png
│ │ └── sc_zoomout.png
│ └── styles.css
├── mirsynth
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirsynth
│ ├── Complex.groovy
│ ├── DSP
│ ├── BiquadFilter.groovy
│ ├── Envelope.groovy
│ ├── Filter.groovy
│ ├── MirOscillator.groovy
│ ├── MirSynth.groovy
│ ├── Utils.groovy
│ ├── instruments
│ │ ├── AdditiveOscillator.groovy
│ │ ├── DoubleFrequencyModulationSynthOscillator.groovy
│ │ ├── FrequencyModulationOscillator.groovy
│ │ └── SubtractiveOscillator.groovy
│ └── oscillators
│ │ ├── AdditiveSynth.groovy
│ │ ├── DoubleFrequencyModulationSynth.groovy
│ │ ├── FrequencyModulationSynth.groovy
│ │ └── SubtractiveSynth.groovy
│ ├── DigitalSignal.groovy
│ ├── ExampleOscillators.groovy
│ ├── FastFourierTransform.groovy
│ ├── PlotUtils.groovy
│ ├── SimpleMidiPlayer.groovy
│ ├── SynthManager.groovy
│ └── resources
│ └── midi
│ └── Invention.mid
├── mirtext
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirtext
│ ├── Demo.groovy
│ ├── Mode.groovy
│ ├── TextEditor.fxml
│ ├── TextEditor.groovy
│ ├── Theme.groovy
│ ├── resources
│ ├── ace
│ │ ├── editor.html
│ │ ├── editor.template
│ │ └── third-party
│ │ │ ├── ace.js
│ │ │ ├── ext-beautify.js
│ │ │ ├── ext-chromevox.js
│ │ │ ├── ext-code_lens.js
│ │ │ ├── ext-elastic_tabstops_lite.js
│ │ │ ├── ext-emmet.js
│ │ │ ├── ext-error_marker.js
│ │ │ ├── ext-hardwrap.js
│ │ │ ├── ext-keybinding_menu.js
│ │ │ ├── ext-language_tools.js
│ │ │ ├── ext-linking.js
│ │ │ ├── ext-modelist.js
│ │ │ ├── ext-old_ie.js
│ │ │ ├── ext-options.js
│ │ │ ├── ext-prompt.js
│ │ │ ├── ext-rtl.js
│ │ │ ├── ext-searchbox.js
│ │ │ ├── ext-settings_menu.js
│ │ │ ├── ext-spellcheck.js
│ │ │ ├── ext-split.js
│ │ │ ├── ext-static_highlight.js
│ │ │ ├── ext-statusbar.js
│ │ │ ├── ext-textarea.js
│ │ │ ├── ext-themelist.js
│ │ │ ├── ext-whitespace.js
│ │ │ ├── keybinding-emacs.js
│ │ │ ├── keybinding-sublime.js
│ │ │ ├── keybinding-vim.js
│ │ │ ├── keybinding-vscode.js
│ │ │ ├── mode-abc.js
│ │ │ ├── mode-batchfile.js
│ │ │ ├── mode-diff.js
│ │ │ ├── mode-dot.js
│ │ │ ├── mode-groovy.js
│ │ │ ├── mode-java.js
│ │ │ ├── mode-javascript.js
│ │ │ ├── mode-json.js
│ │ │ ├── mode-jsp.js
│ │ │ ├── mode-latex.js
│ │ │ ├── mode-mirchord.js
│ │ │ ├── mode-praat.js
│ │ │ ├── mode-sh.js
│ │ │ ├── mode-tex.js
│ │ │ ├── mode-text.js
│ │ │ ├── mode-xml.js
│ │ │ ├── mode-yaml.js
│ │ │ ├── snippets
│ │ │ ├── abc.js
│ │ │ ├── groovy.js
│ │ │ ├── plain_text.js
│ │ │ ├── praat.js
│ │ │ ├── xml.js
│ │ │ └── yaml.js
│ │ │ ├── theme-ambiance.js
│ │ │ ├── theme-chaos.js
│ │ │ ├── theme-chrome.js
│ │ │ ├── theme-clouds.js
│ │ │ ├── theme-clouds_midnight.js
│ │ │ ├── theme-cobalt.js
│ │ │ ├── theme-crimson_editor.js
│ │ │ ├── theme-dawn.js
│ │ │ ├── theme-dreamweaver.js
│ │ │ ├── theme-eclipse.js
│ │ │ ├── theme-github.js
│ │ │ ├── theme-gob.js
│ │ │ ├── theme-gruvbox.js
│ │ │ ├── theme-idle_fingers.js
│ │ │ ├── theme-iplastic.js
│ │ │ ├── theme-katzenmilch.js
│ │ │ ├── theme-kr_theme.js
│ │ │ ├── theme-kuroir.js
│ │ │ ├── theme-merbivore.js
│ │ │ ├── theme-merbivore_soft.js
│ │ │ ├── theme-mono_industrial.js
│ │ │ ├── theme-monokai.js
│ │ │ ├── theme-nord_dark.js
│ │ │ ├── theme-one_dark.js
│ │ │ ├── theme-pastel_on_dark.js
│ │ │ ├── theme-solarized_dark.js
│ │ │ ├── theme-solarized_light.js
│ │ │ ├── theme-sqlserver.js
│ │ │ ├── theme-terminal.js
│ │ │ ├── theme-textmate.js
│ │ │ ├── theme-tomorrow.js
│ │ │ ├── theme-tomorrow_night.js
│ │ │ ├── theme-tomorrow_night_blue.js
│ │ │ ├── theme-tomorrow_night_bright.js
│ │ │ ├── theme-tomorrow_night_eighties.js
│ │ │ ├── theme-twilight.js
│ │ │ ├── theme-vibrant_ink.js
│ │ │ ├── theme-xcode.js
│ │ │ ├── worker-base.js
│ │ │ ├── worker-css.js
│ │ │ ├── worker-html.js
│ │ │ ├── worker-javascript.js
│ │ │ ├── worker-json.js
│ │ │ └── worker-xml.js
│ └── icons
│ │ ├── colorize.png
│ │ ├── comment.png
│ │ ├── editclear.png
│ │ ├── editcopy.png
│ │ ├── editcut.png
│ │ ├── editpaste.png
│ │ ├── filefind.png
│ │ ├── fileopen.png
│ │ ├── filesave.png
│ │ ├── filesaveas.png
│ │ ├── find.png
│ │ ├── fonts.png
│ │ ├── fontsizedown.png
│ │ ├── fontsizeup.png
│ │ ├── gear.png
│ │ ├── redo.png
│ │ ├── reload.png
│ │ ├── sc_reload.png
│ │ ├── sc_save.png
│ │ ├── sc_saveas.png
│ │ ├── templates.png
│ │ └── undo.png
│ └── styles.css
├── mirtextfx
├── .gitignore
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirtextfx
│ ├── Demo.groovy
│ ├── TextEditor.fxml
│ ├── TextEditor.groovy
│ ├── languages
│ ├── GroovySyntaxHighlighter.groovy
│ ├── MirchordSyntaxHighlighter.groovy
│ ├── Mode.groovy
│ ├── SyntaxHighlighter.groovy
│ └── Theme.groovy
│ ├── resources
│ ├── bright.css
│ ├── icons
│ │ ├── colorize.png
│ │ ├── comment.png
│ │ ├── editclear.png
│ │ ├── editcopy.png
│ │ ├── editcut.png
│ │ ├── editpaste.png
│ │ ├── filefind.png
│ │ ├── fileopen.png
│ │ ├── filesave.png
│ │ ├── filesaveas.png
│ │ ├── find.png
│ │ ├── fonts.png
│ │ ├── fontsizedown.png
│ │ ├── fontsizeup.png
│ │ ├── gear.png
│ │ ├── redo.png
│ │ ├── reload.png
│ │ ├── sc_reload.png
│ │ ├── sc_save.png
│ │ ├── sc_saveas.png
│ │ ├── templates.png
│ │ └── undo.png
│ └── monokai.css
│ └── styles.css
├── mirutils
├── build.gradle
└── src
│ └── main
│ └── groovy
│ └── io
│ └── github
│ └── mcolletta
│ └── mirutils
│ └── TabContent.groovy
├── resources
├── MC
├── icon.png
└── images
│ ├── Screenshot1.png
│ ├── Screenshot2.png
│ ├── Screenshot3.png
│ └── ScreenshotDemoApp.png
├── settings.gradle
└── tools
└── buildsite
├── site
├── content
│ ├── documentation.html
│ ├── download.html
│ ├── framework.html
│ ├── getting_started.html
│ ├── index.html
│ ├── mirchord.html
│ ├── mirchord_ext.html
│ ├── mirmidi.html
│ ├── mirscore.html
│ └── soundfonts.html
└── site.template
└── sitegen.groovy
/.gitattributes:
--------------------------------------------------------------------------------
1 | mode-mirchord.js linguist-vendored=false
2 | miride/src/main/groovy/io/github/mcolletta/miride/resources/themes/** linguist-vendored
3 | mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/themes/** linguist-vendored
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 | Thumbs.db
3 |
4 | # Package Files #
5 | # *.jar
6 | *.war
7 | *.ear
8 |
9 | # Directories #
10 | .metadata
11 | .metadata*
12 | .recommenders
13 | .gradle
14 | bin
15 | build
16 | /doc
17 |
18 |
19 | # Eclipse settings (should be generated with Gradle import in Eclipse)
20 | .project
21 | .classpath
22 | .settings
23 |
24 | # IntelliJ IDEA settings (should be generated with Gradle import in Eclipse)
25 | .idea
26 | *.iml
--------------------------------------------------------------------------------
/config/src/main/groovy/compiler-config.groovy:
--------------------------------------------------------------------------------
1 | import groovy.transform.CompileStatic
2 |
3 | withConfig(configuration) {
4 | ast(CompileStatic)
5 | }
6 |
--------------------------------------------------------------------------------
/docs/assets/css/mircomp.css:
--------------------------------------------------------------------------------
1 |
2 | .spaced {
3 | margin: 35px 0;
4 | }
5 |
6 | .x-scroll {
7 | overflow-x: scroll;
8 | }
9 |
10 | .mircomp-logo {
11 | display: inline-block;
12 | }
13 |
14 | .vintage-font {
15 | font-family: fixedsys, monospace;
16 | }
17 |
18 | .b-heroes-divider {
19 | width: 100%;
20 | height: 1rem;
21 | background-color: rgba(0, 0, 0, .1);
22 | border: solid rgba(0, 0, 0, .15);
23 | border-width: 1px 0;
24 | box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
25 | }
26 |
27 | .page-header {
28 | padding-bottom: 9px;
29 | margin: 40px 0 20px;
30 | border-bottom: 1px solid #eee;
31 | }
32 |
--------------------------------------------------------------------------------
/docs/assets/css/monokai.min.css:
--------------------------------------------------------------------------------
1 | pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#272822;color:#ddd}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-selector-tag,.hljs-strong,.hljs-tag{color:#f92672}.hljs-code{color:#66d9ef}.hljs-attribute,.hljs-link,.hljs-regexp,.hljs-symbol{color:#bf79db}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-emphasis,.hljs-section,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string,.hljs-subst,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#a6e22e}.hljs-class .hljs-title,.hljs-title.class_{color:#fff}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#75715e}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-section,.hljs-selector-id,.hljs-selector-tag,.hljs-title,.hljs-type{font-weight:700}
--------------------------------------------------------------------------------
/docs/assets/images/documentation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/documentation.png
--------------------------------------------------------------------------------
/docs/assets/images/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/download.png
--------------------------------------------------------------------------------
/docs/assets/images/fork-github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/fork-github.png
--------------------------------------------------------------------------------
/docs/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/logo.png
--------------------------------------------------------------------------------
/docs/assets/images/piano.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/piano.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/Bach-Invention1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/Bach-Invention1.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/FraMartino.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/FraMartino.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/FraMartinoMirIDE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/FraMartinoMirIDE.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/Marche.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/Marche.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/MirIDE-start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/MirIDE-start.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/accidentals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/accidentals.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/api.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/api.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/automatic-notes-split.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/automatic-notes-split.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/automaton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/automaton.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/chord-symbols.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/chord-symbols.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/chords-inversions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/chords-inversions.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/chords-progression.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/chords-progression.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/controller-tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/controller-tab.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/genetic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/genetic.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/instruments-tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/instruments-tab.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/major-scale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/major-scale.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/midi-menubar-middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/midi-menubar-middle.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/midi-menubar-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/midi-menubar-top.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/miride-hp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/miride-hp.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/miride-menubar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/miride-menubar.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirmidi-hp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirmidi-hp.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirmidi-pianoroll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirmidi-pianoroll.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirmidi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirmidi.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirscore-menubar.2png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirscore-menubar.2png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirscore-menubar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirscore-menubar.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirscore-playback.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirscore-playback.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirscore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirscore.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirtext-hp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirtext-hp.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirtext-menubar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirtext-menubar.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirtext.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirtext.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirtext2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirtext2.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mirtext3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mirtext3.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/mysymbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/mysymbol.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/new-project-dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/new-project-dialog.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/octave-marks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/octave-marks.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/phrase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/phrase.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/project-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/project-tree.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/properties-dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/properties-dialog.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/repeat-phrase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/repeat-phrase.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/rests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/rests.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/scale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/scale.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/simple-chord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/simple-chord.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/synth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/synth.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/tempo-tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/tempo-tab.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/tied-notes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/tied-notes.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/transpose-phrase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/transpose-phrase.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/triplet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/triplet.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/universal-key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/universal-key.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/unpitched-rhythm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/unpitched-rhythm.png
--------------------------------------------------------------------------------
/docs/assets/images/screenshots/zip-phrase-pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/screenshots/zip-phrase-pattern.png
--------------------------------------------------------------------------------
/docs/assets/images/sitelogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/docs/assets/images/sitelogo.png
--------------------------------------------------------------------------------
/docs/assets/js/mircomp.js:
--------------------------------------------------------------------------------
1 |
2 | function showSHA512() {
3 | document.getElementById('divSHA512').style.display = 'block'
4 | }
--------------------------------------------------------------------------------
/draft/workflows/build.yml:
--------------------------------------------------------------------------------
1 | # name: Build MirIDE
2 | # on: workflow_dispatch
3 |
4 | # jobs:
5 | # build-app:
6 | # strategy:
7 | # matrix:
8 | # # os: [ macos-latest, ubuntu-latest, windows-latest ]
9 | # os: [ ubuntu-latest, windows-latest ]
10 | # name: Build and create a self-contained application
11 | # runs-on: ${{ matrix.os }}
12 | # steps:
13 | # - name: checkout
14 | # uses: actions/checkout@v2
15 | # - name: Setup Java
16 | # uses: actions/setup-java@v3
17 | # with:
18 | # java-version: '21'
19 | # distribution: 'temurin'
20 | # - run: ./gradlew :miride:createApp
21 | # - run: mv miride/build/app .
22 | # - name: upload application as artifact
23 | # uses: actions/upload-artifact@v2
24 | # with:
25 | # name: MirIDE-${{matrix.os}}
26 | # path: app
--------------------------------------------------------------------------------
/examples/Example1/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | lib
4 |
5 |
6 |
--------------------------------------------------------------------------------
/examples/Example1/mirchords/Arioso.mirchord:
--------------------------------------------------------------------------------
1 | ; Arioso - Johann Sebastian Bach
2 |
3 | =1 ~1 ; Part 1 Voice 1
4 | (durationMode "sticky") (octaveMode "relative")
5 |
6 | (key "G" "maj")
7 | (instr "acoustic grand piano")
8 |
9 | (def :intro1 { ^5 b2- -b8 c d e | a,2- -a8 b c d | g,4 g'8 e c2- | -c8 a' f d c4 b8 c | b4 a8 g _2 | })
10 |
11 | (def :A1 { _4 b g' _ | _ a e' _ | _ a, f' _ | _ g, d' _ | _ a e' _ | _1 | _8 e, g b _2 | _1 | } )
12 |
13 | (def :B1 { ^5 b2- -b8 c d e | a,2- -a8 b c d | g,4 g'8 e c2- | -c8 a' f d c4 b8 c | b d b g f§4 e8 f§ | e f f g g2- | -g8 f g e f4. g8 | g1- | -g1 })
14 |
15 | :intro1 :A1 :intro1 :B1
16 |
17 | =2 ~1 (durationMode "sticky") (octaveMode "relative")
18 |
19 | (key "G" "maj")
20 | (instr "acoustic grand piano")
21 |
22 | (def :intro2 { b2- -b8 c d e | a,2- -a8 b c d | g,4 g'8 e c2- | -c8 a' f d c4 b8 c | b4 a8 g _2 |} )
23 |
24 | (def :A2 { g'2- -g8 e f g | a,2- -a8 c# e g | f2- -f8 d b a | g2- -g8 b d f | e2- -e8 c# a g | f a c# d d2- -d4 b c4. d8 | d1 } )
25 |
26 | (def :B2 { b8 d b d b _ b4 | a8 d a d a _ a4 | g g'8 e c2- | -c8 a' f d c4 b8 c | b2 g2 | c2 b&2 | b§4 g a d | b d8 e d e c4 | [b d]1 })
27 |
28 | :intro2 :A2 :intro2 :B2
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/examples/Example1/mirchords/FraMartino.mirchord:
--------------------------------------------------------------------------------
1 | ; Fra Martino campanaro
2 |
3 | =1 ~1
4 | (instr "flute")
5 | (key "D" "min")
6 | (durationMode "sticky") (octaveMode "relative")
7 |
8 | (def :fra { ^4 f4 g a f }) ; Fra Martino campanaro
9 |
10 | (def :dormi { ^4 a4 b c2 }) ; dormi tu?
11 |
12 | (def :campane { ^5 c8 d c b a4 f }) ; suona le campane
13 |
14 | (def :din { ^4 f4 c f2 }) ; din don dan
15 |
16 | (* 2 :fra) (* 2 :dormi) (* 2 :campane) (* 2 :din)
17 |
--------------------------------------------------------------------------------
/examples/Example1/mirchords/Inno_alla_gioia.mirchord:
--------------------------------------------------------------------------------
1 | ; Inno alla gioia - Ludwig van Beethoven
2 | ; brano n.8 nel quadernone di "Educazione Musicale" delle medie (il n.1 è la piccola melodia "Suono Subito")
3 | ; copiata dalla lavagna, la trascrizione originale del professore usava una particolare notazione testuale:
4 | ; 'd' per DO, 'r' per RE, 'm' per MI, ecc.. (suonata con il flauto non serviva una notazione per le ottave)
5 | ; la lunghezza delle linee orizzontali sui quadretti funzionale per definire la durata delle note
6 | ; - sezione H, succursale in zona mare della scuola media L.C.
7 |
8 |
9 | =1 ~1 ; Part 1 Voice 1
10 | (time 4 4)
11 | (instr "flute")
12 | (durationMode "sticky") (octaveMode "relative")
13 |
14 | (* 2 {e e f g | g f e d | c c d e | e4. d8 d2 |
15 | e4 e f g | g f d2 | c4 c d e | d4. c8 c2 |
16 | d4 d e c | d e8 f e4 c | d e8 f e4 d | c d g2 |
17 | e4 e f g | g f e d | c c d e | d4. c8 c2 })
18 |
19 | { d4 d e c | d e8 f e4 c | d e8 f e4 d | c d g2 |
20 | e4 e f g | g f e d | c c d e | d4. c8 c2 }
21 |
--------------------------------------------------------------------------------
/examples/Example1/mirchords/Invention1_JSBach.mirchord:
--------------------------------------------------------------------------------
1 | ; Invention N. 1 - J.S. Bach
2 |
3 | (info
4 | (title "Invention N. 1")
5 | (composer "Johann Sebastian Bach")
6 | )
7 |
8 | =1 ~1 (octaveMode "relative") (durationMode "sticky")
9 | (key "C" "maj")
10 | (clef "treble")
11 | (name "Voice 1")
12 | _16 c d e f d e c g'8 c b8 c | d16 g, a b c a b g d'8 g f g |
13 |
14 | =2 ~1 (octaveMode "relative") (durationMode "sticky")
15 | (clef "bass")
16 | (name "Voice 2")
17 | ^3 _2 _16 c d e f d e c | g'8 g, _4 _16 g a b c a b g |
18 |
19 | =1
20 | ^5 e16 a g f e g f a g f e d c e d f | e d c b a c b d c b a g f# a g b
21 |
22 | =2
23 | ^4 c8 b c d e g, a b | c e, f# g a b c4
--------------------------------------------------------------------------------
/examples/Example1/mirchords/Marche-CPEBach.mirchord:
--------------------------------------------------------------------------------
1 | (info
2 | (title "Marche")
3 | (composer "Carl Philipp Emanuel Bach")
4 | )
5 |
6 | =1 ~1 (octaveMode "relative") (durationMode "sticky")
7 | (instr "acoustic grand piano")
8 | (key "E&" "maj")
9 | (clef "treble")
10 | ^4 _ _ _ e8 g | b4 c8 d e b g'4 | g8 f e d e4 [a, c] | [a c] [g b]2 [f a]4 | (tp 3/2 g8 f e) e2 a'4 |
11 |
12 | =2 ~1 (octaveMode "relative") (durationMode "sticky")
13 | (key -3 "maj")
14 | (clef "bass")
15 | ^3 _ _ _ e | g a8 f g4 e | b b' e, a | b2 b, | e4 g8 f g4 e | d b' b, b'
16 |
17 | =1
18 | (tp 3/2 f8 e d) d d d f e d
--------------------------------------------------------------------------------
/examples/Example1/mirchords/Unpitched.mirchord:
--------------------------------------------------------------------------------
1 | =1 ~1 (durationMode "sticky") (octaveMode "relative")
2 | (clef "percussion")
3 | (unpitched "crashcymbala" "E" 5)
4 | x4 x x x x2 x2 x x8 x x x
5 |
6 | ~2 (durationMode "sticky") (octaveMode "relative")
7 | (unpitched "acousticbassdrum" "C" 4)
8 | x8 x4 x x8 x8 x4 x x8 x8 x4 x x8 x8 x4 x x8
9 |
10 | ~1 (* 3 {o16 o o o})
--------------------------------------------------------------------------------
/examples/Example1/mirgrams/melchordsym.mirgram:
--------------------------------------------------------------------------------
1 | ::= =1 ~1 (clef "treble") =2 ~1 (clef "bass") \n
2 |
3 |
4 | ::= empty
5 |
6 | ::= \s
7 |
8 | ::= |
9 |
10 | ::= empty
11 |
12 | ::= \s !40
13 | ::= \s !20
14 | ::= \s !10
15 |
16 | ::=
17 | ::=
18 | ::=
19 |
20 | ::= =2 \s `1/8 \s \s =1 \s <%/%>
21 | ::= =2 \s `1/4 \s \s =1 \s <%/%>
22 | ::= =2 \s `1/2 \s \s =1 \s <%/%>
23 | ::= =2 \s `1/1 \s \s =1 \s <%/%>
24 |
25 | ::= I | IImin | IV | IV | VImin | VIIdim
26 |
27 | ::= 1 | 2 | 3
28 |
29 | ::= empty
30 | ::= \s !10
31 | ::= \s !50
32 | ::= \s !30
33 |
34 | ::= ^3 \s
35 | <%+
36 | ::= (ch \s \s ${sym} \s x8)
37 | ::= (ch \s \s ${sym} \s x4)
38 | ::= (ch \s \s ${sym} \s x2)
39 | %>
40 |
--------------------------------------------------------------------------------
/examples/Example1/mirgrams/score.mirgram:
--------------------------------------------------------------------------------
1 |
2 | ::= =1 ~1 \n
3 | <%+ ::= ^4 !80 | ^3 !20 %> \s
4 | <%/%> \n
5 | ; CHORUS \n
6 | <%+
7 | ::= ^4 !50 | ^5 !50
8 | ::= \s !5 |
9 | \s !10
10 | ::= 16
11 | %>
12 | \s
13 | <%/%> \n
14 | ; ENDING \n
15 | <%+ ::= ^4 !80 | ^3 !20 %> \s
16 |
17 | ::=
18 |
19 | ::= \n
20 |
21 | ::=
22 |
23 | ::=
24 |
25 | ::= \s
26 |
27 | ::= (def : \s { \s })
28 | <%+
29 | ::= :${id} \s !35 |
30 | ( \s :${id}) \s ) !10
31 | %>
32 |
33 | ::= <%= phrase %>
34 |
35 | ::= 1 !90 | 2 !10
36 | ::= transposeDiatonic \s \s "maj"
37 |
38 | ::= c | d | e | f | g | a | b
39 |
40 | ::= empty !98 |
41 | # !1 |
42 | & !1
43 |
44 | ::=
45 |
46 | ::= empty
47 |
48 | ::= \s !5
49 |
50 | ::= \s !10
51 |
52 | ::= \s !35
53 |
54 | ::= \s !50
55 |
56 | ::= 8
57 | ::= 4
58 | ::= 2
59 | ::= 1
60 |
--------------------------------------------------------------------------------
/examples/Example1/src/JustIntonation.groovy:
--------------------------------------------------------------------------------
1 | // 1:1 9:8 5:4 4:3 3:2 5:3 15:8 2:1
2 |
3 | float[] ratios = [ 1,
4 | 9/8,
5 | 5/4,
6 | 4/3,
7 | 3/2,
8 | 5/3,
9 | 15/8,
10 | 2
11 | ]
12 |
13 | float f0 = 261.62558
14 |
15 | List frequencies = []
16 | for (int i = 0; i < 8; i++) {
17 | frequencies[i] = f0 * ratios[i]
18 | }
19 | println frequencies
20 | MidiPlayer.playFrequencies(frequencies, [1000f])
--------------------------------------------------------------------------------
/examples/Example1/src/builder/AutoMeasureSepExample.groovy:
--------------------------------------------------------------------------------
1 | new ScoreBuilder().score() {
2 | part(name:"P1") {
3 | voice() {
4 | clef(type:ClefType.TREBLE)
5 | key(fifths:0, mode:KeyMode.MAJOR)
6 | time(time:fr(4,4))
7 | tempo(baseBeat:fr(1,4), bpm:90)
8 | chord(midiPitch:60, duration:f4)
9 | chord(midiPitch:62, duration:f4)
10 | chord(midiPitch:64, duration:f4dot)
11 | chord(midiPitch:60, duration:f4)
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/examples/Example1/src/builder/InstrumentChangeExample.groovy:
--------------------------------------------------------------------------------
1 | // first measures of Frère Jacques (the Italian version is known as "Fra Martino")
2 | def f4 = fr(1,4)
3 | def f2 = fr(1,2)
4 | def f1 = fr(1,1)
5 | def fra_martino = new ScoreBuilder().score() {
6 | part(name:"P1") {
7 | voice() {
8 | clef(type:ClefType.TREBLE)
9 | key(fifths:0, mode:KeyMode.MAJOR)
10 | time(time:fr(4,4))
11 | tempo(baseBeat:fr(1,4), bpm:90)
12 | (1..2).each {
13 | chord(midiPitch:60, duration:f4)
14 | chord(midiPitch:62, duration:f4)
15 | chord(midiPitch:64, duration:f4)
16 | chord(midiPitch:60, duration:f4)
17 | }
18 | instrument(id:"Violin 1", program:41)
19 | (1..2).each {
20 | chord(midiPitch:64, duration:f4)
21 | chord(midiPitch:65, duration:f4)
22 | chord(midiPitch:67, duration:f2)
23 | }
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/examples/Example1/src/builder/TripletsExample.groovy:
--------------------------------------------------------------------------------
1 | new ScoreBuilder().score() {
2 | part(name: "P1") {
3 | voice() {
4 | clef(type:ClefType.TREBLE)
5 | key(fifths:0, mode:KeyMode.MAJOR)
6 | time(time:fr(4,4))
7 | tempo(baseBeat:fr(1,4), bpm:90)
8 | chord(midiPitch:60, duration:f2)
9 | tuplet(ratio:fr(3,2)) {
10 | chord(midiPitch:62, duration:f4)
11 | chord(midiPitch:64, duration:f4)
12 | chord(midiPitch:60, duration:f4)
13 | }
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/examples/Example1/src/fo.groovy:
--------------------------------------------------------------------------------
1 | File f = new File( projectPath.resolve("musicxml/chroma").toString() )
2 | def reader = new MusicXmlLeadSheetReader()
3 | def score_subscr = new MirchordScoreBuilder()
4 | reader.addLeadSheetListener(score_subscr)
5 | reader.read(f)
6 |
7 | List notes = []
8 | for(Score score: score_subscr.scores) {
9 | notes.addAll( score.parts[0].voices[0].getChords() )
10 | }
11 |
12 | Comparator comparator = [
13 | compare:{ Chord a, Chord b -> a.pitches[0].getMidiValue() <=> b.pitches[0].getMidiValue() }
14 | ] as Comparator
15 |
16 |
17 | var fo = new FactorOracle(notes, comparator)
18 | var nav = new OracleNavigator(fo)
19 | var seq = nav.navigate(0, 330)
20 |
21 | var score = new Score()
22 | var part = new Part("Melody")
23 | score.parts.add(part)
24 | var voice = new Voice()
25 | part.voices.add(voice)
26 | part.voices[0].elements = []
27 |
28 | for (int i = 0; i < seq.size(); i++) {
29 | voice.elements << seq[i]
30 | }
31 |
32 | def midiFile = projectPath.resolve('midi/fo.mid').toFile()
33 | saveAs(score, midiFile)
34 |
35 | score
36 |
--------------------------------------------------------------------------------
/examples/Example1/src/ge/buildDataset.groovy:
--------------------------------------------------------------------------------
1 | File f = new File( projectPath.resolve("musicxml/chroma").toString() )
2 | def reader = new MusicXmlLeadSheetReader()
3 | def chroma_subscr = new ChromaFeatures()
4 | reader.addLeadSheetListener(chroma_subscr)
5 | reader.read(f)
6 | var chroma_compr = new Compressor(chroma_subscr.features)
7 | saveObjectToBinaryFile(chroma_compr, projectPath.resolve("data/chroma.ser").toString() )
8 |
9 |
10 | f = new File( projectPath.resolve("musicxml/dur").toString() )
11 | reader = new MusicXmlLeadSheetReader()
12 | def durations_subscr = new Durations()
13 | reader.addLeadSheetListener(durations_subscr)
14 | reader.read(f)
15 | var durations_compr = new Compressor(durations_subscr.durations)
16 | saveObjectToBinaryFile(durations_compr, projectPath.resolve("data/durations.ser").toString() )
17 |
--------------------------------------------------------------------------------
/examples/Example1/src/ge/chordProgMelody.groovy:
--------------------------------------------------------------------------------
1 | def grammarText = getClass().getResourceAsStream("mirgrams/melchordsym.mirgram").getText()
2 | def gr = new MirGram(grammarText, "score", 3)
3 | List cods = []
4 | def rand = new Random(123456789L)
5 | (1..1000).each {
6 | cods << rand.nextInt(256)
7 | }
8 | def result = gr.translate(cods)
--------------------------------------------------------------------------------
/examples/Example1/src/ip.groovy:
--------------------------------------------------------------------------------
1 | File f = new File( projectPath.resolve("musicxml/chroma").toString() )
2 | def reader = new MusicXmlLeadSheetReader()
3 | def score_subscr = new MirchordScoreBuilder()
4 | reader.addLeadSheetListener(score_subscr)
5 | reader.read(f)
6 |
7 | List notes = []
8 | for(Score score: score_subscr.scores) {
9 | notes.addAll( score.parts[0].voices[0].getChords() )
10 | }
11 |
12 | Comparator comparator = [
13 | compare:{ Chord a, Chord b -> a.pitches[0].getMidiValue() <=> b.pitches[0].getMidiValue() }
14 | ] as Comparator
15 | var ip = new IncrementalParser(notes, comparator)
16 |
17 |
18 | var seq = ip.generate(new Chord(new Pitch('E'), fr(1,8)), 330, 16)
19 |
20 |
21 | var score = new Score()
22 | var part = new Part("Melody")
23 | score.parts.add(part)
24 | var voice = new Voice()
25 | part.voices.add(voice)
26 | part.voices[0].elements = []
27 |
28 | for (int i = 0; i < seq.size(); i++) {
29 | voice.elements << seq[i]
30 | }
31 |
32 | def midiFile = projectPath.resolve('midi/ip.mid').toFile()
33 | saveAs(score, midiFile)
34 |
35 | score
36 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/libs/lingwah.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/libs/lingwah.jar
--------------------------------------------------------------------------------
/libs/zong-all.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/libs/zong-all.jar
--------------------------------------------------------------------------------
/licenses/AceEditor-LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010, Ajax.org B.V.
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 | * Redistributions of source code must retain the above copyright
7 | notice, this list of conditions and the following disclaimer.
8 | * Redistributions in binary form must reproduce the above copyright
9 | notice, this list of conditions and the following disclaimer in the
10 | documentation and/or other materials provided with the distribution.
11 | * Neither the name of Ajax.org B.V. nor the
12 | names of its contributors may be used to endorse or promote products
13 | derived from this software without specific prior written permission.
14 |
15 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 | DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
19 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 |
--------------------------------------------------------------------------------
/licenses/AtlantaFX-LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) [2022] [mkpaz]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/licenses/CrystalProject-LICENSE:
--------------------------------------------------------------------------------
1 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 | This copyright and license notice covers the crystal project images.
3 | ************************************************************************
4 |
5 | TITLE: Crystal Project Icons
6 | AUTHOR: Everaldo Coelho
7 | SITE: http://www.everaldo.com
8 | CONTACT: everaldo@everaldo.com
9 |
10 | Copyright (c) 2006-2007 Everaldo Coelho.
11 |
12 | LICENSE: GNU Lesser General Public License (LGPL) - see
13 |
--------------------------------------------------------------------------------
/licenses/RichTextFx-LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013-2017, Tomas Mikula and contributors
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5 |
6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7 |
8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 |
10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11 |
--------------------------------------------------------------------------------
/mirchord/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'groovy'
2 | apply plugin: 'application'
3 |
4 |
5 | sourceSets {
6 | main {
7 | groovy {
8 | srcDirs = ['src/main/groovy']
9 | }
10 | resources {
11 | srcDir 'resources'
12 | }
13 | }
14 | }
15 |
16 | jar {
17 | manifest.attributes 'Created-By': 'Mirco Colletta'
18 | }
19 |
20 | task runScript(type: JavaExec) {
21 | description 'Run Simple Demo'
22 | mainClass = 'io.github.mcolletta.mirchord.interpreter.MirChordInterpreter'
23 | classpath = sourceSets.main.runtimeClasspath
24 |
25 | if (project.hasProperty('custom_arg')) {
26 | args project.getProperty('custom_arg')
27 | }
28 | }
29 |
30 | defaultTasks 'runScript'
--------------------------------------------------------------------------------
/mircomposer/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 | Thumbs.db
3 |
4 | # Package Files #
5 | # *.jar
6 | *.war
7 | *.ear
8 |
9 | # Directories #
10 | .metadata
11 | .metadata*
12 | .recommenders
13 | .gradle
14 | bin
15 | build
16 | /doc
17 |
18 |
19 | # Eclipse settings (should be generated with Gradle import in Eclipse)
20 | .project
21 | .classpath
22 | .settings
23 |
24 | # IntelliJ IDEA settings (should be generated with Gradle import in Eclipse)
25 | .idea
26 | *.iml
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/Utils.groovy:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2022 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 | package io.github.mcolletta.mircomposer
25 |
26 | import java.io.File
27 | import java.io.IOException
28 | import java.nio.file.Path
29 |
30 |
31 | protected class Utils {
32 |
33 | protected static final File makeDir(File parentFolder, String name) {
34 | File folder
35 | if (parentFolder.isDirectory()) {
36 | folder = new File(parentFolder,name)
37 | boolean res = false
38 | try {
39 | res = folder.mkdir()
40 | } catch (IOException ex) {
41 | println ex.getMessage()
42 | ex.printStackTrace()
43 | }
44 | }
45 | return folder
46 | }
47 |
48 | protected static String getFileExt(Path path) {
49 | String ext = ""
50 | String fileName = path.getFileName()
51 | int i = fileName.toString().lastIndexOf('.')
52 | if (i > 0) {
53 | ext = fileName.substring(i+1);
54 | }
55 | return ext
56 | }
57 |
58 | }
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/checkedclipboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/checkedclipboard.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/edit.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/fileopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/fileopen.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/folder_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/folder_new.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/locked.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/locked.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/mix_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/mix_audio.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/project_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/project_open.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/reload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/reload.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/runprog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/runprog.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/sc_controlproperties.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/sc_controlproperties.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/stop.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/view_sidetree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/view_sidetree.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/view_tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/view_tree.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/window_new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/window_new.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/xconsole.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/icons/xconsole.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/images/logo.png
--------------------------------------------------------------------------------
/mircomposer/src/main/groovy/io/github/mcolletta/mircomposer/resources/info.txt:
--------------------------------------------------------------------------------
1 | MirComp Composer
2 | Version: 1.0.0-alpha.4
3 |
4 | Copyright (C) 2016-2022 Mirco Colletta
5 |
6 | This program is distributed under the GNU General Public License version 3.
7 |
8 | This program comes with ABSOLUTELY NO WARRANTY.
9 |
10 | This program is free software: you can redistribute it and/or modify
11 | it under the terms of the GNU General Public License as published by
12 | the Free Software Foundation, either version 3 of the License, or
13 | (at your option) any later version.
14 |
15 | This program is distributed in the hope that it will be useful,
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 | GNU General Public License for more details.
19 |
20 | You should have received a copy of the GNU General Public License
21 | along with MirComp. If not, see .
--------------------------------------------------------------------------------
/mirconverter/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'groovy'
2 |
3 |
4 | dependencies {
5 | implementation project(':mirchord')
6 | }
7 |
8 | jar {
9 | manifest.attributes 'Created-By': 'Mirco Colletta'
10 | }
11 |
12 | sourceSets {
13 | main {
14 | groovy {
15 | srcDirs = ['src/main/groovy']
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/mircoracle/README.md:
--------------------------------------------------------------------------------
1 | # mircoracle
2 |
3 |
4 | **MircOracle** is a Machine Learning library implemented with the [Groovy programming language](http://www.groovy-lang.org/)
5 |
6 | The library has several parts: a tree-based dictionary predictor (ContinuationDictionary), a Factor Oracle class and components to navigate and generate sequences. The implementation is based on the algorithms described in several papers, see the References section for details.
7 |
8 |
9 | MircOracle is part of MirComp and is released under the GPL3 License, see the LICENSE file for details.
10 |
11 | Copyright (c) 2016-2024 Mirco Colletta
12 |
13 |
14 | ## References
15 |
16 | _Guessing the Composer's Mind: Applying Universal Prediction to Musical Style_
17 | Gérard Assayag, Shlomo Dubnov, Olivier Delerue
18 |
19 | _Using Factor Oracles for Machine Improvisaton_
20 | Gérard Assayag, Shlomo Dubnov
21 |
22 | _Navigating the Oracle: a heuristic approach_
23 | Gérard Assayag, Georges Bloch
24 |
25 | _Visualising OMax_
26 | Benjamin Lévy
27 |
28 | _Different applications of the factor oracle: an overview_
29 | Thierry Lecroq, Arnaud Lefebvre
30 |
31 | _Compror: compression with a factor oracle_
32 | Arnaud Lefebvre, Thierry Lecroq
33 |
34 | _Compror: On-line lossless data compression with a factor oracle_
35 | Arnaud Lefebvre, Thierry Lecroq
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/mircoracle/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'groovy'
2 | apply plugin: 'application'
3 |
4 | sourceSets {
5 | main {
6 | groovy {
7 | srcDirs = ['src/main/groovy']
8 | }
9 | resources {
10 | srcDirs = ["src/main/groovy"]
11 | }
12 | }
13 | test {
14 | groovy {
15 | srcDirs = ['src/test/groovy']
16 | }
17 | resources {
18 | srcDirs = ['src/test/groovy']
19 | }
20 | }
21 | }
22 |
23 | jar {
24 | manifest.attributes 'Created-By': 'Mirco Colletta'
25 | }
26 |
27 |
28 | task runScript(type: JavaExec) {
29 | description 'Run Simple Demo'
30 | mainClass = 'io.github.mcolletta.mircoracle.Demo'
31 | classpath = sourceSets.main.runtimeClasspath
32 |
33 | if (project.hasProperty('custom_arg')) {
34 | args project.getProperty('custom_arg')
35 | }
36 | }
37 |
38 | defaultTasks 'runScript'
--------------------------------------------------------------------------------
/mirdaw/config/src/main/groovy/compiler-config.groovy:
--------------------------------------------------------------------------------
1 | import groovy.transform.CompileStatic
2 |
3 | withConfig(configuration) {
4 | ast(CompileStatic)
5 | }
6 |
--------------------------------------------------------------------------------
/mirdaw/settings.gradle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/settings.gradle
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/MirDAW.groovy:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2025 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 | package io.github.mcolletta.mirdaw
25 |
26 |
27 | import java.io.IOException
28 | import javafx.application.Platform
29 | import javafx.application.Application
30 | import javafx.scene.Scene
31 | import javafx.scene.layout.StackPane
32 | import javafx.stage.Stage
33 |
34 |
35 | public class MirDAW extends Application {
36 |
37 | @Override
38 | public void start(Stage stage) throws Exception {
39 | StackPane root = new StackPane()
40 |
41 | MidiEditor editor = new MidiEditor()
42 |
43 | root.getChildren().add(editor)
44 |
45 | Scene scene = new Scene(root, 1000, 700)
46 | setNordDark(scene)
47 |
48 | stage.setScene(scene)
49 | stage.show()
50 | }
51 |
52 | private String nordDarkUrl = getClass().getResource("resources/themes/nord-dark.css").toExternalForm();
53 |
54 | void setNordDark(Scene scene) {
55 | scene.getStylesheets().add(nordDarkUrl)
56 | }
57 |
58 | public static void main(String[] args) throws IOException {
59 | Application.launch(MirDAW, args)
60 | Platform.exit()
61 | println "stopped"
62 | System.exit(0)
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/color_line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/color_line.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/colorman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/colorman.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/enumlist1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/enumlist1.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/eraser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/eraser.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/fileopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/fileopen.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/insert_table_row.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/insert_table_row.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/kcmmidi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/kcmmidi.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/kmixdocked_mute.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/kmixdocked_mute.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/mini_autoform.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/mini_autoform.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/mix_midi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/mix_midi.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/move.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/move.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/new_window.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/new_window.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_eject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_eject.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_end.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_fwd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_fwd.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_pause.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_play.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_rew.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_rew.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_start.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_stop.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/player_time.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/redo.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/reload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/reload.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_aligncenter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_aligncenter.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_arrowshapes.striped-right-arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_arrowshapes.striped-right-arrow.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_autoformat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_autoformat.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_beziersmooth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_beziersmooth.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_beziersmooth2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_beziersmooth2.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_connectorline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_connectorline.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_firstrecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_firstrecord.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_freeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_freeline.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_lastrecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_lastrecord.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_nextrecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_nextrecord.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_prevrecord.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_prevrecord.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_save.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_saveas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_saveas.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_selectobject.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_selectobject.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_selecttable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_selecttable.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_spinbutton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_spinbutton.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_toggleaxisdescr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_toggleaxisdescr.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_zoom100percent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_zoom100percent.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_zoomin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_zoomin.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_zoomout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/sc_zoomout.png
--------------------------------------------------------------------------------
/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirdaw/src/main/groovy/io/github/mcolletta/mirdaw/resources/icons/undo.png
--------------------------------------------------------------------------------
/mirdaw/src/main/java/Main.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2025 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 | package io.github.mcolletta.mirdaw;
25 |
26 | public class Main {
27 |
28 | public static void main(String[] args) {
29 | // empty
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/mirdaw/src/main/java/module-info.java:
--------------------------------------------------------------------------------
1 | module io.github.mcolletta.mirdaw {
2 | requires java.desktop;
3 | requires java.logging;
4 | requires javafx.graphics;
5 | requires javafx.controls;
6 | requires javafx.media;
7 | requires javafx.swing;
8 | requires javafx.fxml;
9 |
10 | requires org.apache.groovy;
11 |
12 | // requires org.graalvm.polyglot;
13 | // requires org.graalvm.python.embedding;
14 |
15 | opens io.github.mcolletta.mirdaw to javafx.fxml, org.apache.groovy;
16 |
17 | exports io.github.mcolletta.mirdaw;
18 | }
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/mirfoldertreeview/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 | Thumbs.db
3 |
4 | # Package Files #
5 | # *.jar
6 | *.war
7 | *.ear
8 |
9 | # Directories #
10 | .metadata
11 | .metadata*
12 | .recommenders
13 | .gradle
14 | bin
15 | build
16 | /doc
17 |
18 |
19 | # Eclipse settings (should be generated with Gradle import in Eclipse)
20 | .project
21 | .classpath
22 | .settings
23 |
24 | # IntelliJ IDEA settings (should be generated with Gradle import in Eclipse)
25 | .idea
26 | *.iml
--------------------------------------------------------------------------------
/mirfoldertreeview/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'groovy'
2 | apply plugin: 'application'
3 |
4 |
5 | sourceSets {
6 | main {
7 | groovy {
8 | srcDirs = ['src/main/groovy']
9 | }
10 | resources {
11 | srcDirs = ["src/main/groovy"]
12 | }
13 | }
14 | }
15 |
16 | jar {
17 | manifest.attributes 'Created-By': 'Mirco Colletta'
18 | }
19 |
20 | task runScript(type: JavaExec) {
21 | description 'Run Simple Demo'
22 | mainClass = 'io.github.mcolletta.mirfoldertreeview.Demo'
23 | classpath = sourceSets.main.runtimeClasspath
24 |
25 | if (project.hasProperty('custom_arg')) {
26 | args project.getProperty('custom_arg')
27 | }
28 | }
29 |
30 | defaultTasks 'runScript'
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/Demo.groovy:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2017 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 | package io.github.mcolletta.mirfoldertreeview
25 |
26 | import javafx.stage.WindowEvent
27 | import javafx.event.EventHandler
28 | import javafx.application.Platform
29 |
30 | import java.io.IOException
31 | import javafx.application.Application
32 | import javafx.scene.Scene
33 | import javafx.scene.layout.StackPane
34 | import javafx.stage.Stage
35 |
36 |
37 | public class Demo extends Application {
38 |
39 | @Override
40 | public void start(Stage stage) throws Exception {
41 | StackPane root = new StackPane()
42 |
43 | FolderTreeView viewer = new FolderTreeView("/path/to/project")
44 |
45 | root.getChildren().add(viewer)
46 |
47 | Scene scene = new Scene(root, 1000, 700)
48 |
49 | stage.setScene(scene)
50 | stage.show()
51 |
52 | stage.setOnCloseRequest(new EventHandler() {
53 | @Override
54 | public void handle(WindowEvent event) {
55 | viewer.stopWatching()
56 | stop()
57 | Platform.exit()
58 | }
59 | })
60 | }
61 |
62 | public static void main(String[] args) throws IOException {
63 | Application.launch(Demo, args);
64 | }
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/FolderTreeView.fxml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/cdaudio_mount.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/cdaudio_mount.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/file_doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/file_doc.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/folder.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/groovy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/groovy.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/java.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/java.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/midi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/midi.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/mix_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/mix_audio.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/mix_midi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/mix_midi.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/music.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/pdf.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/sc_open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/sc_open.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/tar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/tar.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/xml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcolletta/mircomp/0be2b30947676fcb317c23773b774a0e819da045/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/resources/icons/xml.png
--------------------------------------------------------------------------------
/mirfoldertreeview/src/main/groovy/io/github/mcolletta/mirfoldertreeview/styles.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2017 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 |
25 | /*.folder-tree .tree-cell {
26 | -fx-background-color: #E9E9E9;
27 | -fx-text-fill: #1E1E1E;
28 | }
29 |
30 | .folder-tree .tree-cell:selected {
31 | -fx-background-color: #B9B9B9;
32 | -fx-text-fill: #FFFFFF;
33 | }*/
34 |
35 | /*.folder-tree .tree-cell {
36 | -fx-background-color: #272822;
37 | -fx-text-fill: #ffffff;
38 | -fx-border-color: #??????;
39 | }*/
40 |
41 | /*.folder-tree .tree-cell {
42 | -fx-background-color: #1E1F1C;
43 | -fx-text-fill: #E8E8E8;
44 | }
45 |
46 | .folder-tree .tree-cell:selected {
47 | -fx-background-color: #414339;
48 | -fx-text-fill: #E8E8E8;
49 | }
50 |
51 | .folder-tree .tree-cell > .tree-disclosure-node > .arrow {
52 | -fx-background-color: #E8E8E8;
53 | }
54 | .folder-tree .tree-cell:expanded > .tree-disclosure-node > .arrow {
55 | -fx-background-color: #E8E8E8;
56 | }*/
--------------------------------------------------------------------------------
/mirgene/.gitignore:
--------------------------------------------------------------------------------
1 | *.class
2 | Thumbs.db
3 |
4 | # Package Files #
5 | # *.jar
6 | *.war
7 | *.ear
8 |
9 | # Directories #
10 | .metadata
11 | .metadata*
12 | .recommenders
13 | .gradle
14 | bin
15 | build
16 | /doc
17 |
18 |
19 | # Eclipse settings (should be generated with Gradle import in Eclipse)
20 | .project
21 | .classpath
22 | .settings
23 |
24 | # IntelliJ IDEA settings (should be generated with Gradle import in Eclipse)
25 | .idea
26 | *.iml
--------------------------------------------------------------------------------
/mirgene/README.md:
--------------------------------------------------------------------------------
1 | # mirgene
2 |
3 | **MirGene** is a Grammatical Evolution library
4 |
5 | The library has several components.
6 |
7 | **MirGram** is the component that generates programs based on novel _stochastic weighted and adaptable_ attribute grammars created by Mirco Colletta for musical purposes.
8 | The weights and the mechanism to control the derivation length borrows ideas from the software _ImproVisor_ (updating arithmetic attributes) but it is introduced the concept of "guards" to avoid undesirable matches.
9 | A MirGram has semantic actions that allows to:
10 | - modify the current grammar (by adding new rules) during the derivation
11 | - generate unique names for symbol/variable definition (global symbol table)
12 | Moreover, inside an action the results from previous NonTerminals (NT) within the current production rule are available and can be used.
13 | While the implementation of the adaptability is based on the concept of _Christiansen Grammars_ in MirGram the grammars are not explicit as attributes (which are reserved to control the derivation lenght) but they are managed implicity. The _cut_ action is instead inspired by the _Prolog_ language.
14 |
15 |
16 | **MirGene** is the genetic programming component based on sexual reproduction and that uses _female choice selection_.
17 |
18 | See the _References_ section for some of the papers that have inspired this work.
19 |
20 |
21 | MirGene is part of MirComp and is released under the GPL3 License, see the LICENSE file for details.
22 |
23 | Copyright (c) 2016-2024 Mirco Colletta
24 |
25 |
26 | ## References
27 |
28 | _A Grammatical Approach to Automatic Improvisation_
29 | Robert M. Keller, David R. Morrison
30 |
31 | _Christiansen Grammar Evolution: Grammatical Evolution With Semantics_
32 | Alfonso Ortega, Marina de la Cruz, Manuel Alfonseca
33 |
34 | _Sexual Selection for Genetic Algorithms_
35 | Kai Song Goh, Andrew Lim, Brian Rodrigues
36 |
37 | _Grammatical Evolution: Evolving Programs for an Arbitrary Language_
38 | Conor Ryan, J.J. Collins, Michael O'Neill
39 |
40 | _Grammar based function definition in Grammatical Evolution_
41 | Michael O'Neill, Conor Ryan
42 |
43 | _Grammatical Evolution: A tutorial using gramEval_
44 | Farzad Noorian, Anthony M. de Silva, Philip H.W. Leong
45 |
46 |
--------------------------------------------------------------------------------
/mirgene/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'groovy'
2 | apply plugin: 'application'
3 |
4 | sourceSets {
5 | main {
6 | groovy {
7 | srcDirs = ['src/main/groovy']
8 | }
9 | resources {
10 | srcDirs = ["src/test/groovy"]
11 | }
12 | }
13 | test {
14 | groovy {
15 | srcDirs = ['src/test/groovy']
16 | }
17 | resources {
18 | srcDirs = ['src/test/groovy']
19 | }
20 | }
21 | }
22 |
23 | jar {
24 | manifest.attributes 'Created-By': 'Mirco Colletta'
25 | }
26 |
27 |
28 | task runScript(type: JavaExec) {
29 | description 'Run Simple Demo'
30 | mainClass = 'io.github.mcolletta.mirgene.Demo'
31 | classpath = sourceSets.main.runtimeClasspath
32 |
33 | if (project.hasProperty('custom_arg')) {
34 | args project.getProperty('custom_arg')
35 | }
36 | }
37 |
38 | defaultTasks 'runScript'
--------------------------------------------------------------------------------
/mirgene/src/test/groovy/io/github/mcolletta/mirgene/GrammarTests.groovy:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2023 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 | package io.github.mcolletta.mirgene
25 |
26 | import groovy.test.GroovyTestCase
27 |
28 | class GrammarTests extends GroovyTestCase {
29 |
30 | void testChordProgression() {
31 | def grammarText = getClass().getResourceAsStream("resources/grammars/chordprogression.mirgram").getText()
32 | def gr = new MirGram(grammarText, "progression", 3, true)
33 | def cods = []
34 | def rand = new Random(123456789L)
35 | (1..1000).each {
36 | cods << rand.nextInt(256)
37 | }
38 | def result = gr.translate(cods)
39 | assert result.trim() == "C Amin F G C Amin G C Amin Dmin G C"
40 | }
41 | }
--------------------------------------------------------------------------------
/mirgene/src/test/groovy/io/github/mcolletta/mirgene/GrammaticalEvolutionTests.groovy:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016-2023 Mirco Colletta
3 | *
4 | * This file is part of MirComp.
5 | *
6 | * MirComp is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * MirComp is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with MirComp. If not, see .
18 | */
19 |
20 | /**
21 | * @author Mirco Colletta
22 | */
23 |
24 | package io.github.mcolletta.mirgene
25 |
26 | import groovy.test.GroovyTestCase
27 |
28 | class GrammaticalEvolutionTests extends GroovyTestCase {
29 |
30 | void testKeplerGE() {
31 | def grammarText = getClass().getResourceAsStream("resources/grammars/symreg.mirgram").getText()
32 | def gr = new MirGram(grammarText, "closure", 3)
33 | Map data = [0.72f: 0.61f, 1.00f: 1.00f, 1.52f: 1.84f, 5.20f: 11.90f, 9.53f: 29.40f, 19.10f: 83.50f]
34 | def fit = new SymbolicRegression(data)
35 | def ge = new MirGene(gr,fit,100L).with {
36 | populationSize = 25
37 | genomeSize = 100
38 | maxGenerations = 5
39 | it
40 | }
41 | def best = ge.runGE()
42 | assert best.individual.blueprint.trim() == "{ float distance -> sqrt(pow(distance,3))}"
43 | assert best.fitness == 0.02018882f
44 | }
45 | }
--------------------------------------------------------------------------------
/mirgene/src/test/groovy/io/github/mcolletta/mirgene/resources/grammars/chordprogression.mirgram:
--------------------------------------------------------------------------------
1 | ::= \s
2 |
3 | ::=
4 | ::=
5 | ::=
6 | ::=
7 | ::=
8 | ::=
9 | ::=
10 |
11 | ::= \s
12 |
13 | ::= \s |
14 | \s |
15 | \s |
16 | \s
17 |
18 | ::= \s |
19 | \s |
20 | \s
21 |
22 | ::= \s |
23 | \s |
24 | \s |
25 | \s
26 |
27 | ::= \s |
28 | \s |
29 | \s
30 |
31 | ::= \s |
32 | \s
33 |
34 | ::= \s |
35 | \s |
36 | \s
37 |
38 | ::= C
39 |
40 | ::= Dmin
41 |
42 | ::= Emin
43 |
44 | ::= F
45 |
46 | ::= G
47 |
48 | ::= Amin
49 |
50 | ::= Bdim
51 |
--------------------------------------------------------------------------------
/mirgene/src/test/groovy/io/github/mcolletta/mirgene/resources/grammars/chordprogression2.mirgram:
--------------------------------------------------------------------------------
1 | ::= =1 ~1 (clef "treble") =2 ~1 (clef "bass") \n
2 |
3 |
4 | ::= empty
5 |
6 | ::= \n
7 |
8 | ::= |
9 |
10 | ::= empty
11 |
12 | ::= \s !40
13 | ::= \s !20
14 | ::= \s !10
15 |
16 | ::=
17 | ::=
18 | ::=
19 |
20 | ::= =2 \s `1/8 \s \s =1 \s <%/%>
21 | ::= =2 \s `1/4 \s \s =1 \s <%/%>
22 | ::= =2 \s `1/2 \s \s =1 \s <%/%>
23 | ::= =2 \s `1/1 \s \s =1 \s <%/%>
24 |
25 | ::= I | IImin | IV | IV | VImin | VIIdim
26 |
27 | ::= 1 | 2 | 3
28 |
29 | ::= empty
30 | ::= \s !10
31 | ::= \s