%----------------------------------------------------------------------------------------
%	PACKAGES AND DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[portuguese]{babel}

\usepackage{url}

\usepackage{mhchem} % Package for chemical equation typesetting
\usepackage{siunitx} % Provides the \SI{}{} command for typesetting SI units

\usepackage{graphicx} % Required for the inclusion of images

\usepackage{listings}

\setlength\parindent{0pt} % Removes all indentation from paragraphs

\renewcommand{\labelenumi}{\alph{enumi}.} % Make numbering in the enumerate environment by letter rather than number (e.g. section 6)

%\usepackage{times} % Uncomment to use the Times New Roman font

%----------------------------------------------------------------------------------------
%	DOCUMENT INFORMATION
%----------------------------------------------------------------------------------------

\title{Relatório Final de Bolsa de Investigação
} % Title

\author{Projeto Estratégico do CCTC\\
Refª BIC7-2012\_PEst-OE/EEI/UI0752/2011\_UMINHO} % Author name

\date{(de 1 de outubro de 2012 e termo a 31 dezembro de 2012)} % Date for the report

\begin{document}

\maketitle % Insert the title, author and date

\begin{center}
\begin{large}
De\\
Tiago Manuel da Silva Jorge
\end{large}
\end{center}

\textit{Professores Orientadores}: José João ALMEIDA, José Nuno OLIVEIRA\\\\\\\\

% If you wish to include an abstract, uncomment the lines below
% \begin{abstract}
% Abstract text
% \end{abstract}

\section*{Contextualização}

A \textit{Wiki::Score}\cite{paper}\cite{ws1} é uma plataforma dedicada à cooperação na transcrição de obras musicais de larga escala, como sejam uma ópera ou sinfonia. Usando a notação musical textual \textit{ABC}\cite{ABC}, simplista mas deveras completa, extensos trabalhos originais em risco de deterioração são colaborativamente transcritos em versões digitais modernas e publicados em vários formatos (e.g. MIDIs, imagens ou PDF).
Como princípio básico, a obra é decomposta numa matriz de células musicais elementares de modo a permitir trabalho paralelo, providenciando por conseguinte uma eficaz divisão de esforços. É este suporte direto para trabalho distribuído e colaborativo que distingue a \textit{Wiki::Score} de outros sistemas de criação musical, como o \textit{Sibelius}, \textit{Finale}, \textit{Denemo} ou \textit{MuseScore}.
A filosofia de criação de conteúdo por múltiplos utilizadores que uma \textit{wiki} apresenta justificou a adopção desse tipo de plataforma. Em particular, a \textit{DOKU WIKI}\cite{dokuwiki} foi adotada. Mais do que tudo isto, a plataforma não só se revela inovadora por permitir a cooperação em larga escala, mas sobretudo por representar um repositório aberto aos estudiosos de musicologia. Em particular, essa partilha de informação, requisito em qualquer ramo científico, torna possível a repetição de experiências levadas a cabo por vários investigadores, prática subjacente ao método científico. Deste modo, musicólogos e informáticos têm a oportunidade de trabalhar em conjunto e tornarem-se os atuais "data scientists" em música, isto é, através de criatividade mas também de uma formação sólida em ciências exactas, fazerem emergir do atual mundo da "big data" novas descobertas no ramo das ciências musicais.

\pagebreak

\section{Objetivos}

Os objetivos deste projeto visaram dotar a plataforma \textit{Wiki::Score} de novas funcionalidades a nível analítico e operacional. Estes são sucintamente descritos nesta secção dividida nesses dois níveis.\\

\textbf{Componente Analítica}\\

Criação de mecanismos e ferramentas para análise musical e validação de transcrições:

\begin{itemize}

\item Análise (\textit{parsing}/semântica) de \textit{ABC} com o objetivo de validar invariantes e verificar coerência, validando não só o \textit{ABC} gerado mas também aquele que é editado através da \textit{wiki};

\item Análise de sincronismo em transcrições multi-voz, tentando detectar vozes que estejam a falhar ou a comprometer a integridade da peça;

\item Análise quantitativa de conteúdos da plataforma.

\end{itemize}

\textbf{Componente Operacional}\\

Criação de mecanismos e ferramentas que estendam as funcionalidades e usabilidade da plataforma:

\begin{itemize}

\item Ligação ao \textit{plugin} \textit{EasyABC}\cite{easyABC};

\item Ligação ao formato \textit{Music-XML};

\item Criação de \textit{plugins} específicos para facilitar a inserção musical em ambiente \textit{wiki}.

\end{itemize}

~\\
\textit{{\large Indicadores de resultados}}\\

Ferramentas a desenvolver e extensão da plataforma \textit{Wiki::Score}.

\pagebreak

\section{Trabalho Realizado}

Os trabalhos que fui desenvolvendo neste curto período foram fruto das valiosas sugestões dadas pelos professores orientadores. Nesta secção apresento sucintamente os resultados atingidos.

\subsection{Geração de partituras em formato SVG}

Assim que os conteúdos editados eram salvaguardados na plataforma, o conteúdo musical em notação \textit{ABC} era traduzido nos formatos PNG, MIDI e PDF por meio da extensão \textit{ABC Plugin}\cite{pluginABC} para a \textit{dokuwiki}. No que toca ao primeiro formato, PNG, este permitia ao utilizador uma visualização imediata do conteúdo editado. No entanto, o tempo de resposta não era o melhor e a qualidade de imagem era perdida aquando de uma ampliação para melhor identificar os pequenos símbolos musicais. De facto, isto traduzia, respetivamente, duas desvantagens de um formato de rasterização em relação a um formato vetorial:

\begin{itemize}

\item Tamanho - São armazenados os dados de cada pixel da imagem, o que representa uma quantidade enorme de informação para imagens de alta qualidade.

\item Qualidade da imagem ao redimensionar - Um redimensionamento da imagem não escala em qualidade. Encolher a imagem leva à perda de informação já que áreas maiores são fundidas em áreas menores. Aumentar leva à obtenção de uma imagem irregular uma vez que um único pixel terá de se expandir de modo a representar múltiplos pixeis.

\end{itemize}

\begin{figure}[ht!]
\centering
\label{fig3} %\ref{debian}
\includegraphics[scale=0.35]{Prints/svg.png} 
\caption{Partitura em formato \textit{Scalable Vector Graphics (SVG)}}
\end{figure}

Perante esta situação, o \textit{ABC Plugin} foi adaptado de modo a gerar imagens em formato SVG (\textit{Scalable Vector Graphics}). De facto este formato vetorial baseado em texto, ao armazenar a informação (conjunto de pontos, curvas e cores) como dados matemáticos, não só é mais leve como escala em qualidade face a redimensionamentos. Alterações da imagem traduzem-se em meras alterações dos dados numéricos. Quando uma ampliação é feita num formato vetorial não é obtida qualquer distorção uma vez que, ao contrário dos pixeis, um sistema matemático expande e contrai.



\subsection{Matriz indicativa do estado de colaboração}

O segundo melhoramento levado a cabo teve como foco uma colaboração mais ágil. Quando um utilizador seleciona na página inicial uma obra para a qual pretende contribuir é redirecionado para a página principal desse mesmo projeto. É nessa página central que reside a matriz resultado da decomposição da respectiva obra em células musicais elementares. Enquanto que cada linha da matriz corresponde a um instrumento/voz, por exemplo a parte dos sopranos, cada coluna representa as diversas secções da obra como seja uma \textit{Ária} de uma ópera. Cada utilizador pode então escolher transcrever numa dessas células específicas, enquanto outros, colaborativamente e concorrentemente editam outras células da obra.

\begin{figure}[ht!]
\centering
\label{fig1} %\ref{debian}
\includegraphics[scale=0.5]{Prints/feedback.png} 
\caption{Matriz com \textit{feedback} de completude.}
\end{figure}

Este avanço representou uma primeira abordagem no que toca ao \textit{feedback} visual do grau de completude da transcrição de cada célula. Esta primeira diferenciação visual foi conseguida alterando o grau de saturação (numa escala de cinzentos) do ícone, uma pequena partitura musical, que já residia dentro de cada célula, acompanhado do link para a respetiva página de edição. Atualmente, ainda só são contemplados dois níveis de saturação, sendo que as células com algum conteúdo já transcrito são representadas pelo ícone mais escuro. No entanto, poderão vir a ser contemplados mais níveis de modo a representar uma evolução de transcrição mais refinada (secção ~\ref{sec:futuro}).

O estado de completude, armazenado do lado do servidor, é atualizado sempre que uma edição de qualquer utilizador é salvaguardada, isto de modo a mantê-lo o mais atual possível para outros utilizadores.


\subsection{Criação de conteúdo com recurso à ferramenta \textit{EasyABC}}

No que toca a ferramentas de composição musical em notação \textit{ABC}, o \textit{EasyAbc}\cite{easyABC} apresenta-se como um editor bastante completo mas ao mesmo tempo simples e intuitivo. Talvez a sua melhor característica seja a geração automática da partitura musical à medida que a edição decorre, tendo o utilizador um \textit{feedback} imediato do conteúdo que vai criando.

\begin{figure}[ht!]
\centering
\label{fig2} %\ref{debian}
\includegraphics[scale=0.35]{Prints/easyABC.png} 
\caption{Ferramenta \textit{EasyABC}}
\end{figure}

Esta e outras características de auxílio à composição suscitaram o interesse de articular o editor com a plataforma \textit{WIKI::SCORE}, mais concretamente, de permitir a sua utilização na edição dos conteúdos musicais de cada célula.

Neste sentido, o terceiro objetivo passou por adaptar o plugin \textit{It's All Text}\cite{itsalltext} de modo a permitir a interoperabilidade desejada. Este plugin para \textit{Mozilla Firefox} permite a edição de áreas de texto em páginas web por meio de qualquer editor de texto que o utilizador tenha instalado na sua máquina. Posto isto, procedeu-se ao desenvolvimento de uma versão específica deste plugin, \textit{It's All WikiScore}, para a nossa plataforma. Através desta adaptação, o editor \textit{EasyABC} é automaticamente invocado quando o utilizador o selecionar como via de edição, sendo que todo o conteúdo posteriormente criado e salvaguardado é, de forma igualmente automática, reproduzido na plataforma. Como característica adicional, este plugin abre automaticamente o documento que contém a partitura original correspondente à célula em questão.

\begin{figure}[ht!]
\centering
\label{fig3} %\ref{debian}
\includegraphics[scale=0.35]{Prints/plugin.png} 
\caption{Edição via extensão \textit{It's All WikiScore}}
\end{figure}

~\\\\
De forma a auxiliar novos utilizadores que pretendam adotar esta via de edição foi criado na plataforma um pequeno tutorial\cite{dev2} que, em cinco passos, descreve o modo de instalação e utilização do plugin \textit{It's All WikiScore}.

\subsection{Página de desenvolvimentos e casos de teste}

Paralelamente a este trabalho foi ainda criada uma página de discussão de desenvolvimentos\cite{dev1} que serviu como local de publicação de novidades da plataforma, definição de futuros melhoramentos e registo de erros.
Relativamente a este último ponto, procurei contribuir definindo pequenos casos de teste para a ferramenta \textit{abc2midi}, fornecendo-os a quem presentemente se encontra encarregue da sua manutenção, Seymour Shlien. Desde já os meus agradecimentos ao rápido e eficaz suporte do Seymour.

\pagebreak

\section{Conclusões e Trabalho Futuro }

O trabalho desenvolvido no âmbito deste projeto revelou-se muito instrutivo e gratificante. Apesar do curto período disponível, alguns objetivos foram atingidos em tempo útil.
No que toca a trabalho futuro, são vários os caminhos que se podem seguir. De entre as hipóteses que constam na lista seguinte, algumas são retiradas do artigo que apresenta esta inovadora plataforma, da autoria de ALMEIDA, CARVALHO e OLIVEIRA\cite{paper}. 
\label{sec:futuro}

~\\ 
\begin{itemize}

\item Desenvolver um plugin que permita a integração do formato \textit{MusicXML}\cite{musicXML} com a plataforma. Sendo este formato suportado a diversos níveis por variadíssimos editores musicais, os utilizadores poderiam contribuir utilizando os seus programas de eleição, tais como Finale, Sibelius, Capella e MuseScore;

\item Elaboração de um manual \textit{ABC} simplista que permita que novos utilizadores comecem rapidamente a sentir a simplicidade da notação e a contribuir;

\item Contemplar um maior número de níveis na evolução das transcrições, por meio da contabilização de compassos com conteúdo;

\item Desenvolvimento de um editor visual incorporado na própria plataforma, e que elimine a necessidade de instalar um programa dedicado;

\item Tendo por base a componente analítica, construir cooperativamente livros de estilo musical\cite{paper};

\item Produzir ficheiros de áudio em que apenas um dos instrumentos ou vozes não é ouvido, isto de modo a servir como um original e eficaz elemento de estudo individual\cite{paper};

\item Desenvolvimento de uma DSL que permita um controlo mais preciso sobre a estrutura e sincronização dos vários projetos\cite{paper}.


\end{itemize}

~\\

\subsection{Musicologia Assistida por Computadores}

Além de todas estas possibilidades, o caminho da exploração analítica revela-se deveras ousado e promissor, daí a existência desta secção dedicada ao mesmo que apresenta o segundo grande propósito desta plataforma, a via da musicologia assistida pela informática. O resto desta secção é integralmente baseado numa apresentação recente do professor José Nuno Oliveira \cite{jno}.\\


Foi a partir do ano letivo 2008-2009, no âmbito da aulas práticas da disciplina de Informática para a Musicologia do curso de Música  da Universidade do Minho, que surgiu a necessidade de produzir trabalho colaborativo entre alunos e professores e, sobretudo, de proceder à análise musical de forma assistida por computadores. É neste contexto que a \textit{Wiki::Score} ganha vida num projeto em parceria com o departamento de informática, e passa a representar uma abordagem disruptiva que, com ênfase no trabalho cooperativo dá início àquilo a que hoje chamamos de musicologia assistida por computadores - "computer aided musicology". De facto, a plataforma não só se revela inovadora por permitir a cooperação em larga escala, mas sobretudo por representar um repositório aberto aos estudiosos de musicologia. Em particular, essa partilha de informação, requisito em qualquer ramo científico, torna possível a repetição de experiências levadas a cabo por vários investigadores, prática subjacente ao método científico. Tome-se como exemplo a prova de um teorema em matemática que é comunicada e verificada por outros matemáticos. 

\begin{figure}[ht!]
\centering
\includegraphics[scale=0.22]{Prints/compositores.jpg} 
\caption{Vários compositores.}
\label{compos}
\end{figure}


Esta abordagem tem ganho projeção. Por exemplo, um outro projeto que introduz este conceito de "computer-aided musicology", embora não contemplando a componente colaborativa, é o \textit{Music21}\cite{music21}, desenvolvido no ilustre MIT, EUA. As ferramentas que fornece foram desenvolvidas na linguagem de programação \textit{Python}, enquanto que o grupo de investigadores envolvidos na \textit{Wiki::Score} optou pelo \textit{Haskell}, uma linguagem funcional fortemente tipada que apresenta um carácter mais matemático e susceptível de formalização. Concretamente, encontra-se em desenvolvimento uma \textit{eDSL} nesta linguagem para representação, manipulação, transformação e verificação do conteúdo musical a analisar. Por exemplo, na sua versão mais simples, uma linha melódica é um habitante do monóide livre paramétrico em eventos musicais da forma \textit{(x,d)}, em que \textit{x} é uma altura de som e \textit{d} é uma duração. A partir daí poderão aplicar-se operações do tipo \textit{m ++ n} dos monóides que encadeiam linhas melódicas, transformações lineares \textit{f (m ++ n) = (f m) ++ (f n)} independentes no eixo temporal (eg. aumentação, diminuição) e no eixo das alturas (eg. transposição), bem como transformações "não lineares" que selecionam eventos de acordo com objetivos analíticos. Seguem-se algumas transformações já testadas, apenas como exemplo das inúmeras possibilidades de análise que ficam em aberto.

\pagebreak

\textbf{Operações de seleção}
\begin{figure}[ht!]
\centering
\includegraphics[scale=0.35]{Prints/1sel.png} 
\caption{Operações de selecção}
\label{sel}
\end{figure}

Como exemplo de operações de selecção atente-se na figura \ref{sel}. Tomando \textit{m} como \textit{Anata I}, a transformação \textit{nrep m} remove as notas repetidas consecutivas de \textit{m}. Já \textit{flat} é responsável pela remoção rítmica e \textit{sort} pela ordenação de alturas. Como resultado de aplicar estas operações numa dada ordem podemos obter, por exemplo, a escala pentatónica da peça dada. Note-se ainda, a título de exemplo, como \textit{nrep} está implementada na \textit{eDSL} desenvolvida.

~\\
\textbf{Aumentação e diminuição}
\begin{figure}[ht!]
\centering
\label{aumentdimin} %\ref{debian}
\includegraphics[scale=0.35]{Prints/2aumentacao.png} 
\caption{Aumentação e diminuição no eixo temporal}
\end{figure}

Já se pretendermos aumentar ou diminuir a duração das notas, aplica-se uma simples transformação com base na multiplicação.

\pagebreak

~\\
\textbf{Movimento retrógrado}
\begin{figure}[ht!]
\centering
\label{retrogrado} %\ref{debian}
\includegraphics[scale=0.35]{Prints/3retrogrado.png} 
\caption{Movimento retrógrado e selo de J.S. Bach}
\end{figure}

Uma outra transformação é a inversão da linha melódica para obter o movimento retrógrado respetivo. Repare-se como o selo de J.S. Bach (1685-1750), cujas iniciais J, S e B se sobrepõem umas às outras, sugere esta mesma construção musical.

~\\
\textbf{Transposição}
\begin{figure}[ht!]
\centering
\label{transp} %\ref{debian}
\includegraphics[scale=0.5]{Prints/4represe.png} 
\caption{Representação da altura e transposição}
\end{figure}

Ao representar cada nota pelo número de acidentes da respetiva tonalidade maior, convencionando números negativos para bemóis e positivos para sustenidos, obtemos uma representação numérica injectiva (não enarmónica). Isto garante, por simples subtração, uma outra operação linear que é a transposição.

~\\
\textbf{Sequência de modulações ou derivada tonal}
\begin{figure}[ht!]
\centering
\includegraphics[scale=0.35]{Prints/5sonata.png} 
\caption{Forma sonata e derivadas tonais}
\label{modul}
\end{figure}

Obtendo cada intervalo musical pela diferença entre as respetivas representações numéricas, é possível determinar a sucessão de modulações que vai ocorrendo, servindo esta metodologia como uma escala para medir a derivada tonal de uma obra musical. Recorrendo a esta escala tonal numérica, poderão aplicar-se técnicas de \textit{data mining} para o reconhecimento de padrões (\textit{motifs}) de modulação. Esta abordagem poderá responder a questões que vão desde a identificação da gramática (ou traço do perfil) tonal de cada compositor, até à avaliação da concordância de derivadas tonais em estudo com arquétipos tonais bem conhecidos, como o caso da forma sonata. A título de exemplo, na figura \ref{modul} podemos observar um arquétipo (discutível) da forma sonata, compreendendo as fases de exposição (E), desenvolvimento (D), recapitulação (R), e coda (C), bem como os grupos temáticos 1 (g1) e 2 (g2). Se a derivada tonal a azul (op55i - Eroica - Beethoven) revela uma autêntica turbulência tonal, já a derivada a vermelho (op68i - Pastoral - Beethoven) apresenta um perfil mais estável.

\pagebreak

\textbf{Alinhamento de sequências}
\begin{figure}[ht!]
\centering
\includegraphics[scale=0.27]{Prints/6alinhamento.png} 
\caption{Correlação entre obras de J.S. Bach e M. Magne}
\label{alinh}
\end{figure}

Torna-se também possível detetar semelhanças musicais com base em algoritmos de alinhamento de sequências, típicos da engenharia genética. Perante vários alinhamentos que identifiquem correlações entre obras diferentes, poderão ser consideradas hipóteses relativamente à inspiração de compositores em obras de outros músicos.  

~\\

A análise musical pode ocorrer por via algébrica, em que a representação do texto musical é feita por meio de operadores que, por construção e opção do criador do conteúdo, "reflectem" a sua análise, ou alternativamente por uma via estatística, caso em que as fontes são anotadas com informação adicional cuja extração e "data mining" conduz ao resultado analítico.

Concluindo, musicólogos e informáticos têm a oportunidade de trabalhar em conjunto e tornarem-se os atuais "data scientists" em música, isto é, através de criatividade mas também de uma formação sólida em ciências exactas, fazerem emergir do atual mundo da "big data" novas descobertas no ramo das ciências musicais.
Através de uma comunidade que partilhe o interesse nesta matéria, e contando de forma indispensável com a contribuição dos amadores e a certificação dos especialistas, será possível levar os proveitos da apressada evolução do mundo em que vivemos, também a essa arte intemporal e única que é a Música. 

\pagebreak

\section*{Agradecimentos}

Gostaria de deixar um agradecimento à valiosa orientação e fonte de entusiasmo que os professores José João Almeida e José Nuno Oliveira representaram. Também agradeço a sempre pronta e eficaz ajuda prestada pelo doutorando Nuno Ramos Carvalho.


\pagebreak

\bibliographystyle{unsrt}

\begin{thebibliography}{9}

\bibitem{paper} ALMEIDA, José João; CARVALHO, Nuno Ramos; OLIVEIRA, José Nuno. WIKI::SCORE - A Collaborative Environment For Music Transcription And Publishing. 2012.

\bibitem{ws1} \url{http://wiki-score.org/doku.php}

\bibitem{dev1} \url{http://wiki-score.org/doku.php?id=devel:tiago}

\bibitem{dev2} \url{http://wiki-score.org/doku.php?id=devel:easy_wiki_score
}

\bibitem{easyABC} \url{http://wiki-http://www.nilsliberg.se/ksp/easyabc/}

\bibitem{abcPLUS} \url{http://abcplus.sourceforge.net/}

\bibitem{ABC} \url{http://abcnotation.com/}

\bibitem{dokuwiki} \url{https://www.dokuwiki.org/}

\bibitem{pluginABC} \url{https://www.dokuwiki.org/plugin:abc}

\bibitem{itsalltext} \url{https://addons.mozilla.org/en-us/firefox/addon/its-all-text/}

\bibitem{musicXML} \url{http://en.wikipedia.org/wiki/MusicXML}

\bibitem{music21}
\url{http://mit.edu/music21/}

\bibitem{jno} J.N. Oliveira. Análise musical e informática - abordagens e oportunidades. Tardes de Matemática, BLCS. Braga, 2013



\end{thebibliography}


\end{document}
