GSoC 2012

Google Summer of Code とは?

これは Google が運営する世界規模のプログラムで、夏休みにオープン ソース プロジェクトのために働く学生に報酬を提供します。

LilyPond チーム GSoC を新しい貢献者を見つけ、すでに LilyPond の開発に参加している学生がより熱心に取り組む動機付けを与える絶好の機会だと捉えました。GSoC 2012 では我々の貢献者の一人が GNU プロジェクト の一部として認められました。我々は継続的にこのプログラムに参加したいと思っています。

LilyPond チームからの 2012 年のアイディア リスト

以下のリストは GSoC 2012 に参加する学生に我々が提案したプロジェクトです。応募期間は終了しましたが、LilyPond の開発に興味を持つ人の激励としてこの Web ページをオンラインのままにしておくことにしました。

開発チームにはこれらのプロジェクトに挑戦しようとする人々を積極的に支援するメンバーがいます。

もちろん、LilyPond には、些細な事も含めてさらに多くに改善すべき事柄があります。既知のすべての問題のリストが ここ にあります。

装飾小音符

装飾小音符の同期についての問題を、すべての基本的なアーキテクチャも含めて修正してください (バグ トラッカーの問題 34 を参照してください)。装飾小音符は時間を巻き戻すかのように振舞い、LilyPond のタイミングを混乱させています。これにより予期しない効果 – 特に、ある譜が装飾小音符を持っていて、他の譜が持っていない場合に – が引き起こされています。

難易度:

必須スキル: C++, MIDI

推奨スキル: LilyPond の内部を熟知していること

メンター: Mike Solomon, Carl Sorensen

MusicXML

広範囲にわたる MusicXML エクスポート機能の追加と、インポート機能の改良、それらが機能することのチェックを行ってください。参加時間に応じて以下のいくつか、または全てを実現してください:

  • MIDI エクスポートのような基本的な音楽コンテンツ エクスポート機能(つまり、翻訳クラスから派生したエクスポート専用のクラス) を扱います。
  • 基本的な音楽コンテンツの XML ツリーを構築し、音楽イベントと XML タグを結び付けます。
  • すべての LilyPond エングラーバにエクスポート処理を実行させます。
  • 各出力オブジェクト (基本的には各ステンシル / ステンシルのグループ) を音楽イベントにリンクさせる機能を追加します (そして、それにより、XML ツリーの XML タグにリンクさせます)。
  • XML 出力のバックエンドを追加します。その後、バックエンドには各出力オブジェクトのレイアウト情報を XML タグに追加する機能を持たせます。

ゴールは、MusicXML から楽譜をインポートして、データのロス無しにエクスポートすることです。

難易度:

必須スキル: MusicXML, Python, 基本的な LilyPond の知識

メンター: Reinhold Kainhofer, Mike Solomon

他の楽譜ライターの経験 (クロス テストのために) があると尚良しです。

スラーとタイの改良

スラーとタイのデフォルトのカーブ形状はしばしば満足いかないものです。同音異名の音符間のタイ ({ cis'~ des' }) はサポートされておらず、音部記号や譜の変更によって「中断」されるタイのサポートも十分ではありません。このプロジェクトでは、不満足な出力例を収集、ソートして、どのような出力にするかを決定して実際にコードを記述します。

難易度:

必須スキル: C++, 試行錯誤によるコード記述の経験

推奨スキル: LilyPond の知識, 美的感覚

メンター: Mike Solomon

フォント図柄の特殊な変体を追加する

譜上の線、譜間の線、いくつかの図柄 (例えば臨時記号) を短く幅を縮めたものを追加して、それらをサポートするための一般的なインフラを整備します。使用例には古代記譜法の breve (全音符の 2 倍の長さ) の符頭があり、これには符頭の穴が小さいものと大きいものの 2 つの変体があります。

難易度:

必須スキル: MetaFont, C++, 細部を確認できる眼力

推奨スキル: 基本的な LilyPond の知識

メンター: Werner Lemberg

連桁の改良

連桁 (通常、譜をまたぐ、中断する、符幹が上下に突き出る連桁) のデフォルトの配置を改良する必要があります。連桁はコンテキストと付近の音符に依存します (この PDF のセクション 2.2 を参照してください)。可能であれば、連桁の算出時間を削減してください。

難易度:

必須スキル: C++, 試行錯誤によるコード記述の経験

推奨スキル: 美的感覚

メンター: Mike Solomon, Carl Sorensen

様々なコンパイル警告のクリーン アップ

コンパイラ、静的コード分析、それに valgrind の警告をクリーン アップしてください。自動コード分析ツール (g++clang の警告)、valgrind メモリ リーク検出、それに callgrind コード プロファイラは C++ コードの欠陥についての有用な情報を提供してくれます。これらの警告をクリーン アップすることで、警告を発生させるパッチを自動的に拒絶することが可能になります。

難易度:

必須スキル: C++

メンター: Joe Neeman, Reinhold Kainhofer


他の言語: English, català, deutsch, español, français, italiano, nederlands, 中文
About automatic language selection.

Validation

lilypond.org をホスティングしてくれている webdev.nl に感謝します。 Valid HTML 4.01 Transitional