basic setup finished

This commit is contained in:
2024-11-27 03:35:22 +00:00
parent d5f81c20e3
commit b05d455234
7 changed files with 297 additions and 59 deletions

13
src/.latexmkrc Normal file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env perl
@default_files = ("main");
# $pdf_mode = 4;
# $lualatex = 'lualatex -shell-escape -interaction=nonstopmode';
$pdf_mode = 3;
$latex = 'platex --kanji=utf8 -synctex=1 -file-line-error -halt-on-error %O %S';
$max_repeat = 4;
$bibtex = 'pbibtex';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';

0
src/ipsj.cls Executable file → Normal file
View File

0
src/ipsjprosym.cls Executable file → Normal file
View File

View File

@@ -9,65 +9,51 @@
\begin{document}
% Title, Author %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{タイトルをここに}
\title{ラムダ計算の拡張に基づく音楽プログラミング言語mimiumとそのVMの実装}
\affiliate{IPSJ}{情報処理学会}
\affiliate{PROSYM}{プログラミング・シンポジウム幹事団}
\affiliate{TOMOYA}{東京藝術大学芸術情報センター}
\author{松浦 知也}{Matsuura Tomoya}{TOMYOA}[me@matsuuratomoya.com]
\author{情報 太郎}{Joho Taro}{IPSJ}[taro@ipsj.or.jp]
\author{プロシン 花子}{Hiroki MIZUNO}{PROSYM}[hanako@prosym.ipsj.or.jp]
\begin{abstract}
[概要400字程度]
本テンプレートは,プログラミング・シンポジウム予稿集に掲載される原稿のた
めのスタイルファイルの使い方を示すものである.著者より提出された原稿は,
ヘッダやページ番号が付加されてB5サイズにて製本されるそのためスタイ
ルファイルを使用した原稿は,通常よりも大きな余白がとられ,またページ番号
等がつかない.印刷時の問題を避けるため,最終原稿の提出の際には,フォント
の埋め込みを行ってください.○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
本発表では筆者の開発する音楽のためのプログラミング言語mimiumの理論的基盤について、音楽向け言語の歴史的文脈に沿って解説する。mimiumは、リアルタイム信号処理を想定した音楽用のDSLだが、既存の多くの言語異なり、Unit Generatorのような特定の音楽表現に基づくプリミティブを用意しない。代わりに、値呼び単純型付きラムダ計算に遅延とフィードバックという2要素をプリミティブとして追加した中間表現を定義することで、その言語上でほとんどの信号処理アルゴリズムを関数のパイプとして表現できる。また、Luaを参考にしたVMを定義することで、内部状態を持つ信号処理関数の高階関数を用いた複製や、ホスト環境の埋めこみを容易に可能似している。音楽というドメインに特化しながらも、汎用性を失わない言語の意義について議論する。
\end{abstract}
\begin{jkeyword}
プログラミング・シンポジウム,冬,予稿集
ドメイン固有言語,音楽,信号処理
\end{jkeyword}
\maketitle
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}
\section{はじめに-音楽プログラミング言語の形式化}
本テンプレートは「プログラミング・シンポジウム予稿集」に掲載される
原稿のためのクラスファイル(\verb|ipsjprosym.cls|)の使い方について説明するものである.
音楽のためのプログラミング言語・環境は、Cycling'74 Max\cite{max}やPure Data\cite{pd}、CSound、SuperCollider、ChucKといった言語を代表として様々なものが開発されてきている。こうした言語の多くは歴史を遡ると1950年代にベル研究所でマックス・マシューズらが開発したMUSICシリーズに遡ることができる。MUSICシリーズは音圧波形を時間・音圧の2次元で離散化・量子化した数列として表すことで、計算によって任意の波形を生成することが可能になるパルス符号変調という理論に基づいて計算機で音を出した最初の事例である。
プログラミング・シンポジウム予稿集の原稿は,印刷前にまとめてページ番号が振られ,
B5版で製本される本クラスファイルを用いることでそのような原稿を作成できるはずである
CやC++といった汎用プログラミング言語で音声合成を行う場合も、基本的にPCMの理論に基づいてプログラミングを行うことになるが、こうした汎用の言語はメモリ管理や並行処理といったハードウェアに近い処理への理解を要求されるため、一般に音楽の記述を行う場合にはより抽象化されたライブラリや、専用のドメイン固有言語を利用するのが普通である。
\section{オプション}
そうしたライブラリや言語では、Unit Generator(UGen)と呼ばれる、オシレーターやフィルターといった基礎的な処理単位を、モジュラーシンセサイザーの様に組み合わせていくことで処理を行う。\footnote{モジュラーシンセサイザーとUnit Generatorは実際には同時期に現れたコンセプトではあるが、音楽プログラミング言語は積極的にビジュアル的なメタファーを物理的なシンセサイザーから取り入れてきている。}
多くの言語ではUGen自体の実装にはC++などの汎用言語を用いて、動的ライブラリの形で提供される。
こうしたUGenパラダイムにはいくつかの問題点が指摘できる。
まず1つはコードの再利用性である。多くの言語では、実際にはほとんど同じような内容であるにも関わらず、それぞれが基本的なUGenを実装し直しており、言語間での相互運用性も少ない。
2つ目は、UGen自体を基礎的なデータ型
% 音楽プログラミング言語用のバックグラウンドを追加する
\section{音楽のためのプログラミング言語mimiumの仕様}
\verb|ipsjprosym.cls| では以下の二つのオプションを提供している.
\begin{itemize}
\item \verb|withpage|: 著者が執筆上必要な場合のため,ページ番号をつける
\item \verb|english|: 英語で執筆される場合にフォーマットを調整する.
\end{itemize}
\section{論文1ページ目の情報}
論文の1ページ目にはタイトル著者名著者所属概要キーワードが配置される
それぞれ,
\begin{itemize}
\item \verb|\title|
\item \verb|\author|
\item \verb|affiliate|
\item \verb|\begin{abstract}|\verb|\end{abstract}|
\item \verb|\begin{jkeyword}|\verb|\end{jkeyword}|
\end{itemize}
によって記述する.
その後,\verb|\maketitle| コマンドによってそれらの情報が配置される.
以下,通常の論文と同様の形式で記述して下さい.
@@ -81,16 +67,16 @@ B5版で製本される本クラスファイルを用いることでその
まで連絡下さい.
\begin{acknowledgment}
謝辞が必要であれば,ここに書く.
mimiumの開発は、2019年度未踏IT人材発掘・育成事業の支援の元開発された。また本研究は、日本学術振興会科研費若手研究「音楽と工学の相互批評的実践としての「音楽土木工学」の研究 」23K12059の助成を受けている.ここに感謝の意を表する。
\end{acknowledgment}
% BibTeX を使用する場合 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \bibliographystyle{ipsjsort}
% \bibliography{ref}
\bibliographystyle{ipsjsort}
\bibliography{ref}
% BibTeX を使用しない場合
\begin{thebibliography}{9}
\bibitem{latex} 奥村晴彦, 黒木裕介: \textbf{LaTeX2e美文書作成入門}. 技術評論社, 2013.
\end{thebibliography}
% \begin{thebibliography}{9}
% \bibitem{latex} 奥村晴彦, 黒木裕介: \textbf{LaTeX2e美文書作成入門}. 技術評論社, 2013.
% \end{thebibliography}
\end{document}

96
src/template.tex Normal file
View File

@@ -0,0 +1,96 @@
% withpage: ページ番号をつける (著者確認用)
% english: 英語原稿用フォーマット
\documentclass{ipsjprosym}
%\documentclass[withpage,english]{ipsjprosym}
\usepackage[dvips]{graphicx}
\usepackage{latexsym}
\begin{document}
% Title, Author %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{タイトルをここに}
\affiliate{IPSJ}{情報処理学会}
\affiliate{PROSYM}{プログラミング・シンポジウム幹事団}
\author{情報 太郎}{Joho Taro}{IPSJ}[taro@ipsj.or.jp]
\author{プロシン 花子}{Hiroki MIZUNO}{PROSYM}[hanako@prosym.ipsj.or.jp]
\begin{abstract}
[概要400字程度]
本テンプレートは,プログラミング・シンポジウム予稿集に掲載される原稿のた
めのスタイルファイルの使い方を示すものである.著者より提出された原稿は,
ヘッダやページ番号が付加されてB5サイズにて製本されるそのためスタイ
ルファイルを使用した原稿は,通常よりも大きな余白がとられ,またページ番号
等がつかない.印刷時の問題を避けるため,最終原稿の提出の際には,フォント
の埋め込みを行ってください.○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
\end{abstract}
\begin{jkeyword}
プログラミング・シンポジウム,冬,予稿集
\end{jkeyword}
\maketitle
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}
本テンプレートは「プログラミング・シンポジウム予稿集」に掲載される
原稿のためのクラスファイル(\verb|ipsjprosym.cls|)の使い方について説明するものである.
プログラミング・シンポジウム予稿集の原稿は,印刷前にまとめてページ番号が振られ,
B5版で製本される本クラスファイルを用いることでそのような原稿を作成できるはずである
\section{オプション}
\verb|ipsjprosym.cls| では以下の二つのオプションを提供している.
\begin{itemize}
\item \verb|withpage|: 著者が執筆上必要な場合のため,ページ番号をつける
\item \verb|english|: 英語で執筆される場合にフォーマットを調整する.
\end{itemize}
\section{論文1ページ目の情報}
論文の1ページ目にはタイトル著者名著者所属概要キーワードが配置される
それぞれ,
\begin{itemize}
\item \verb|\title|
\item \verb|\author|
\item \verb|affiliate|
\item \verb|\begin{abstract}|\verb|\end{abstract}|
\item \verb|\begin{jkeyword}|\verb|\end{jkeyword}|
\end{itemize}
によって記述する.
その後,\verb|\maketitle| コマンドによってそれらの情報が配置される.
以下,通常の論文と同様の形式で記述して下さい.
\section{まとめ}
本テンプレートでは,プログラミング・シンポジウム向けの原稿を,
\LaTeX を用いて準備する方法についてごく簡単に示した.
本テンプレートに関する質問・バグ報告は,
第56回プログラミングシンポジウム予稿集担当松崎公紀\verb|matsuzaki.kiminori@kochi-tech.ac.jp|
まで連絡下さい.
\begin{acknowledgment}
謝辞が必要であれば,ここに書く.
\end{acknowledgment}
% BibTeX を使用する場合 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \bibliographystyle{ipsjsort}
% \bibliography{ref}
% BibTeX を使用しない場合
\begin{thebibliography}{9}
\bibitem{latex} 奥村晴彦, 黒木裕介: \textbf{LaTeX2e美文書作成入門}. 技術評論社, 2013.
\end{thebibliography}
\end{document}