Skip to main content

Assigns light and sound frequencies to prime numbers and mixes them using pygame.

Project description

#pygame virtual keyboard which assigns a prime number, light frequency, and sound frequency #to keys. it mixes the light frequencies to corresponding RGB colors, mixes #the pure tones to sounds, and multiplies the primes to get unique numbers.

This code assigns a color and sound to a range of positive integers in a natural way.

Input: n

  1. Factor n into a product of primes n = p_1^s_1 * ... * p_r ^s_r

  2. Map every prime to a wavelength into the visible range which is roughly 380nm (800Thz, violet) - 700nm (400Thz, red). Use f_red*(f_violet/f_red)^((i-1)/(num_keys-1)) in analogy to the keyboard mapping of sound frequencies 440Hz*2^((i-49)/12).

  3. For example, the number 197 is p_45. Its light frequency is 492 THz -> 608nm wavelength, so red. 563 is p_103, so 649 THz -> 462nm, so blue. Combining them we get the number 110911 which has a bright purple color.

  4. To convert this spectrum to the appropriate color of light we use the CIE color matching functions (https://www.cs.rit.edu/~ncs/color/t_spectr.html). This can be implemented in almost any language. (https://mathematica.stackexchange.com/questions/57389/convert-spectral-distribution-to-rgb-color/57457#57457).

Output: An RBG color specification.

A similar method can be used for sound, in which case we just scale into the audible range of 20Hz - 20kHz. We then need to mix the tones to get a sound using a synthesizer package, in this case tones.

Importantly, spectra of colors and sounds combine additively. Combining natural numbers via multiplication is straightforward.

This could be used to make a *keyboard whose keys are appropriately colored and labeled by prime numbers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synesthesiaer-0.1.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synesthesiaer-0.1.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file synesthesiaer-0.1.0.tar.gz.

File metadata

  • Download URL: synesthesiaer-0.1.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.9

File hashes

Hashes for synesthesiaer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4107a20d486e5e82e0fa6e51385d32e1aff134a5d4312f2fa26f7d1dfe97c398
MD5 030400ea1c71a75e2c6fbde61199ce86
BLAKE2b-256 52e54c3775d4b7ec8128595c83730224829778eee7f6528377b3c3b010685628

See more details on using hashes here.

File details

Details for the file synesthesiaer-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: synesthesiaer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.9

File hashes

Hashes for synesthesiaer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b3e6d52f5c53b86fc103e93f11cf0ff7548d0a8d184bc748bfdaae5fdbe3969
MD5 9922f897968bb44e948be2efc11e2175
BLAKE2b-256 9a573aef478a8fa33526c28f2d4b59639a607c14a3f5385a84ffe5be078a2c6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page