Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Zenncafe 1st LT
Search
Yusuke Kikuta
February 28, 2025
0
680
Zenncafe 1st LT
Yusuke Kikuta
February 28, 2025
Tweet
Share
More Decks by Yusuke Kikuta
See All by Yusuke Kikuta
ReactTokyo 3/21 LT
yusukekikuta0509
1
1.7k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
66k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
RailsConf 2023
tenderlove
30
1.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
The Pragmatic Product Professional
lauravandoore
36
7k
A Tale of Four Properties
chriscoyier
162
23k
Designing for Performance
lara
610
69k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
A designer walks into a library…
pauljervisheath
210
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Agile that works and the tools we love
rasmusluckow
331
21k
Transcript
Music Theory vs Counterpoint in Algorithms Yusuke Kikuta
はじめに 名前: Yusuke Kikuta (菊田佑輔) 年齢: 19 好きな音楽家: チャイコフスキー
好きなフレームワーク: React, Next.js 職業: フリーランスエンジニア / Web3 project CEO 各種SNS GitHub: https://github.com/yusukekikuta0509 Zenn: https://zenn.dev/yusukekikuta X: https://x.com/yusuke_05092005
この記事でLTを行うことにした背景 • 音楽理論のおかげでプログラミングスキルを伸ばせた • 音楽理論は日常のMusic Lifeをより豊かにするツール • 意外にもあるプログラミングとの親和性に迫りたい。
• 僕にしかできないLTだから
導入 音楽とプログラミング、一見無関係に見えるが…? 音楽理論の考え方 →複雑な要素が絡まる音楽を音という最小単位で考えて 楽曲を紐解くことによる深い理解、それに伴う演奏技術の向上を目的としている 根本的な考え方はプログラミングと大差のない論理的思考にあります。
30秒でサクッと触れる。音楽理論の基礎 主に3つの要素が大切になってきます。 • 音程: 完全5度, 長3度など • 調性: 長調(明るい),
短調(暗い) • 和声: ハ長調, (構成音はド, ミ, ソ)
今回フォーカスする対位法とは • 対位法は英語で「Counterpoint」。 • 複数の旋律が同時に鳴っているのに、ちゃんと調和がとれているという技法です。 • バッハのフーガなどが有名で、一つのテーマを様々な声部が追いかけ合うように演奏しま
す。 • この「各声部の独立性」と「全体の調和」という両立が対位法のポイントです。
バッハ《平均律クラヴィーア曲集》第1番 プレリュード • ポイント :分散和音、機能和声、モティーフの繰り返し • 和音進行は I - ii7
- V7 - Iを一小節ごとに遷移
アルゴリズムと対位法の共通点 • 厳密なルール(音程、声部) ↔ 仕様通りの手順(アルゴリズム) • 再帰的構造(フーガ) ↔ 再帰関数
• モジュールの独立性(声部間) ↔ ソフトウェアのコンポーネント化
バッハの思考をPython擬似表現してみよう 1. 音程という概念を数字に 音楽理論では、音程は数学的な比率や間隔で表現されます。例えば、 • 完全五度(C-G):周波数比 3:2(数学的に安定した比率) • 完全八度(C-C):周波数比 2:1(最も安定した音程)
Pythonではこれを数値として扱い、 各音の相対的な距離を計算することができます。
バッハの思考をPython擬似表現してみよう 2.調和が取れているのかの判定 調和とは、異なる音の組み合わせがどのように 心地よく感じられるかを数学的に分析するもの。 調和の評価には、以下の要素が含まれます。 1. 音程の関係(完全協和、不完全協和、不協和) 2. 調性内での安定性
バッハの思考をPython擬似表現してみよう 3. メロディ生成のアルゴリズム 特にバロック音楽ではメロディはアイデアではなく 理論として位置しています。 対位法の基本ルールに従って 旋律を生成するプロセスを示します。
バッハの思考をPython擬似表現してみよう 4. 旋律の規則性と数理的解析 音楽にはリズムや音の配置に数学的規則性が存在します。 対位法においては、音の流れや跳躍の制約を数理的に モデル化することが重要です。 音程の跳躍や進行のパターンを数学的に制限することで、 滑らかな旋律を構築できます。
まとめ • 音楽理論は創造性と論理性 を同時に高める • 対位法 → アルゴリズム思考のヒント
• 音楽理論の楽しさ