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
630
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.5k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
How STYLIGHT went responsive
nonsquared
100
5.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building Adaptive Systems
keathley
43
2.7k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Balancing Empowerment & Direction
lara
1
510
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The World Runs on Bad Software
bkeepers
PRO
70
11k
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. 旋律の規則性と数理的解析 音楽にはリズムや音の配置に数学的規則性が存在します。 対位法においては、音の流れや跳躍の制約を数理的に モデル化することが重要です。 音程の跳躍や進行のパターンを数学的に制限することで、 滑らかな旋律を構築できます。
まとめ • 音楽理論は創造性と論理性 を同時に高める • 対位法 → アルゴリズム思考のヒント
• 音楽理論の楽しさ