Newer
Older
2024-TakizawaSoetsu / paper / c122253-thesis.tex
@Takizawa Takizawa on 28 Nov 2024 43 KB add:概要の文字数
%#!platex -kanji=%k
%#DVIPDF dvipdfmx -f ipa.map
\documentclass{jsbook}
%\pagestyle{empty}
\usepackage[dvipdfmx]{graphicx}
%\usepackage{listings, jlisting}
%\usepackage[sectionbib]{chapterbib}
\usepackage{ascmac}
\usepackage{geometry}
\usepackage{url}		% 文中にURLを書くときは \url{} で括る
\geometry{textwidth=160mm, textheight=225mm}
\renewcommand{\bibname}{参考文献}
\setcounter{tocdepth}{3}

\title{ブラウザ上で動作する簡易作曲システムの提案}
\author{広瀬研究室3年\\C1222531 滝澤壮悦}
\date {令和6年10月29日}

\begin{document}
\maketitle

\begin{center}
 {\bfseries 概要}
\end{center}
%% 概要 %%
昨今、作曲周辺領域における技術の進歩は極めて著しい。
特に、計算機の普及に伴い、様々な人々が自身のデスクトップ環境で音楽を制作できるようになった。
この現象は、 Desk Top Music として広く知られ、音楽制作が専門家だけでなく
一般の人々にも手の届くものとなった。しかし音楽制作の世界に足を踏み入れようとすると、
専門用語や複雑な機能が次々に登場し、その第一歩を踏み出すことが非常に難しいという課題が存在する。
このような状況に対して、本研究では、JavaScriptのライブラリ Tone.js 
を活用した作曲システムを開発する。
作曲の経験が少ないあるいは全くない初心者にとっての困難性を低下させるべく、
従来のDigital Audio Workstation と比べ
簡素な機能・インターフェイスを搭載した作曲環境を提案することで、
音楽制作の敷居を低くすることを目的とする。(398文字)
\tableofcontents
\clearpage

\chapter{はじめに}
本章では,研究を行なっていく上での背景や目的について説明する。
\section{背景}
2024現在,プロ・アマチュア関係なく作曲が行われている。その大部分をDTMと呼
ばれる手法によって実現されている。DTMはパーソナルコンピュータ(PC)上で音
楽を作成,編集する手法であり、専用のプラグインや仮想楽器を活用することで
豊かな音楽表現が可能である\cite{dtm}。

DTMという作曲方法が持つ主な利点は,実際に楽器の演奏が不可能であっても,PC
の操作で様々な楽器の演奏ができる事,また録音や編集はマウス操作やキーボー
ドで行うことができる事である。

DTMはPC性能の進歩とともに普及した\cite{history}。例として,ハードディスクの大容量化と低
価格化が挙げられる。これにより,多くの音源と機能を扱えるようになった事で,
これまで「宅録」という方法で音楽制作していた人を取り込んだ。またインター
ネットの発展に伴い、ユーザ同士がノウハウを共有できるようになり、費用さえ
厭わなければアマチュアの作曲家がプロフェッショナルとほぼ同様のツールを揃
えることが可能である。

一方で,技術の進歩こそ着実なもののいまだ課題は残されている。
その一つとして,新しく始めようとする人への情報供給過多が挙げられる。
DTMの世界に足を踏み入れた途端,専門用語や未知の機能を並べられる。
またユーザが求める効果へのアプローチが複数ある事が却って足枷となり,
何らかの音を鳴らすこともままならない人もいる。
これではせっかくの作曲を行いたい気持ちが損なわれてしまう事もあると考える。
そのため,あえて使用できる機能を絞った,
PCを持つ人なら無料で使用できる作曲システムが必要なのではないかと考えた。
\section{研究目的}
上記の背景を踏まえ、本研究では JavaScriptのライブラリである
Tone.js を用いて、DTMを行う上で必要な機能を備えたブラウザ上
で動作する作曲システムを開発することを目的とする。
\chapter{関連研究と類似サービス}
本章では現状と課題を明らかとするため、
作曲支援とブラウザにて提供される音楽体験の視点から関連研究と類似したサービスを調査した。
2.1では、ブラウザ上で動作する Digital Audio Workstation (DAW)について取り上げる。
2.2では、作曲支援に関する研究とその効果について取り上げる。
\section{類似サービス}
下記に示す類似サービスは、いずれもブラウザ・クラウドベースの作曲ソフトである。
そのような作曲ソフトの利点として、追加のソフトウェアをインストールする必要がないこと、インターネット接続さえあればどこでも利用できること、またリアルタイムで複数人による同時作曲を得意とすることが挙げられる。
\subsection{BandLab}
シンガポールを拠点とする音楽技術会社、 BandLab Technologies が提供するクラウドベースの DAW である\cite{bandlab}。
Webブラウザ上で動作し、クラウドに楽曲を保存することが出来る。
これにより、ユーザはデバイスを問わずアクセスが可能である。
またBandLabの大きな特徴として、音楽SNSのような機能を提供する点が挙げられる。ユーザは他のアーティストと繋がり、楽曲を共有したり、作品にコメントを残すなどが可能である。
プロフェッショナル向けの機能は存在せず、全ユーザにとって同じ体験が無料で提供される。
\subsection{Soundation}
スウェーデンのスタートアップ企業 Soundation ABによって開発されているクラウドベースのDAWである\cite{soundation}。
音楽制作初心者のユーザを強く意識しており、チュートリアルやビデオガイドを提供している。
また多数のサウンドサンプルやループが用意されており、1からの作曲が困難な人の助けになる。
ただしプランによる制約があり、無料プランでは3つのプロジェクト、ストレージは1GB、利用可能なループやライブラリは限られているなど、非常に限定的である。
%\subsection{AudioSauna}
%サブセクションだよ\cite{sauna}。
\section{関連サービス・における課題点}
ここでは、本研究内容に即した視点から課題を列挙する。

上記したサービスまた研究に共通することとして、
初期学習の負担が大きい事が課題として挙げられる。
特に音楽制作を始めて間もない人にとっては、
用語の複雑さも相まって時間を多く要することが考えられる。

またこれらサービスは音楽理論を学ぶためのツールではないため、
作曲する上での基礎知識が不足している場合、楽曲制作を難しく感じることがあると予想される。

コンテンツがものに寄っては有料である事も、本研究に当たっては避けるべき事象だと言える。

\section{関連研究}
以下のものがあります
\subsection{作曲者の特徴を捉えた学習型自動メロディ生成システムの開発}
丹羽らは、作曲者の作風における共通した音楽的特徴について着目し、その特徴を学習し、作曲家のスタイルに合ったメロディを自動生成するシステムを作成した\cite{sakuhu}。

システムは学習部と生成部の2つで構成されており、作曲家の楽曲データを基に作風を学習し、それに基づいたメロディを自動生成する。学習部では、作曲家の複数の楽曲から音の遷移パターンを抽出し、ニューラルネットワーク(ANN)に音高や音長の特徴を学習させる。生成部には「生成エンジン」と「評価エンジン」が含まれ、生成エンジンは音の遷移ネットワークを構築し、それを基にメロディを生成する。一方、評価エンジンはANNを用いて生成されたメロディの適応度を計算し、遺伝的アルゴリズムを使ってメロディを進化させ、作曲家のスタイルに適したメロディを出力する。

実験では、J.S.バッハの楽曲3曲を学習データとして使用し、生成されたメロディをANNによる評価エンジンで検証した。学習曲と未学習曲を比較した結果、学習曲では不一致度が低く(約0.4)、未学習曲では高い(約0.8以上)ことが確認された。音高遷移の評価で大きな差が見られ、音長遷移では類似パターンが含まれやすい傾向があった。学習曲に対しても不一致度が完全には低下しないことが課題として残り、評価エンジンのさらなる改良を課題とした。
\subsection{バンド演奏特化型作曲支援システムの開発}
増田は、楽器経験者で作曲初心者が抱える課題に着目し、バンド演奏に適した曲を作曲できる支援システムを作成した。\cite{band}。

ユーザ調査では、作曲経験者と挫折した人を対象にアンケートを実施し作曲環境や手順の違いを比較した。その結果作曲成功の鍵となる要因として、コード進行のルール理解やスタジオなど充実した作曲環境の重要性が浮かび上がった。これを基に作曲に挫折しないためには、コード進行の支援機能、他楽器の補助機能、録音内容を視覚化する機能、そして全工程を一台で完結できるシステムが必要であると仮説を提案した。

プロトタイプの設計では、ユーザーの利用シナリオに基づき、コード進行支援機能や自動採譜機能、リズムパターン選択機能などを組み込んだ。シナリオ評価を通じて、ユーザーからは自動採譜やコード進行の支援機能が好評を得る一方で、システム全体の流れがわかりにくいとの指摘があった。結論として、この作曲支援システムは初心者をサポートする有望なツールであることが示されたが、今後はユーザーのフィードバックを反映し、操作性や機能の改善が求められている。
\subsection{オンライン協調作曲支援システム Marble の開発}
大平らは、初心者ユーザーにおけるオンライン協調作曲の課題に着目し、楽曲イメージの共有と作曲効率の改善を目的とした支援システム「Marble」を作成した\cite{marble}。

Marbleの主な機能として、ピアノロールインターフェースによる視覚的な音楽データの編集機能、Skype APIを使用したリアルタイムの楽譜データ動機と共同編集機能、またメンバー間の作曲における各ステップの進行状況を即事に共有すると言った機能が設計されている。
従来の非同期型DTMシステムとMarbleを作曲完了時間と編集回数で比較する実験では、作曲完了に要する時間が優位に短縮した結果が得られている。
\subsection{音楽制作授業実施に際しての事例}
小松は、DTMによる音楽制作の授業において、学生が音楽理論を学びながら楽曲制作を行うこと
を目的とし、GarageBandを活用した実践的授業内容とルーブリック評価による評価手法を構築した
\cite{class}。

具体的な演習の流れとして、はじめにコード理論の講義、次にコード進行の作成、最後にコード構成音からのメロディ作成という順で講義を進めた。評価方法は中間課題と最終課題に対してのルーブリック評価であり、知識力、応用力、展開力の観点から定量的、定性的に評価を行った。この講義の成果として、音楽制作に対しての理解度向上、またきめ細かい指導と評価が実現できたことを挙げている。
課題として、演習素材やテンプレートの拡充や客観的な評価方法の改良を挙げている。

\section{関連研究における課題点}
ここでは、本研究内容に即した視点から課題を列挙する。

これらのサービス・研究に共通する課題は、
作曲初心者が直面するいくつかの重要な障壁に関するものである。
まず、作曲理論やツールの操作方法に対する理解の難しさが挙げられる。
初心者はコード進行のルールや音楽理論を理解するのが難しく、システムの操作にも困難を感じやすい。
特に、丹羽の研究では高度なニューラルネットワークや遺伝的アルゴリズムを用いたシステムが
提供されているが、これらのツールを使いこなすための理解と技術が初心者には難しく、
操作が直感的でないと感じることがある。

また作曲初心者は成果を出すまでの過程で挫折しやすいため、
モチベーションを維持することが難しいという課題がある。
増田の研究においても、作曲に挑戦したものの完成に至らなかったグループは、
作曲手順や環境における問題が影響しているとされている。
作曲ができるグループとできないグループの間には、
コード進行のルール理解や作曲環境の違いが大きく関与していることが示されており、
システムが初心者を支援するためには、より適切な手助けが必要だとわかる。
\chapter{ブラウザ上で動作する簡易作曲システムの提案}
本章では、作曲経験のある複数人へ行ったヒアリング調査の結果と、
今研究にて提案するシステムの概要を示す。
\subsubsection{本研究における初心者の定義}
本研究では、初心者を「音楽理論の実践的部分の理解が未熟であり、
創造的なアイデアの幅が狭く、経験に基づくアレンジが難しい人」と定義する。
ここで言う音楽理論の実践的部分とは、スケールやコード進行を含む初歩的な知識
(具体的には、楽典など)を指す。

初心者の特徴として、以下の傾向が挙げられる。
まず、音楽の展開や変化を工夫する技術が未熟であるため、
楽曲のアレンジ(構成や配置)に自信を持てない場合が多い。
さらに、自身のアイデアを音楽として具体化する方法が限られており、
シンプルなフレーズを発展させる過程で苦労する傾向も見られる。これらの要素を踏まえ、
本研究では初心者を上述の定義に基づいて位置付ける。
\section{ヒアリング調査}
本研究におけるヒアリング調査の最終的な目的は、
「初心者にとって使いやすい作曲ソフト」はどうあるべきかを明らかにすることであり、
開発するシステムが「初心者にとって使いやすい」と明言するための背景にすることである。

ここでは、現在作曲を趣味で行っている者2名へ行ったヒアリング調査の全容を示す。
\subsection{ヒアリング内容}
上記の目的を見据え、以下に示す本研究における初心者の定義に当てはまった経験のある者にヒアリングし、そのデータをもとにワークモデル分析を行う。
これにより、初心者の作曲過程に対し深い理解を得る狙いがある。

フローモデルでは、作曲活動において、誰とどのようなコミュニケーションを取ったのかを明示する。
これは、共同作曲者や編曲家、さらにはアーティストや関係者とのやり取りが
どのように行われたかを詳細に示すものである。
このモデルは、作曲プロセスにおける人間関係のダイナミクスや、情報の伝達方法、
タイミング、頻度、内容なども含む。
これにより、作曲の進行における協力体制や意見交換の流れを可視化し、
全体のプロセスにおけるコミュニケーションの重要性や改善点を見出すことが可能となる。

シーケンスモデルでは、作曲全体の流れを時系列に沿って示す。
具体的には、インスピレーションを収集する段階から、アイディアの具現化、
リズムの形成、メロディの構築、ハーモニーの追加、
そして最終的な曲の完成に至るまでのプロセスを詳細に記述する。
このモデルは、作曲活動の進行順序を把握するだけでなく、
それぞれの段階で試行錯誤がどのように行われ、
作業がどのように進化していくのかを明確にするための手助けとなる。
また、時間配分や各ステップで使用されたツール・リソースについても含めることで、
作曲プロセスの効率性をより深く分析できる。

アーティファクトモデルでは、作曲活動の中で作成された成果物を分析する。
この成果物には、曲を構成するそれぞれの旋律、コード進行、リズムパターン、
歌詞(必要であれば)、楽譜、MIDIデータ、さらにはデモ音源などが含まれる。
これらの要素を細かく分析することで、作曲者がどのような方法でアイディアを具体化し、
音楽を形にしていったのかを明らかにする。このモデルはまた、
それぞれの要素が最終的な作品にどのように統合され、
どのような役割を果たしたかを理解するためにも有用である。

物理モデルでは、作曲活動が行われた環境や、使用された物理的ツールに焦点を当てて分析を行う。
これには、作業空間の設定(例:自宅スタジオ、屋外など)や、使用した楽器、DAW、
録音機材、またはアナログな紙と鉛筆まで含まれる。
このモデルは、作曲環境が創作プロセスにどのように影響を及ぼしたのかを分析する際に有用である。

文化モデルでは、作曲者が参考にした人物や共同作曲者が本人に与えた影響を分析する。
これには、作曲者が好むアーティストや音楽ジャンル、過去の音楽経験、
さらには地域的な音楽文化や社会的背景など、
作曲者の音楽的バックグラウンドを構成する要素全般が含まれる。
影響の源泉としてのアーティストやスタイル、トレンド、または教育的な影響も取り入れ、
作曲者の音楽観やスタイルがどのように形成されてきたのかを深く掘り下げる。
このモデルは、作曲者の作品がどのような文化的文脈の中で生まれたのかを理解する上で必要な視点である。
\subsubsection{ワークモデル分析について}
本項ではワークモデル分析について説明する。

ワークモデル分析は、人間の仕事や活動を詳細に理解し、
それを効率化したり改善したりするための分析手法である。
このアプローチは単に業務を表面的に捉えるのではなく、
その背景にある行動パターンやプロセスを深く掘り下げることに重点を置いている。
特に仕事や作業の流れを細かく分解し、その中で起こるさまざまな要素を体系的に整理することで、
全体の効率や効果を向上させる具体的なヒントを得ることができる。

ワークモデル分析の特徴として、一連の作業を5つのシーケンスに分けて分析する点が挙げられる。
この手法により、各シーケンスにおける作業の流れや、
ユーザがどのようにタスクを進めているのかを詳細に観察することが可能となる。
それぞれのシーケンスを注意深く分けることで、業務の全体像を俯瞰しやすくなるだけでなく、
部分ごとに特化した改善策を立案できるようになる。

さらに、この分析手法を用いることで、
ユーザの行動や意思決定に対するより深い理解が得られる点も大きな利点である。
これによりユーザがどのようなニーズや課題を抱えているのか、また
それを解決するための具体的なサポートがどのように提供できるのかを明確にすることができる。
結果として、ユーザ体験の質を向上させるだけでなく、業務プロセス全体の効率化にもつながる。
\subsection{調査結果}
現在21歳の作曲経験のある男性2人に調査を行った。
以下に、各ワークモデルに沿った分析における共通点を示す。
\subsubsection{フローモデルにおける共通点}
\begin{itemize}
\item 両者とも初めは独学で作曲を進めており、
  最初は自己満足のために作業をしている点。
\item 作曲の過程はメロディの作成から始まり、次第に他の要素(ベース、和音、リズム)を
  追加していく流れ。
\item 作曲の初期段階では、アイデアを思いつき少しずつ形にしていくプロセスが多く見られ、作業は一人で進めることが多いが、演奏を通じて修正していく過程。
\item 作曲の時間や作業の進行がアイデアを形にする過程で遅くなることがあり、
  アイデアが溜まりすぎてしまう点。
\end{itemize}

\subsubsection{シーケンスモデルにおける共通点}
\begin{itemize}
\item 両者とも作曲が形になるまでに時間がかかり、
  特にメロディやベースなどの主要な要素を決めることに時間をかけている点。
\item メロディやベースが決まればリズムや和音などは比較的早く進み、
  全体的な形が決まるという流れ。
\item 作曲のスピードが遅く、曲が形になるまでに1~2か月かかるという点。
  アイデアを形にする過程で時間を取られ、作曲を続けるモチベーションが維持しにくいという問題。
\end{itemize}

\subsubsection{アーティファクトモデルにおける共通点}
\begin{itemize}
\item 作曲に必要なアイデアをメモや録音機能で記録し、
  後で確認して作業を進める方法を取っている点。
  歌詞やフレーズ、メロディのアイデアはメモ帳やスマホに録音しておき、後で活用するという形。
\item 音楽制作ツール(DAW、エフェクター、音源など)を使いこなすために、
  手元の録音機器や楽器を活用している点。
\end{itemize}

\subsubsection{物理モデルにおける共通点}
\begin{itemize}
\item 両者とも作曲には主にパソコンを使用し、無料のソフトウウェアを主に使って
  録音したり編集したりしている点。
  最初は親のPCを借りて使っていたり、簡易的な機材を使用していた。
\item 音楽制作においては、自分の部屋や外の静かな場所を作業場所として選んでおり、
  音楽に集中できる環境を重視している点。
\item 機材やソフトウェアの理解が足りないため、設定がうまくいかなかったり
  音が出なかったりすることがあり作業が進まない点。
\end{itemize}

\subsubsection{文化モデルにおける共通点}
\begin{itemize}
\item 作曲を始めた当初は他の作曲者やアーティストの影響を受けており、
  好きなアーティストのスタイルを参考にして自分の音楽に取り入れていく過程が見られる点。
\item 他のアーティストの曲を参考にして自分の作曲にどう活かすかを考えており、作曲のアプローチを広げるために異なるジャンルを取り入れている点。
\end{itemize}

\section{初心者にとって有用な機能の考察}
上記の調査や関連研究・サービスの課題点から、本項では作曲初心者にとって有用な機能の考察を行う。

アイデアを形にする工程において時間を膨大に費やすということは、
作曲経験が少ない人にとっては非常に多く見られる事象であると言える。
特に、メロディやリズム、和音の決定に多くの時間をかけ、
曲の完成までに長い時間がかかることが一般的である。
音楽的な直感や経験の不足から、アイデアを形にするために試行錯誤を繰り返すことになる。
また作曲における技術的な知識が身についていない段階では、
アイデアを迅速に具現化することができず時間がかかることもありがちな事象ととれる。

このことから、従来の作曲ツールやサービスが提供しているものでは
作曲の過程で直感的に楽曲を制作するための支援が十分でないことが浮き彫りになる。
したがって、作曲初心者にはより直感的で分かりやすく簡単に楽曲を制作できる手段が
必要であると考察される。
例を挙げると、難解な音楽理論を前提とせず、視覚的かつ簡単に操作できる
インターフェースが求められている。
直感的に操作できるツールやガイドラインを提供することで、
初心者でも曲作りをスムーズに進められるようになり、
作曲にかかる時間を大幅に短縮できる可能性がある。

さらに、作曲における音楽的知識や経験の不足も初心者が直面する大きな障害の一つだと言える。
それはどこから手をつけて良いか分からず、作曲が思うように進まないという現象に現れている。
このことから、作曲の過程で音楽理論や基本的な知識を自然に学べる機能があれば、
作曲と学習でシーンを分ける必要がなくなると考察する。
\section{システムの提案}
上記の考察から、本システムにて満たすべき要件は以下のとおりである。
\begin{itemize}
\item 従来より学習コストが低く、誤操作の少ないインターフェース。
\item 作曲と同時に音楽知識を学習することが出来る機能。
\end{itemize}
本研究で提案するシステムは、JavaScriptのライブラリである
Tone.js を用いて、上記要件を満たしたブラウザベースで動作する作曲システムである。

搭載する機能については次章にてに詳しく記載する。
\chapter{システムの設計}
本章では3章をもとに、システムの設計を行う。
3.4節で定めた要件を軸に、本システムに必要な機能設計を以下に示す。
\section{本システムの全体設計}
本システムのフロントエンドアーキテクチャはSPA(シングルページアプリケーション)
\footnote{SPAとは,ウェブアプリケーションの構造の1種で、
初回のページロード後にサーバから追加のページを所得せずに動作するアプリケーションを指す。
}
で作成する。
作曲の過程においてはメロディ作成から打ち込み、試聴を繰り返す必要があるため、
頻繁に編集画面を行き来することが想定される。
そのため、画面遷移のたびにサーバからコンテンツを読み込む必要のある
MPA(マルチページアプリケーション)
\footnote{MPAとはウェブアプリケーションの構造の1種で、
ユーザが異なるページに移動するたびに、ブラウザが新しいHTMLページをサーバから所得、
ページ全体を再ロードする仕組み。
}
よりも、前のページとの差分のみの更新と1度ページを読んでしまえば
ネットワークの通信速度に影響されない仕組みにより、
ページ遷移にかかる時間の少ないSPAを採用する。
\section{入力方法の設計}
本研究で開発するシステムは、鍵盤操作とテキストボックスへの入力による音高入力方法を採用する。
以下に、それぞれの入力方法の詳細を記す。
\subsection{鍵盤による入力の設計と使用方法}
HTML上で1オクターブ分のボタンを鍵盤に見立てて用意し、
CSSでスタイリングすることで視覚的にも楽器の鍵盤に近い
インターフェースを再現しているものである。この設計により、ユーザーは直感的に音階を入力でき、
音楽的なアイデアをすぐに形にすることが可能である。

鍵盤における各ボタンは、それぞれの音高(C4、D4など)に対応しており、
クリックされたボタンの位置と順序がプログラムによって記録される。
この記録は再生時に読み込まれ、記録された順序と音高に従って音を鳴らす仕組みである。
\subsection{テキストボックスによる入力の設計}
テキストボックスを利用した音階の入力方法も提供しており、
ユーザーが直接音符やコードの情報を記述することで音楽を作成できるインターフェースをである。
この入力方法は、鍵盤を使用した視覚的な入力とは異なり、
タイピングによる入力を得意とするユーザーや、
音楽理論に精通しているユーザーに特に適している。

テキストボックス内では、音高(例: C4, D4, A5など)や音符の長さ(例: 1/4, 1/8)
を文字として記述する形式が採用されている。
例えば、「C4 1/4 D4 1/8 G4 1/2」と入力することで
旋律やリズムがソフトウェア上で解釈され、再生が可能になる。
\section{楽器の音色の設計}
本システムにて搭載する楽器の音色は、以下の通りとする。
\begin{itemize}
\item 正弦波からなるシンセサイザーの音。
\item ピアノの音。
\item ヴァイオリンの音。
\item トランペットの音。
\end{itemize}
シンセサイザーの音色は、電子楽器特有の純粋な正弦波を基盤としている。
この音はシンプルでクリアな性質を持ち、音楽制作において基本的な役割を果たすだけでなく
他の音色との組み合わせや音響効果の実験に適しているといえる。

鍵盤楽器の代表としてピアノの音色を搭載している。
ピアノの音は豊かな倍音構成と自然な減衰特性を持ち、
クラシックからジャズ、ポップスまであらゆるジャンルの音楽に対応することが可能である。

弦楽器を代表する音色としてヴァイオリンを採用している。
繊細なニュアンスから情熱的な旋律まで幅広くカバーできる音色であり、
ソロ演奏にもアンサンブルにも適している。

管楽器を代表する音色としてトランペットを採用している。
トランペットの持つ力強く明るい音は、ファンファーレやソロパートでの活用に適している。
ジャズやポップス、クラシック音楽など多様なジャンルで活躍する音色であり、
楽曲に華やかさを添えることが可能となる。
\section{発音方法の設計}
システムは、各楽器音色がTone.jsライブラリを基盤に設計されている。
Tone.jsの Synth および Sampler クラスを用いることで、
正弦波やサンプル音源を元にリアルタイムで音を生成する。
発音のトリガーや音の長さはユーザーの入力に応じて制御される。
\chapter{システム開発}
本章では、4章で設計したシステムの概要と仕様を基に、
実際のシステム開発を行うプロセスについて詳述する。
開発においては、主にJavaScriptを使用し、
特に音楽制作向けの強力なライブラリであるTone.jsを積極的に活用する。

この章では、開発に使用する環境、各機能実装の具体的な手法について詳細に解説する。
\section{開発環境}
\begin{itemize}
  \item 開発言語
        \begin{itemize}
          \item HTML
          \item CSS
          \item JavaScript
                \begin{itemize}
                  \item Tone.js
                \end{itemize}
        \end{itemize}
      \item ブラウザ
        \begin{itemize}
        \item Mozilla Firefox - 132.0.1
        \end{itemize}
\end{itemize}
\section{システム全体の開発}
本項ではシステム全体の開発プロセスについて説明する。
本システムは、ユーザーがブラウザ上で簡単に音楽を作成、編集、再生
できることを目指したものであり、その実現には
音声処理、ユーザーインターフェース(UI)の要素を連携させる必要がある。
以下に、各開発段階とその具体的な内容を詳述する。
\section{ユーザーインターフェイス}
HTMLとCSSを使用して直感的で視覚的に分かりやすいインターフェースを構築する。
以下に、システムを構成する主要コンポーネントについて説明する。
\subsection{仮想キーボード}
鍵盤はC3からB5までの範囲を描画する。
押下(onmousedown)で音が鳴り、離す(onmouseup)ことで音が止まる仕様である。
以下は、仮想キーボードを描画するプログラムである。

\begin{itembox}[l]{仮想キーボードを描画する関数}
\scriptsize{
\begin{verbatim}
const drawKeyboard = () => {
    const musicalScaleArray = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
    for (let i = 0; i < 25; i++) {
        const key = document.createElement("button");
        key.id = `key_${musicalScaleArray[i % musicalScaleArray.length]}${Math.floor(i / 12) + 3}`;
        key.onmousedown = recordNote;
        key.onmouseup = stop;
        key.onmouseleave = stop;

        if (musicalScaleArray[i % 12].indexOf("#") > -1) {
            key.classList.add("black");  // 黒鍵
        } else {
            key.classList.add("white");  // 白鍵
        }
        document.getElementById("keyboard").appendChild(key);
    }
};
\end{verbatim}
}
\end{itembox}
\subsection{オクターブの切り替え}
以下は現在のオクターブを表示し、ボタンで音域を増減するための関数である。
\begin{itembox}[l]{オクターブの切り替えに機能する関数}
\scriptsize{
\begin{verbatim}
const increaseOctave = () => {
    if (currentOctave < 7) {
        currentOctave++;
        document.getElementById("currentOctave").textContent = currentOctave;
    }
};

const decreaseOctave = () => {
    if (currentOctave > 1) {
        currentOctave--;
        document.getElementById("currentOctave").textContent = currentOctave;
    }
};
\end{verbatim}
}
\end{itembox}

\section{音声処理}
ユーザの入力を解析し、音符やリズム情報に変換するロジックをJavaScriptで実装する。
この中核となる処理には、Tone.jsライブラリを用いてリアルタイムの音声合成と制御を行う。
\subsection{Tone.js について}
Tone.jsは、Web Audio APIを簡略化したJavaScriptライブラリである\cite{tonejs}。
音声生成、エフェクト処理、スケジューリング、音楽理論サポートなど、
音楽制作に必要な機能を提供する。シンセサイザーやサンプラーで音を生成し、
リバーブやディレイといったエフェクトを適用したり、スケール(音階)や音符の
スケジュール再生を行うことが出来る。
また、複数の楽器トラックを同時に再生することも可能であり、
簡潔なコードで音声処理を実現できるのが特徴である。
以下はピアノ音源をサンプルとして使用し、C4の高さで四分音符1つ分を鳴らすプログラムである。
\begin{itembox}[l]{ピアノ音源をサンプルとして使用し、C4の高さで四分音符1つ分を鳴らすコード}
\scriptsize{
\begin{verbatim}
// サンプラーを準備
const sampler = new Tone.Sampler({
    urls: {
        "C4": "piano_C4.mp3",
        "D#4": "piano_Ds4.mp3",
        "F4": "piano_F4.mp3",
    },
    baseUrl: "/sounds/piano/", // サンプル音源のパス
}).toDestination();

// サンプル音を鳴らす
sampler.triggerAttackRelease("C4", "4n");
\end{verbatim}
}
\end{itembox}

\subsection{音源生成}
音声の基本単位は波形として生成される。
Tone.js を用いて選択された楽器に応じた音を生成する。
以下はシンセサイザー及びサンプラーを生成するプログラムである。
\begin{itembox}[l]{シンセサイザーとサンプラーを生成するコード}
\scriptsize{
\begin{verbatim}
const instrument1 = new Tone.Synth().toDestination();
const instrument2 = new Tone.Sampler({
    urls: {
        A1: "A1.mp3",
        C3: "C3.mp3",
    },
    baseUrl: "https://tonejs.github.io/audio/salamander/",
}).toDestination();
\end{verbatim}
}
\end{itembox}
シンセサイザーは波形(例として正弦波)を生成し、音高や振幅を調整する。
ユーザが鍵盤を押すことで、対応する音高の波形が再生される。
ピアノ、ヴァイオリン、トランペットは録音済みの楽器音を再生する。
サンプル間の補間により、スムーズな音程変更を実現している。

\subsection{メロディの再生}
鍵盤の操作や事前に記録されたノートを基に、音をスケジュールして再生する。
以下は、Tone.js を用いて音を鳴らすためのサンプルコードである。
\begin{itembox}[l]{音を鳴らすためのサンプルコード}
\scriptsize{
\begin{verbatim}
instrument.triggerAttackRelease(scale, duration, currentTime);
\end{verbatim}
}
\end{itembox}

音を指定の音高(scale)で鳴らし、指定の長さ(duration)だけ保持した後に停止する。
また再生するタイミングは引数 currentTime にて秒単位で指定が可能。

\chapter{今後の展望について}
本章では,研究についての今後の展望ついて説明する。
\section{社会調査}
本研究では、作曲に関わる人々を対象にヒアリング調査を行い、
その内容をワークモデル分析を用いて解析した。調査対象としては、
異なる背景や経験を持ちながら作曲に触れ始めた人々を選定したが、
社会全体に共通する課題を明確に定義することが困難であった。

この困難の要因として、主に二つの問題が挙げられる。
一つ目は、調査対象の母数が少なかったことである。
調査対象者が限られていたため、得られるデータの多様性が不足し、
一般化可能な結論を導くのが難しくなった。
特に、作曲という分野では個々の背景や経験が非常に多様であり、
より広範なサンプルサイズが必要であった。二つ目は、ヒアリングで用いた質問内容が
一部曖昧であった点である。質問設計の段階で具体性や精緻さが欠けていたため、
回答者から得られる情報が断片的で、調査の目的に沿った課題の抽出が困難であった。

これらの問題点に対する改善策として、まず調査対象の母数を増やす必要がある。
多様な人々の意見や経験を取り入れることで、より包括的で普遍的な結論を導き出すことができる。
その際には、調査対象者の選定基準を明確にし、
背景や経験が異なる複数のグループからバランスよく対象者を抽出することが求められる。

また、調査方法の抜本的な見直しも必要である。
具体的には、質問内容を精査し、回答者にとって明確かつ答えやすい設問を設計することが重要である。
ヒアリング調査に加えて、アンケート調査や観察調査といった多様な調査手法を併用する事も視野に入れ、
データの信頼性と説得力を向上させる。
\section{システムの改良}
現在本システムの開発状況は、2トラックの独立した入力および再生機能の実装が完了し、
これらトラックの同時演奏が可能な状態に達している。
ユーザは2つのトラックを別々に録音、編集、再生できるだけでなく、
これらを同時に重ね合わせた演奏も実現されている。
この段階で、基本的な多重録音機能とリアルタイム演奏機能の試用が可能となっている。

次の開発段階に進むにあたり、
改めて行う社会調査の結果に基づき、次なる方向性を検討し、
ユーザ体験をさらに向上させる機能やインターフェースの改善に取り組む。
このプロセスにより、本システムが音楽制作の現場で一層価値あるツールとなることを目指している。
	
\begin{thebibliography}{}
\bibitem{dtm}beesic.“DTM以外の作曲の仕方。魅力的なハードウェアの世界“. beesic 自分だけのDTMライフを。. \url{https://beesic.blog/2023/03/15/charm-of-hardware/}, (参照:2024/5/27).
\bibitem{history}SF2K.“これまでのDTMの歴史をゆるりとまとめてみた“. SF2KLAB. \url{http://sf2k-lab.com/dtm-history/}, (参照:2024/5/27).
\bibitem{bandlab}BandLab.“BandLab”. 2024 BandLab Technologies. \url{https://www.bandlab.com/}, (参照:2024/11/15).
\bibitem{soundation}Soundation Education.“Inspiration“. 2024 Soundation. \url{https://edu.soundation.com/teacher-resources/inspiration}, (参照:2024/11/15).
\bibitem{sakuhu} 丹羽孔明 湯川恵子 木下正博 川上敬."作曲者の作風を考慮したメロディ自動生成システムの構築".\url{https://www.jstage.jst.go.jp/article/pscjspe/2011A/0/2011A_0_645/_pdf/-char/ja},(参照 2024-7-16) .
\bibitem{band} 増田英之."バンド演奏のための作曲支援システム提案".\url{https://www.jstage.jst.go.jp/article/jssd/56/0/56_0_C20/_pdf/-char/ja},(参照 2024-7-16) .
\bibitem{marble}大平 雅雄,木村 昌樹,松本 健一.“ライトユーザを対象としたオンライン協調作曲支援システム“. \url{https://www.jstage.jst.go.jp/article/his/12/3/12_219/_pdf/-char/ja}, (参照:2024/11/15).
\bibitem{class}小松 隆行.“音楽制作授業の実践“. \url{https://conference.ciec.or.jp/themes/root@pcc/2017pcc/papers/pdf/pcc078.pdf}, (参照:2024/11/15).
\bibitem{tonejs}Yotam Mann.“Tone.js“. Tone.js. \url{https://tonejs.github.io/},(参照:2024/5/27).
  
  %%\bibitem{soundtrap} Soundtrap US Inc."Soundtrap".\url{https://www.soundtrap.com/musicmakers},(参照 2024-7-16).
  %%\bibitem{sauna} Naive Solutions."AudioSauna".\url{http://www.audiosauna.com/},(参照 2024-7-16) .
  %%\bibitem{hyogenshien} 西本一志."音楽における創造的表現の支援".\url{http://www.jaist.ac.jp/ks/labs/knishi/IEICE2003.pdf},(参照2024-8-6)
  %%\bibitem{interface} 長嶋洋一."音楽/芸術表現のための新インターフェース".\url{https://nagasm.org/ASL/suac2003/suac2003.pdf},(参照2024-8-6)
  %%\bibitem{class} 安藤大地 伊庭斉志."木構造型遺伝子を用いたクラシック音楽作曲支援システム:CACIE".\url{https://www.jstage.jst.go.jp/article/pjsai/JSAI07/0/JSAI07_3C72/_pdf/-char/ja},(参照 2024-7-16) .
\end{thebibliography}
\end{document}