musicflower.util.remap_to_xyz
- musicflower.util.remap_to_xyz(amplitude, phase, inner_radius=0.2, inverted=False, spherical=True, rescale_func=<ufunc 'sqrt'>, axis=-1, theta_r=False, scape2D=False)[source]
Map a triangular map with amplitudes and phases to 3D space. The axis representing the triangular map must have a size of k=n(n+1)/2 for some integer n to represent a valid triangular map (n is the resolution of the triangular map). The default is axis=-1, that is, the last axis.
- Parameters:
amplitude (
ndarray
) – array with amplitudes in the interval [0, 1]phase (
ndarray
) – array with phases in radiansinner_radius (
float
) – an offset to avoid collapsing points at the centerinverted (
bool
) – invert the radial dimensionspherical (
bool
) – use spherical coordinates to map to the upper half-sphere (zero amplitudes map to the zenith/top; amplitudes of one map to the horizontal plane); if False, cylindrical coordinates are used (the amplitude is used as the vertical dimension)rescale_func (
callable
) – function to rescale amplitudes; this should monotonically rescale the interval [0, 1]; the default uses np.sqrt, which distorts towards high amplitudes, i.e., it “opens up the top of the flower”.axis (
int
) – axis of the input arrays that represents the triangular maptheta_r – also return theta an r if spherical=True
scape2D – map to a conventional 2D scape plot in the x-y-plane instead
- Return type:
Union
[Tuple
[ndarray
,ndarray
,ndarray
],Tuple
[ndarray
,ndarray
,ndarray
,ndarray
,ndarray
]]- Returns:
x, y, z: 1D arrays of length k containing the Cartesian coordinates.