SampleRate:
  description: A sample rate expressed in samples per second (S/s)
  properties:
    rate:
      type: integer

Bandwidth:
  description: A bandwidth expressed in Hertz (Hz)
  properties:
    bandwidth:
      type: integer

Frequency:
  description: A frequency expressed in Hertz (Hz)
  properties:
    frequency:
      type: integer

FrequencyBand:
  description: A band of frequencies given its boundaries in Hertz (Hz)
  properties:
    name:
      type: string
    lowerBound:
      type: integer
    higherBound:
      type: integer

Gain:
  description: A gain expressed in centi-Bels (tenths of dB)
  properties:
    gainCB:
      type: integer

Range:
  description: An arbitrary range of integer values
  properties:
    min:
      type: integer
    max:
      type: integer
    step:
      type: integer
    scale:
      type: number
      format: float

RangeFloat:
  description: An arbitrary range of floating point values
  properties:
    min:
      type: number
      format: float
    max:
      type: number
      format: float
    step:
      type: number
      format: float

FrequencyRange:
  description: A frequency range with 64 bit support for min and max
  properties:
    min:
      type: integer
      format: int64
    max:
      type: integer
      format: int64
    step:
      type: integer
    scale:
      type: number
      format: float

NamedEnum:
  description: Enumeration with name for values
  properties:
    name:
      type: string
    value:
      type: integer

Complex:
  description: A complex number
  properties:
    real:
      type: number
      format: float
    imag:
      type: number
      format: float
