やさしい音と音楽のプログラミング
ヤサシイオトトオンガクノプログラミング
なぜ注目されているか
書籍紹介
Windows コンピュータで音・音楽をプログラミングしてみたい人のための、最初の 1 冊。
本書で示す開発環境 (Visual Studio) でサンプルコード (C、C++ 言語) を動かすうちに、少しずつ音・音楽プログラミングの知識が身につきます。音の物理的性質や楽典といった音・音楽の基礎知識も提供しつつ、ビープ音を鳴らすプログラムから、MIDI ライブラリで楽器音を鳴らすプログラミング、音楽と連携した簡単な GUI 作成まで、やさしく指南します。
Step 1. プログラミング環境をつくる
Step 2. とりあえずパソコンから音を出してみる
Step 3. プログラミングと音の基礎知識を学ぶ
Step 4. スタンダード MIDI と楽典の基礎を学ぶ
Step 5. より発展的な楽典を学び、音楽生成プログラミングに挑戦
Step 6. GUI によるアプリケーションプログラミングに挑戦
第 0 章 準備: プログラミング環境のインストール
第 1 章 とりあえず、パソコンから音を出してみよう
第 2 章 C による電子音生成プログラム
第 3 章 MIDI による音楽生成プログラム
第 4 章 発展的な音楽プログラミングと楽典
第 5 章 音楽再生アプリケーションをつくる
技書の森解説
パソコンから音を鳴らすところから始めて、楽器の音で曲を演奏させ、最後は音楽と連携した画面のあるアプリまでを、サンプルコードを動かしながら学ぶ入門書です。『やさしい音と音楽のプログラミング』 (横山 真男 著、森北出版、2019 年 5 月刊) は、版元が「Windows コンピュータで音・音楽をプログラミングしてみたい人のための、最初の 1 冊」と紹介する本で、開発環境に Visual Studio を使い、サンプルコードは C 言語 と C++ で書かれています。刊行時の版元ドットコムの著者紹介では、著者は明星大学准教授です。
第 0 章から第 5 章へ、ビープ音から GUI アプリまで
目次は第 0 章「準備: プログラミング環境のインストール」から始まり、第 1 章「とりあえず、パソコンから音を出してみよう」、第 2 章「C による電子音生成プログラム」、第 3 章「MIDI による音楽生成プログラム」、第 4 章「発展的な音楽プログラミングと楽典」と進み、第 5 章「音楽再生アプリケーションをつくる」で閉じる 6 章です。紹介文には Step 1 から Step 6 までの学びの順も示されており、プログラミング環境をつくるところから、プログラミングと音の基礎知識、スタンダード MIDI と楽典の基礎、より発展的な楽典と音楽生成、GUI によるアプリケーションプログラミングへと続きます。版元は、音の物理的性質や楽典といった基礎知識も提供しつつ、ビープ音を鳴らすプログラムから MIDI ライブラリで楽器音を鳴らすプログラミング、簡単な GUI 作成までを指南すると案内しています。
波形を作ることと、MIDI で演奏を指示することの違い
音をプログラムで扱う方法には、大きく分けて 2 つの層があります。1 つは音そのものを作る層で、空気の振動を数値の列として計算し、その周波数が音の高さ、振幅が音の大きさになります。平均律では半音上がるごとに周波数がおよそ 1.06 倍になり、12 半音でちょうど 2 倍、つまり 1 オクターブ上になります。もう 1 つは演奏の指示を扱う層で、MIDI は音の波形ではなく、どの鍵盤をどの強さで押し、いつ離したかという情報を送る規格です。実際の音は、その指示を受け取った音源が鳴らします。本書は、第 2 章で C による電子音の生成を、第 3 章で MIDI による音楽生成を扱い、第 4 章で楽典と合わせた発展的な音楽プログラミングに進みます。
Windows で音楽プログラミングを始めたい人に
版元が想定する読者は、Windows コンピューターで音や音楽をプログラミングしてみたい人で、紹介文は本書を最初の 1 冊と位置づけています。開発環境は Visual Studio で、内容は 2019 年の刊行時点の Windows と Visual Studio を前提にしています。国立国会図書館の書誌では、件名はデスクトップミュージックで、文献と索引が付いています。
この本に興味がある方におすすめ
関連する本
関連記事
関連用語
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技
プログラミング
コンピューターに実行させる手順をプログラミング言語で記述し、動作を作り出す行為
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出 / ビルド順序の決定 / 影響範囲分析での活用法を解説
グラフデータベース
ノード (エンティティ) とエッジ (関係) でデータを表現し、複雑な関係性のクエリに特化したデータベース
グラフアルゴリズム
ノードとエッジで構成されるグラフ構造に対する探索 / 最短経路 / 接続性の分析アルゴリズム
ログ集約
分散システムの複数サービスから出力されるログを一元的に収集 / 検索 / 分析する仕組み