Spiral tunings: Difference between revisions
Jbcristian (talk | contribs) mNo edit summary |
Jbcristian (talk | contribs) added images and more info |
||
Line 17: | Line 17: | ||
An open-source, virtual playable spiral harp is accessible in https://kepleriandreams.github.io. | An open-source, virtual playable spiral harp is accessible in https://kepleriandreams.github.io. | ||
[[File:Virtual spiral harps configurations.png|thumb|Different spiral polygonal chains.]] | |||
======Construction:====== | |||
Each tuning can be defined by the amount of sides and the margin. Starting from the center, and considering the segment's length as string length, the first being the shortest becomes the highest pitch, so in this case the tunings are defined inversely. Since they are non-periodic, the system sizes are infinite; it will depend on how many notes one wants to calculate. Most harp settings cover the audible range with fewer than 300 strings. The spiral can be of any size, a diameter, or scale property, while changing the length of the segments won't alter their relative lengths. We assign a frequency to the first segment, e.g., 8000 Hz, and the rest of the notes are calculated from it. | |||
'''Algorithm for Calculating Segment Length:''' | |||
Given: | |||
- Radius <math>r = (z \times n) \times (m^n)</math> where 'z' is the constant size increment, 'm' is margin, and 'n' is the point's index, starting at 0. | |||
- Angle <math>a = \frac{2 \pi}{s}</math> where 's' is the amount of sides of the spiral | |||
The x-coordinate and y-coordinate of a point on the spiral are calculated using: | |||
<math>x = r \times \cos(a)</math> | |||
<math>y = r \times \sin(a)</math> | |||
The distance between two consecutive points in Cartesian coordinates (x1,y1) and (x2,y2) is calculated using the Euclidean distance formula: | |||
<math>d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}</math> | |||
[[File:Unwinded spirals next to each other, from 0 sides to 2 sides, in step 0.004, 20 first strings .png|thumb|Unwound spirals next to each other, from 0 sides to 2 sides, in step 0.004, 20 first strings, colored by equave 2:1]] | [[File:Unwinded spirals next to each other, from 0 sides to 2 sides, in step 0.004, 20 first strings .png|thumb|Unwound spirals next to each other, from 0 sides to 2 sides, in step 0.004, 20 first strings, colored by equave 2:1]] | ||
[[File:Unwinded spirals next to each other, from 0 sides to 10 sides, in step 0.02, 20 first strings .png|thumb|Unwound spirals next to each other, from 0 sides to 10 sides, in step 0.02, 20 first strings ]] | [[File:Unwinded spirals next to each other, from 0 sides to 10 sides, in step 0.02, 20 first strings .png|thumb|Unwound spirals next to each other, from 0 sides to 10 sides, in step 0.02, 20 first strings ]] | ||
[[File:Unwound spirals next to each other, from 0 sides to 20 sides, in step 0.01, 20 first strings .png|thumb|Unwound spirals next to each other, from 0 sides to 20 sides, in step 0.01, 20 first strings ]] | [[File:Unwound spirals next to each other, from 0 sides to 20 sides, in step 0.01, 20 first strings .png|thumb|Unwound spirals next to each other, from 0 sides to 20 sides, in step 0.01, 20 first strings ]] | ||