Coder Social home page Coder Social logo

sunyatasattva / rainbow-spectre Goto Github PK

View Code? Open in Web Editor NEW
2.0 4.0 0.0 4.27 MB

Hear the sound of intervals

Home Page: https://suonoterapia.org/sound-of-color

License: MIT License

HTML 0.81% CSS 0.16% JavaScript 2.28% TypeScript 85.99% SCSS 10.76%
sounds music cognition

rainbow-spectre's People

Contributors

adamxtokyo avatar dependabot[bot] avatar sunyatasattva avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

rainbow-spectre's Issues

Create color picker component

  • Color wheel should be a correct representation of a hue wheel.
  • It should have two handles that can be dragged around.
  • When handles are dragged it updates selected colors.

Make it prettier

  • Options box. Perhaps it should be hidden in a collapsible button. Options should look neat, and perhaps have little icon. Especially the “Reference frequency” should have the dotted circle icon, so as to make it clearer that the dotted circle in the UI represents that
  • Add some sort of textual documentation

Option: show closest n-limit interval

The user should be allowed to select a limit (perhaps not arbitrary, but from a reasonable list).

When the user has selected a limit, while moving the handle, the infobox will show the closest n-limit interval instead of the actual interval.

Difference between that and the actual interval should be shown on a cent slider at the bottom of the infobox (see how suonoterapia.org/overtones does it).

UX Questions

  • What happens in this case to #19?

    • Should the user not be allowed to edit the interval when in “snap-mode”?
    • Or should the user input be converted to the closest n-limit interval?
    • Or should the user only be allowed to select an interval out of the available n-limit intervals?
  • When a high limit is selected, how should the UI prioritize the interval shown? Just on proximity? Or should intervals have different “attractors”? See #21

Show 12-TET somehow

Perhaps highlight the regions of the color wheel associated with 12-TET locations with some “clock-like” markers.

What about also adding an option to the n-limit interval snapping option (see #24) to snap to 12-TET?

Additional options

  • Allow yin yang to be played separately (shortcut ALT+click and option)

Add meta info

  • Add credits
  • Add share buttons
  • Add link to Overtone Spiral
  • Favicon

Create yin yang component

  • It is a circle divided in two smaller swirly parts.
  • Each part can receive a color as a prop.
  • Circle can be clicked to play the interval

Interval attractors

Even if you made a 360-TET system, which would be obvious, you want the result to focus on the most prominent harmonic functions. And the limit should be considered. Should it be results from 5-limit just intonation? I believe you want supervising more refined, like 11-limit or even higher.

Maybe allow the user to select which n-limit.

Some of them – like 3:2– are stronger and should have stronger attraction (a wider internal of degrees where this value is shown)

Create options component

  • Should allow to select a base frequency
  • Autoplay on mouseup (default: on → discoverability)
  • Lock ratio

Create infobox component

  • Should show the ratio between the two selected sounds
  • Should show the equivalent musical interval

i18n

  • No hardcoded text
  • i18n support
  • Help text should be able to include HTML (so that links can be embedded there)

Add info

Info should be accessible from the top right. A button should open a sidebar showing some explanation.

Sidebar should default to open on first visit.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.