null
prime drone
скетч · №001 · простые числа как ноты
инструментSonic Pi
длительность08:34
дата2025.09
алгоритмвысота = номер простого (MIDI), длительность и амплитуда ∝ 1/log(p)
описаниекаждое простое число — нота. высота определяется самим числом, длительность и амплитуда обратно пропорциональны логарифму. чем дальше — тем тише и быстрее.
# prime drone · null · 2025.09

define :is_prime do |n|
  return false if n < 2
  (2..Math.sqrt(n).to_i).none? { |i| n % i == 0 }
end

live_loop :primes do
  primes = (2..64).select { |n| is_prime.(n) }
  primes.each do |p|
    play p + 36, amp: 1.0/Math.log(p), release: 4.0/p
    sleep 1.0/Math.log(p)
  end
end

Идея скетча в том, чтобы услышать распределение простых чисел напрямую. Чем дальше идём по натуральному ряду, тем реже встречаются простые — и в том же темпе уменьшается громкость и длительность каждой ноты. Это создаёт ощущение «затухания», которое математически точно соответствует теореме о распределении простых чисел.

Высота берётся как сам номер простого числа плюс смещение в 36 полутонов — иначе первые ноты ушли бы за пределы слышимого диапазона. Несмотря на простоту правила, в результате слышен паттерн с пропусками, длинными паузами и неожиданными возвращениями.