MuseScore Studioを手探ってみた
この記事について
この記事は、東京大学工学部電気系の学生実験である「大規模ソフトウェアを手探る(大規模ソフトウェアを手探る)」における取り組みの1つとして執筆しています。
この実験は、全容の把握が難しい既存の大規模ソフトウェアを対象とし、その概要を調査・分析することから始め、最終的には機能の拡張・変更までを行うものです。
今回、私たちは調査対象として、オープンソースの楽譜作成ソフトである「MuseScore」(現在は MuseScore Studio)を選定しました。選定の理由は、チームメンバーに吹奏楽経験者がおり、このソフトウェア(MuseScore)の使用経験があったためです。
本記事は、まずその概要を把握するため、ユーザーとして機能を「手探り」してみた記録です。
実際にコードの分析や変更に進むにあたり、特に GUI 周辺の複雑さやデバッグの困難さには大変苦労しました。この記事では、手探りながら進めた過程を複数記事に分けて投稿しました。
調査対象「MuseScore Studio」とは
今回私たちが調査・拡張の対象として選んだ「MuseScore Studio(旧 MuseScore)」は、オープンソースで開発されている高性能な楽譜作成ソフトウェアです。
無料でありながら本格的
通常、本格的な楽譜作成を行うためのソフトウェアは数万円することが多く、導入の敷居が高いという問題があります。しかし、MuseScore は無料でありながら、有料のソフトに引けを取らない非常に高性能な機能を備えています。
主な特徴
このソフトウェアが持つ主な特徴は以下の通りです。
-
直感的な操作:
マウスやキーボードを使って、音符を簡単に入力・編集できる、分かりやすいインターフェースを備えています。 -
高品質な再生機能:
作成した楽譜を、内蔵された高品質な音源(サウンドフォント)で再生し、実際の音を確認しながら作曲・編曲作業を進められます。 -
豊富な記譜法:
クラシック音楽はもちろん、ジャズや現代音楽などで使われる特殊な記号まで、多様な音楽スタイルに対応する記譜法を網羅しています。 -
活発なコミュニティと学習リソース:
世界中に活発なユーザーコミュニティが存在し、プラグイン(機能拡張)や作成した楽譜の共有が盛んに行われています。また、公式・非公式を問わず使い方の解説動画が豊富に存在するため、不明点を調べやすい環境が整っています。
開発言語(実験対象として)
「大規模ソフトウェアを手探る」実験の対象として技術的に見ると、MuseScore はバックエンド(処理の中核)が C++ で書かれています。
一方、フロントエンド(GUI)は QML という、Qt(キュート)フレームワークで使われる UI 構築を専門とした言語で記述されています。
動作環境
以下の環境で動作確認を行いました。
- OS: Ubuntu Linux 24.04 LTS
- Compiler: GCC 13.3.0
- Framework: Qt 6.9.3
ソースコード
今回私達が実装したソースコードは下から確認することができます。
記事紹介
環境構築・ビルドの方法
デバッグの方法
機能1: コマンドパレットの実装
機能2: 楽器のお気に入り機能の実装
機能3: その他の機能改善・追加
Discussion