Help us understand the problem. What is going on with this article?

12-20 alphaTab

More than 1 year has passed since last update.

https://adventar.org/calendars/3353 の20日目のエントリーです。

alphaTabは5線譜とギタータブ譜のレンダリングを実現する、JavaScript/HaxeやC#のクロスプラットフォームライブラリです。

https://github.com/CoderLine/alphaTab

楽譜のレンダリングについてはLilypond、musescoreをはじめさまざまなライブラリがあるのですが、今回は自分がC#のアプリケーションに組み込めそうなライブラリとして探している時に発見したものを取り上げます。他の言語環境であれば、他にもlomseVexFlow/VexTabなど、いくつかの選択肢があります。

alphaTabは、基本的にWeb用とクライアントUI用(C#)に分かれていて、Web用には同開発者らのalphaSynth(Web Audio APIとsoundfontを使用したシンセサイザー)を使用して演奏する機能まで統合されているようです。これはJavaScript/Haxeのみです。

「クライアントUI」にはWindows.Forms、WPF、Xamarin.Android、Xamarin.Formsがあります。実際にレンダリングに使用されているのはSkiaSharpです(キャンバスの実装はSkiaとGDI+で分かれます)。JavaScriptとC#の両方で実現できているのはSkia/SVGで一貫性のあるコードが実現できるからでしょう。

スコアのレイアウト構成についてはクロスプラットフォーム部分(AlphaTab.shprojの内容)で、レイアウトの適用やレイアウトされたモデルの反映はプラットフォームごとに、という感じで実装されているようです。(そういうわけで、たとえばconstraint layoutのような環境に適した楽譜を生成できるかというと、レイアウト部分にそれなりの変更を加えない限り難しそうだなという印象です。)

スコアのデータソースについては、(ギタータブ譜がメインなのか)Guitar Proのサポートが手厚いです。MusicXmlもサポートしているようです。それと、独自にAlphaTexというTeXライクな言語を用意しており、これでインポートとエクスポートが可能になっています。(TeXと同じで、わたしは人間が入力する言語とはみなさないです…)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした