防衛省サイバーコンテスト2024 writeup

防衛省サイバーコンテスト2024に参加してみました。 prtimes.jp 防衛省とサイバーコンテストという組み合わせに興味を惹かれ、CTF自体初めてでしたが、勢いで参加してしまいました。 CTFにおいてはWriteupを公開することがあるらしく、参加要領でも「開催時…

ソフトウェアシンセサイザーを実装するときにピッチを揺らす方法

結論 周波数 が時刻変化するとき、sin関数等に与えるべき位相は「 ×周波数」の積算値(積分)であって、 ではない。 実装例(C#) 時刻における周波数は、 時刻における位相は、 よって、 const int SAMPLE_PER_SEC = 48000; float length = 2; float sample…

CPU実験の記録(byコンパイラ係)

はじめに この記事は、僕のコンパイラ係としての活動をまとめたものです。 CPU実験の紹介 東京大学理学部情報科学科の3年後期(Aセメスター)には、「プロセッサ・コンパイラ実験」(通称「CPU実験」)という名物授業があります。この実験はざっくりという…

再帰関数をwhileループに変換する

動機 GLSLで vec3 shade(...){ if(material == glass){ R * shade(reflection) + (1-R) * shade(refraction); } } みたいなシェーダを書こうとして、「あれ、GLSLで再帰関数って書けないの……?」となり、whileで書く方法を調べていたところ、上のような関数…

Schemeの式をEmacsで簡単に実行する

この記事は、ISer Advent Calendar 2021の21日目の記事です。前日の記事はfushiguさんによる「噂のCPU実験」でした。翌日の記事は81uemanさんによる「ノルムで遊ぼ」です。 この記事では、SchemeやOCamlの式を簡単に実行するためのEmacsの設定を書き残してお…