Skip to content

Multiple Points Object

Description

A Modalys object without physical properties which can nonetheless be represented in space and can vibrate in one dimension. A multiple-points object with N modes and P points is a core modal object defined by its N modal frequencies, N loss parameters ("bandwidth") and its "modal shapes" (NxP values). Any other modal object is actually equivalent to a multiple-points object: the points beings the result of the geometric discretization. The number of modes (N) and the number of points (P) don't need to be the same.

(make-object 'multiple-points ... )

Lisp Syntax and Default Values

A 'multiple-points object can be created using the following Lisp syntax:

(make-object 'multiple-points
             (freqs cf)
             (bws cb)
             (amps ca))
If N is the number of modes and P the number of points, freqs and bws are constant or dynamic controllers of dimension N, and amps (historically named that way...) represents the modal shapes: a list of N controllers, each of them of dimension P.

⚠️ available through mlys.lua!

    modalys.create_object{kind="multiple-points", name="myMultiplePoints1",
                          freqs=f, bws=b, shapes=a}
If N is the number of modes and P the number of points, freqs and bws are constant or dynamic controllers of dimension N, or just lua tables, and shapes represents the modal shapes: a table of N controllers, each of them of dimension P, or a NxP table.

Parameters

The 'multiple-points object does not have any physical properties, but takes three parameter lists to set its frequency data directly:

  • freqs: A list of frequencies (in Hz) to be assigned to the modes frequencies.
  • bws: A list of bandwidths (in Hz) to be assigned to the modes loss coefficients.
  • amps (or shapes): A array of amplitudes to be assigned to each point and mode.

Note: The three lists provided for the freq bw and amp parameters must have the same length. If different lengths are used, the lists are truncated to the length of the shortest list. A null list in any parameter will not be accepted and an error message will be displayed.

Multi-dimensional controllers may also be used in place of the lists to dynamically control the points's resonance parameters.

Discussion

As we learned in the "Introduction to the Physics of Modalys" section found in the introductory part of this documentation, modal representation is directly related to the spectral components, and thus also to the human perception, of the synthesized signal. 'single-point objects are virtual objects which don't have any physical property (as mass or density) but have a spatial representation as a single point which can vibrate in one dimension. 'single-point objects are defined by their spectral components (frequency of resonance, bandwidth, amplitude) and are therefore important for bringing in Modalys a convergence between signal models and physical models - as 'multiple-points behave exactly as any other Modalys physical object.

It is important for the user to know that the modal loss coefficient for this object is set directly using the given resonance bandwidth, thereby giving the modal representation a straightforward connection between the signal and physics domains. (Although bandwidths and modal loss coefficients are not exactly the same thing, they do function similarly where damping of resonances is concerned, so the bandwidth parameter can be used directly in this context.)

Accesses

A 'multiple-points object can be only accessed in the 'normal direction:

(make-access my-multiple-points my-controller 'normal)
As a 'multiple-points object does not have spatial information, my-controller should be a constant between 0 and 1. In fact, any position (even a time-varying) can be used, but it will not influence the object motion. The position controller is necessary for keeping compatibility with other Modalys objects.

Options

Tuning

Since a multiple-points object is defined directly from frequency, bandwidth and amplitude data, its pitch is set automatically based on the frequency data it is given. A multiple-point with a 5-partial harmonic spectrum and 3 points can therefore be created this way:

(make-object 'single-point
         (freqs '(220 440 660 880 1100))
         (bws '(8. 4. 2. 1. 0.5))
         (amps '(1. 0.866 0.707 0.612 0.5)) )