diff --git a/404.html b/404.html new file mode 100644 index 0000000..086a5c9 --- /dev/null +++ b/404.html @@ -0,0 +1,25 @@ +--- +permalink: /404.html +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..f417fc4 --- /dev/null +++ b/Gemfile @@ -0,0 +1,5 @@ +source "https://rubygems.org" + +# Dependências principais do Jekyll +gem "jekyll", "~> 4.3.3" +gem "minima", "~> 2.5" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..3519b5e --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,81 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.3) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.16.3) + forwardable-extended (2.6.0) + google-protobuf (3.24.4-x86_64-linux) + http_parser.rb (0.8.0) + i18n (1.14.4) + concurrent-ruby (~> 1.0) + jekyll (4.3.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.4) + rake (13.1.0) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (4.1.3) + safe_yaml (1.0.5) + sass-embedded (1.69.3) + google-protobuf (~> 3.23) + rake (>= 13.0.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.5.0) + webrick (1.8.1) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + jekyll (~> 4.3.3) + minima (~> 2.5) + +BUNDLED WITH + 2.4.20 diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..4757d5e --- /dev/null +++ b/_config.yml @@ -0,0 +1,57 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. +# +# If you need help with YAML syntax, here are some quick references for you: +# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml +# https://learnxinyminutes.com/docs/yaml/ +# +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. + +title: Your awesome title +email: your-email@example.com +description: >- # this means to ignore newlines until "baseurl:" + Write an awesome description for your new site here. You can edit this + line in _config.yml. It will appear in your document head meta (for + Google search results) and in your feed.xml site description. +baseurl: "" # the subpath of your site, e.g. /blog +url: "" # the base hostname & protocol for your site, e.g. http://example.com +twitter_username: jekyllrb +github_username: jekyll + +# Build settings +theme: minima +plugins: + - jekyll-feed +baseurl: /~jotachina/mmpSearch/mmpSearch/_site + + +# Exclude from processing. +# The following items will not be processed, by default. +# Any item listed under the `exclude:` key here will be automatically added to +# the internal "default list". +# +# Excluded items can be processed by explicitly listing the directories or +# their entries' file path in the `include:` list. +# +# exclude: +# - .sass-cache/ +# - .jekyll-cache/ +# - gemfiles/ +# - Gemfile +# - Gemfile.lock +# - node_modules/ +# - vendor/bundle/ +# - vendor/cache/ +# - vendor/gems/ +# - vendor/ruby/ diff --git a/about.markdown b/about.markdown new file mode 100644 index 0000000..8b4e0b2 --- /dev/null +++ b/about.markdown @@ -0,0 +1,18 @@ +--- +layout: page +title: About +permalink: /about/ +--- + +This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/) + +You can find the source code for Minima at GitHub: +[jekyll][jekyll-organization] / +[minima](https://github.com/jekyll/minima) + +You can find the source code for Jekyll at GitHub: +[jekyll][jekyll-organization] / +[jekyll](https://github.com/jekyll/jekyll) + + +[jekyll-organization]: https://github.com/jekyll diff --git a/generate_mmp_data.py b/generate_mmp_data.py new file mode 100644 index 0000000..5ee0510 --- /dev/null +++ b/generate_mmp_data.py @@ -0,0 +1,14 @@ +import subprocess + +def run_script(script_path): + subprocess.run(['python', script_path]) + +def main(): + script_path = 'scripts/indexa.py' + run_script(script_path) + + script_path = 'scripts/statistics.py' + run_script(script_path) + +if __name__ == '__main__': + main() diff --git a/index.markdown b/index.markdown new file mode 100644 index 0000000..0671507 --- /dev/null +++ b/index.markdown @@ -0,0 +1,6 @@ +--- +# Feel free to add content and custom Front Matter to this file. +# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults + +layout: home +--- diff --git a/metadata/JoãoVitorSimão-2023008380-megaMainSong.json b/metadata/JoãoVitorSimão-2023008380-megaMainSong.json new file mode 100644 index 0000000..41ea8d5 --- /dev/null +++ b/metadata/JoãoVitorSimão-2023008380-megaMainSong.json @@ -0,0 +1,66 @@ +{ + "file": "mmp/JoãoVitorSimão-2023008380-megaMainSong.mmp", + "bpm": "160", + "tracks": [ + { + "track_name": "main base", + "type": "bassline", + "instruments": [ + { + "instrument_name": "bass1" + }, + { + "instrument_name": "noise1" + }, + { + "instrument_name": "snare" + } + ] + }, + { + "track_name": "End Drums", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Middle Bass", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Melody 1", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Melody 2", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Chords", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Menu base", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Menu Melody", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Menu Start", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Menu Bass", + "type": "plugin", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/Samanta Freire.json b/metadata/Samanta Freire.json new file mode 100644 index 0000000..ef2d8b9 --- /dev/null +++ b/metadata/Samanta Freire.json @@ -0,0 +1,71 @@ +{ + "file": "mmp/Samanta Freire.mmp", + "bpm": "140", + "tracks": [ + { + "track_name": "TripleOscillator", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Sample track", + "type": "sample", + "instruments": [] + }, + { + "track_name": "Beat/Bassline 0", + "type": "bassline", + "instruments": [ + { + "instrument_name": "Kicker" + }, + { + "instrument_name": "bassdrum01.ogg" + }, + { + "instrument_name": "hihat_closed05.ogg" + }, + { + "instrument_name": "chorus01.ogg" + }, + { + "instrument_name": "kick01.ogg" + }, + { + "instrument_name": "Drone Arp" + }, + { + "instrument_name": "vapo.wav" + }, + { + "instrument_name": "OpulenZ" + } + ] + }, + { + "track_name": "Beat/Bassline 1", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Beat/Bassline 2", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Beat/Bassline 3", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Beat/Bassline 4", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Beat/Bassline 5", + "type": "bassline", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/SonsAlignígenas.json b/metadata/SonsAlignígenas.json new file mode 100644 index 0000000..cf15fb6 --- /dev/null +++ b/metadata/SonsAlignígenas.json @@ -0,0 +1,67 @@ +{ + "file": "mmp/SonsAlignígenas.mmp", + "bpm": "140", + "tracks": [ + { + "track_name": "TripleOscillator", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Sample track", + "type": "sample", + "instruments": [] + }, + { + "track_name": "Batida/Linha de Baixo 0", + "type": "bassline", + "instruments": [ + { + "instrument_name": "Kicker" + }, + { + "instrument_name": "OpulenZ" + }, + { + "instrument_name": "snare01.ogg" + }, + { + "instrument_name": "clap01.ogg" + }, + { + "instrument_name": "tom01.ogg" + }, + { + "instrument_name": "tom02.ogg" + }, + { + "instrument_name": "zap02.ogg" + }, + { + "instrument_name": "hihat_opened01.ogg" + }, + { + "instrument_name": "metronome01.ogg" + }, + { + "instrument_name": "metronome02.ogg" + } + ] + }, + { + "track_name": "Batida/Linha de Baixo 3", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Batida/Linha de Baixo 2", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Batida/Linha de Baixo 1", + "type": "bassline", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/Um começo.json b/metadata/Um começo.json new file mode 100644 index 0000000..ba26b54 --- /dev/null +++ b/metadata/Um começo.json @@ -0,0 +1,91 @@ +{ + "file": "mmp/Um começo.mmp", + "bpm": "143", + "tracks": [ + { + "track_name": "TripleOscillator", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Sample track", + "type": "sample", + "instruments": [] + }, + { + "track_name": "Violino (Verso 2)", + "type": "bassline", + "instruments": [ + { + "instrument_name": "bassdrum04.ogg" + }, + { + "instrument_name": "hihat_closed04.ogg" + }, + { + "instrument_name": "snare_hiphop01.ogg" + }, + { + "instrument_name": "snare_muffled02.ogg" + }, + { + "instrument_name": "snare_muffled01.ogg" + }, + { + "instrument_name": "bassslap01.ogg" + }, + { + "instrument_name": "violin_pizzicato01.ogg" + }, + { + "instrument_name": "steel_guitar01.ogg" + } + ] + }, + { + "track_name": "Violino (Verso 1 - 1)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Guitarra (Verso 1)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Guitarra (Ponte)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Baixo (Verso 2)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Baixo (Refrão)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Bateria (Ponte)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Bateria (Refrão)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Bateria (Verso 1)", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Base", + "type": "bassline", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/VitorAugusto.json b/metadata/VitorAugusto.json new file mode 100644 index 0000000..5917bfc --- /dev/null +++ b/metadata/VitorAugusto.json @@ -0,0 +1,81 @@ +{ + "file": "mmp/VitorAugusto.mmp", + "bpm": "140", + "tracks": [ + { + "track_name": "TripleOscillator", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Sample track", + "type": "sample", + "instruments": [] + }, + { + "track_name": "Piano", + "type": "bassline", + "instruments": [ + { + "instrument_name": "Kicker" + }, + { + "instrument_name": "kick_distorted01.ogg" + }, + { + "instrument_name": "clap01.ogg" + }, + { + "instrument_name": "snare05.ogg" + }, + { + "instrument_name": "hihat_closed01.ogg" + }, + { + "instrument_name": "hihat_opened01.ogg" + }, + { + "instrument_name": "Analog Piano 1" + }, + { + "instrument_name": "Synth Violin 2 Fat" + } + ] + }, + { + "track_name": "Kick", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Kick_distorted", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Clap", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Snare", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Hihat_closed", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Hihat_opened", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Violino", + "type": "bassline", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/Wesley_Silva_Guimarães.json b/metadata/Wesley_Silva_Guimarães.json new file mode 100644 index 0000000..25b12da --- /dev/null +++ b/metadata/Wesley_Silva_Guimarães.json @@ -0,0 +1,48 @@ +{ + "file": "mmp/Wesley_Silva_Guimarães.mmp", + "bpm": "140", + "tracks": [ + { + "track_name": "TripleOscillator", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Sample track", + "type": "sample", + "instruments": [] + }, + { + "track_name": "bassdrum01.ogg", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Beat/Bassline 0", + "type": "bassline", + "instruments": [ + { + "instrument_name": "Kicker" + }, + { + "instrument_name": "bassdrum01.ogg" + }, + { + "instrument_name": "bassdrum02.ogg" + }, + { + "instrument_name": "bassdrum04.ogg" + }, + { + "instrument_name": "clap01.ogg" + }, + { + "instrument_name": "kick02.ogg" + }, + { + "instrument_name": "hihat_closed01.ogg" + } + ] + } + ] +} \ No newline at end of file diff --git a/metadata/leandro_souza_atvd1.json b/metadata/leandro_souza_atvd1.json new file mode 100644 index 0000000..bb7257a --- /dev/null +++ b/metadata/leandro_souza_atvd1.json @@ -0,0 +1,76 @@ +{ + "file": "mmp/leandro_souza_atvd1.mmp", + "bpm": "145", + "tracks": [ + { + "track_name": "Áudio Amostras", + "type": "sample", + "instruments": [] + }, + { + "track_name": "Áudio Amostras", + "type": "sample", + "instruments": [] + }, + { + "track_name": "Áudio Amostras", + "type": "sample", + "instruments": [] + }, + { + "track_name": "clap", + "type": "bassline", + "instruments": [ + { + "instrument_name": "Kicker" + }, + { + "instrument_name": "forshaw - clap 1 .wav" + }, + { + "instrument_name": "forshaw - kick 1.wav" + }, + { + "instrument_name": "forshaw - snare 6.wav" + }, + { + "instrument_name": "forshaw - hh 6.wav" + }, + { + "instrument_name": "forshaw - OHITHAT (6).wav" + }, + { + "instrument_name": "forshaw - 808 2.wav" + }, + { + "instrument_name": "forshaw - 808 1.wav" + } + ] + }, + { + "track_name": "kick", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "snare", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "hithat", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "open hat", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "808", + "type": "bassline", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/tp1 - Luiz Filipe Almada.json b/metadata/tp1 - Luiz Filipe Almada.json new file mode 100644 index 0000000..f417dd8 --- /dev/null +++ b/metadata/tp1 - Luiz Filipe Almada.json @@ -0,0 +1,72 @@ +{ + "file": "mmp/tp1 - Luiz Filipe Almada.mmp", + "bpm": "140", + "tracks": [ + { + "track_name": "Kick", + "type": "bassline", + "instruments": [ + { + "instrument_name": "Kicker" + }, + { + "instrument_name": "kick04.ogg" + }, + { + "instrument_name": "hihat_closed04.ogg" + }, + { + "instrument_name": "hihat_closed03.ogg" + }, + { + "instrument_name": "hihat_closed01.ogg" + }, + { + "instrument_name": "hihat_opened01.ogg" + }, + { + "instrument_name": "steel_guitar01.ogg" + }, + { + "instrument_name": "TripleOscillator" + }, + { + "instrument_name": "clap01.ogg" + }, + { + "instrument_name": "piano01.ogg" + } + ] + }, + { + "track_name": "Hihat - continuo", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "HiHat2", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "HiHat - passagem", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Clap", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Melody1", + "type": "bassline", + "instruments": [] + }, + { + "track_name": "Bass", + "type": "bassline", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/metadata/tp1_MarcoAntonio.json b/metadata/tp1_MarcoAntonio.json new file mode 100644 index 0000000..fa7d679 --- /dev/null +++ b/metadata/tp1_MarcoAntonio.json @@ -0,0 +1,36 @@ +{ + "file": "mmp/tp1_MarcoAntonio.mmp", + "bpm": "140", + "tracks": [ + { + "track_name": "e_piano_accord01.ogg", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "hihat_closed01.ogg", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "clap04.ogg", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "Snare03.ogg", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "kick02.ogg", + "type": "plugin", + "instruments": [] + }, + { + "track_name": "hihat_opened01.ogg", + "type": "plugin", + "instruments": [] + } + ] +} \ No newline at end of file diff --git a/mmp/Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz b/mmp/Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz new file mode 100644 index 0000000..6e9ed09 Binary files /dev/null and b/mmp/Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz differ diff --git a/mmp/FelipeFerraz.mmpz b/mmp/FelipeFerraz.mmpz new file mode 100644 index 0000000..3cf60c1 Binary files /dev/null and b/mmp/FelipeFerraz.mmpz differ diff --git a/mmp/Gustavo Castro.mmpz b/mmp/Gustavo Castro.mmpz new file mode 100644 index 0000000..e6bba06 Binary files /dev/null and b/mmp/Gustavo Castro.mmpz differ diff --git a/mmp/Iara Rodrigues.mmpz b/mmp/Iara Rodrigues.mmpz new file mode 100644 index 0000000..e0c5800 Binary files /dev/null and b/mmp/Iara Rodrigues.mmpz differ diff --git a/mmp/JoãoVitorSimão-2023008380-megaMainSong.mmpz b/mmp/JoãoVitorSimão-2023008380-megaMainSong.mmpz new file mode 100644 index 0000000..da65e17 Binary files /dev/null and b/mmp/JoãoVitorSimão-2023008380-megaMainSong.mmpz differ diff --git a/mmp/Samanta Freire.mmpz b/mmp/Samanta Freire.mmpz new file mode 100644 index 0000000..b68de2b Binary files /dev/null and b/mmp/Samanta Freire.mmpz differ diff --git a/mmp/SonsAlignígenas.mmpz b/mmp/SonsAlignígenas.mmpz new file mode 100644 index 0000000..1f0ff38 Binary files /dev/null and b/mmp/SonsAlignígenas.mmpz differ diff --git a/mmp/Um começo.mmpz b/mmp/Um começo.mmpz new file mode 100644 index 0000000..90cfc83 Binary files /dev/null and b/mmp/Um começo.mmpz differ diff --git a/mmp/VitorAugusto.mmpz b/mmp/VitorAugusto.mmpz new file mode 100644 index 0000000..c8465f8 Binary files /dev/null and b/mmp/VitorAugusto.mmpz differ diff --git a/mmp/Wesley_Silva_Guimarães.mmpz b/mmp/Wesley_Silva_Guimarães.mmpz new file mode 100644 index 0000000..7256150 Binary files /dev/null and b/mmp/Wesley_Silva_Guimarães.mmpz differ diff --git a/mmp/beatJulioCesardeSousa.mmpz b/mmp/beatJulioCesardeSousa.mmpz new file mode 100644 index 0000000..2dae855 Binary files /dev/null and b/mmp/beatJulioCesardeSousa.mmpz differ diff --git a/mmp/carlos.mmpz b/mmp/carlos.mmpz new file mode 100644 index 0000000..1318918 Binary files /dev/null and b/mmp/carlos.mmpz differ diff --git a/mmp/deprecado_wallace.mmpz b/mmp/deprecado_wallace.mmpz new file mode 100644 index 0000000..e208b5b Binary files /dev/null and b/mmp/deprecado_wallace.mmpz differ diff --git a/mmp/eliasMendesSong.mmpz b/mmp/eliasMendesSong.mmpz new file mode 100644 index 0000000..f11f0e0 Binary files /dev/null and b/mmp/eliasMendesSong.mmpz differ diff --git a/mmp/gabriel_gomes.mmpz b/mmp/gabriel_gomes.mmpz new file mode 100644 index 0000000..1c2728b Binary files /dev/null and b/mmp/gabriel_gomes.mmpz differ diff --git a/mmp/leandro_souza_atvd1.mmpz b/mmp/leandro_souza_atvd1.mmpz new file mode 100644 index 0000000..8143448 Binary files /dev/null and b/mmp/leandro_souza_atvd1.mmpz differ diff --git a/mmp/tp1 - Luiz Filipe Almada.mmpz b/mmp/tp1 - Luiz Filipe Almada.mmpz new file mode 100644 index 0000000..c923c2e Binary files /dev/null and b/mmp/tp1 - Luiz Filipe Almada.mmpz differ diff --git a/mmp/tp1_MarcoAntonio.mmpz b/mmp/tp1_MarcoAntonio.mmpz new file mode 100644 index 0000000..58df7f2 Binary files /dev/null and b/mmp/tp1_MarcoAntonio.mmpz differ diff --git a/mmp_files.md b/mmp_files.md new file mode 100644 index 0000000..5c2a317 --- /dev/null +++ b/mmp_files.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Arquivos MMP Processados +--- + +

Arquivos MMP disponíveis:

+ + diff --git a/projetosComMesmoInstrumento.md b/projetosComMesmoInstrumento.md new file mode 100644 index 0000000..bb3fb78 --- /dev/null +++ b/projetosComMesmoInstrumento.md @@ -0,0 +1,17 @@ +--- +layout: default +title: Instrumentos Similares +--- + +

Arquivos que possuem instrumentos similares:

+ diff --git a/quantasVezes.md b/quantasVezes.md new file mode 100644 index 0000000..7ee2a52 --- /dev/null +++ b/quantasVezes.md @@ -0,0 +1,30 @@ +--- +layout: default +title: Quantidade de repetições de instrumentos +--- + +

Quantidade de vezes que cada instrumento é utilizado:

+ + + diff --git a/scripts/indexa.py b/scripts/indexa.py new file mode 100644 index 0000000..f7cc79f --- /dev/null +++ b/scripts/indexa.py @@ -0,0 +1,149 @@ +import os +import json +import yaml +import subprocess +import xml.etree.ElementTree as ET +import shutil + +def parse_mmp_file(file_path): + try: + #abrindo o .mmp, navegando até os instrumentos + tree = ET.parse(file_path) + root = tree.getroot() + bpm = root.find('./head').attrib.get('bpm', 'N/A') + tracks = root.findall('./song/trackcontainer/track') + track_info = [] + + #coletando as informações + for track in tracks: + track_name = track.attrib.get('name', 'N/A') + track_type = track.attrib.get('type') + + if track_name: + instruments = [] + + if track_type == '0': # Faixa do tipo plugin + track_info.append({ + 'track_name': track_name, + 'type': 'plugin', + 'instruments': [], + }) + + elif track_type == '1': # Faixa do tipo Beat/Bassline + bbtrack = track.find('./bbtrack') + if bbtrack is not None: + trackcontainers = bbtrack.findall('./trackcontainer') + for container in trackcontainers: + instrument_tracks = container.findall('./track') + for instrument_track in instrument_tracks: + instrument_name = instrument_track.attrib.get('name', 'N/A') + instruments.append({ + 'instrument_name': instrument_name, + }) + + track_info.append({ + 'track_name': track_name, + 'type': 'bassline', + 'instruments': instruments, + }) + + elif track_type == '2': # Faixa do tipo Sample Track + track_info.append({ + 'track_name': track_name, + 'type': 'sample', + 'instruments': [], + }) + + return { + 'file': file_path, + 'bpm': bpm, + 'tracks': track_info + } + + except ET.ParseError as e: + print(f'Erro ao analisar o arquivo XML {file_path}: {e}') + return None + +def process_mmps_in_folder(folder_path): + #coletando os arquivos .mmpz e/ou .mmp + mmp_files = [f for f in os.listdir(folder_path) if f.endswith('.mmp') or f.endswith('.mmpz')] + all_data = [] + + #caso não haja, criando a pasta dos arquivos mmpz + mmpz_folder = os.path.join(folder_path, 'mmpz') + if not os.path.exists(mmpz_folder): + os.makedirs(mmpz_folder) + + #caso não haja, criando a pasta dos arquivos wav + wav_folder = os.path.join(folder_path, 'wav') + if not os.path.exists(wav_folder): + os.makedirs(wav_folder) + + #processamento dos arquivos + for file in mmp_files: + file_path = os.path.join(folder_path, file) + print(f'Processando arquivo: {file_path}') + + if file.endswith('.mmpz'): + destination_path = os.path.join(mmpz_folder, file) + shutil.move(file_path, destination_path) + print(f'Arquivo {file} movido para {destination_path}') + + file_name = os.path.basename(destination_path) + file_name = os.path.splitext(file_name)[0] + ".mmp" + output_file_path = os.path.join(folder_path, file_name) + lmms_mmpz_convert = f'lmms --dump "{destination_path}" > "{output_file_path}"' + + try: + #desabilitando os servidores gráficos + os.environ['QT_DEBUG_PLUGINS'] = '1' + os.environ['QT_QPA_PLATFORM'] = 'offscreen' + #rodando o comando para converter os arquivos .mmpz em .mmp + subprocess.run(lmms_mmpz_convert, shell=True, check=True) + print("Comando executado com sucesso!") + except subprocess.CalledProcessError as e: + print(f"Ocorreu um erro ao executar o comando: {e}") + wav_path = '/nethome/jotachina/public_html/mmpSearch/mmpSearch/mmp/mmpz/'+file_name.split('.')[0] + file_name = file_name.split('.') + #"C:\Program Files\LMMS\lmms.exe" -r beatJulioCesardeSousa.mmp -o C:\Users\bacteria\wav -f wav + lmms_wav_convert = f'lmms -r "{wav_path}.mmpz" -o /nethome/jotachina/public_html/mmpSearch/mmpSearch/mmp/wav/{file_name[0]} -f wav' + try: + #desabilitando os servidores gráficos + os.environ['QT_DEBUG_PLUGINS'] = '1' + os.environ['QT_QPA_PLATFORM'] = 'offscreen' + #rodando o comando para converter os arquivos .mmpz em .mmp + subprocess.run(lmms_wav_convert, shell=True, check=True) + print("Comando executado com sucesso!") + except subprocess.CalledProcessError as e: + print(f"Ocorreu um erro ao executar o comando: {e}") + mmp_data = parse_mmp_file(output_file_path) + #caso tenha algum arquivo .mmp perdido na pasta + elif file.endswith('.mmp'): + mmp_data = parse_mmp_file(file_path) + + #guardando as informações dos arquivos no arquivo json + #/metadata (json) e /_data(yml) + if mmp_data: + all_data.append(mmp_data) + + json_file_name = os.path.splitext(file)[0] + ".json" + json_file_path = os.path.join('metadata', json_file_name) + save_to_json(mmp_data, json_file_path) + + yaml_file_name = os.path.splitext(file)[0] + ".yml" + yaml_file_path = os.path.join('_data', yaml_file_name) + save_to_yaml(mmp_data, yaml_file_path) + + return all_data + +def save_to_json(data, output_file): + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=4) + +def save_to_yaml(data, output_file): + with open(output_file, 'w', encoding='utf-8') as f: + yaml.dump(data, f) + +mmp_folder_path = 'mmp' +processed_data = process_mmps_in_folder(mmp_folder_path) +print("Processamento concluído.") diff --git a/scripts/statistics.py b/scripts/statistics.py new file mode 100644 index 0000000..fbfb974 --- /dev/null +++ b/scripts/statistics.py @@ -0,0 +1,50 @@ +import os +import yaml +import json +from collections import defaultdict + +current_dir = os.path.dirname(__file__) +data_dir = os.path.abspath(os.path.join(current_dir, '..', '_data')) +if not os.path.exists(data_dir): + raise FileNotFoundError(f'O diretório {data_dir} não foi encontrado.') + +instruments_count = defaultdict(int) +similar_files = defaultdict(list) + +def load_yaml(file_path): + with open(file_path, 'r') as f: + return yaml.safe_load(f) + +for filename in os.listdir(data_dir): + if filename.endswith('.yml') or filename.endswith('.yaml'): + file_path = os.path.join(data_dir, filename) + data = load_yaml(file_path) + + bpm = data.get('bpm', 'N/A') + file_name = data.get('file', 'N/A') + tracks = data.get('tracks', []) + + for track in tracks: + track_name = track.get('track_name', 'N/A') + instruments = track.get('instruments', []) + + for instrument in instruments: + instrument_name = instrument.get('instrument_name', 'N/A') + instruments_count[instrument_name] += 1 + if file_name not in similar_files[instrument_name]: + similar_files[instrument_name].append(file_name) +output_data = [] +for instrument_name, count in instruments_count.items(): + output_data.append({ + 'instrument_name': instrument_name, + 'count': count, + 'files': similar_files[instrument_name] + }) + +current_dir = os.path.dirname(__file__) +data_dir = os.path.abspath(os.path.join(current_dir, '..', '_data')) +output_file = os.path.join(data_dir, 'processed_data.json') + +with open(output_file, 'w') as outfile: + json.dump(output_data, outfile, indent=4) +print(f"Dados processados e salvos em {output_file}") \ No newline at end of file diff --git a/wavFiles.md b/wavFiles.md new file mode 100644 index 0000000..d6b90dd --- /dev/null +++ b/wavFiles.md @@ -0,0 +1,21 @@ +--- +layout: default +title: Músicas +permalink: /musicas/ +--- + +# Músicas + +Aqui estão as músicas exportadas: + +{% for music in site.static_files %} + {% if music.path contains 'mmp/wav' %} +
+

{{ music.name }}

+ +
+ {% endif %} +{% endfor %}