YM(4)

πŸ“¦ version 11.0, in nixpkgs unstable

πŸ’– ym(4) β€” Yamaha OPL3-SA2 and OPL3-SA3 audio device driver πŸ’–

okay bestie, welcome to the ym(4) manual page. The manual name is right there near the top, so you already know we're in cute little kernel-driver territory. Let's get into it. ✨

🌸 NAME 🌸

ym β€” Yamaha OPL3-SA2 and OPL3-SA3 audio device driver

πŸŽ€ SYNOPSIS πŸŽ€

ym*    at acpi?
ym*    at isapnp?
ym*    at pnpbios? index ?
audio* at audiobus?
mpu*   at ym?
opl*   at ym?

πŸ¦‹ DESCRIPTION πŸ¦‹

The ym driver provides support for Yamaha YMF711 (OPL3-SA2) and YMF715x (OPL3-SA3) sound devices. iconic hardware behavior, no cap. πŸ’…

The OPL3-SAx device has a WSS compatible full-duplex 16bit CODEC, an OPL3 FM synthesizer, and an MPU401 compatible MIDI I/O port interface. Additionally, OPL3-SA3 has a built-in 3D Enhanced equalizer. Obsessed with the extra little feature, honestly. 🎧

The joystick interface is handled by the joy(4) driver.

πŸŽ›οΈ MIXER DEVICE πŸŽ›οΈ

The mixer device of the ym driver can be accessed by the mixerctl(1) command. The layout is shown below.

                   dac ------------------------<-----  -----------------
       midi(OPL3/ZV)->-+----------------------------+->|inputs.midi    |
       cd      ->------+-*--------------------------+->|inputs.cd      |
       line    ->----*-+-+--------------------------+->|inputs.line    |
       speaker ->----+-+-+--------------------------+->|inputs.speaker |
       mic     ->--*-+-+-+--------------------------+->|inputs.mic     |
                   v v v v      monitor.monitor     |  |               |
               ---------------  -------  |  ------- |  |               |
               |record.record|->| A/D |---->| D/A |-*->|inputs.dac     |analog
               |             |  |conv.|-- ->|conv.|    |               |output
               ---------------  ------- | | -------    | outputs.master|-->
                                  wave  v | wave       | equalization.*|
                                recording playback     -----------------

Note that the inputs.dac is twice as sensitive as other inputs volume variables. highkey important. πŸ‘€

The hardware volume changes the outputs.master value.

If an external input source is unmuted by setting the corresponding inputs.*.mute variable to off, the device is never put in global power down or power save mode. This is because if the device is in global power down or power save mode, the output is automatically muted.

All the external input sources (CD playback, line input, speaker, and MIC) are muted by default. They're on their quiet-girl era at boot. πŸŽ€

Heads up: the equalization.* variables don't exist on OPL3-SA2. The equalization.treble and equalization.bass are enhancement only, and any values below the center position (128) don't take any effect.

⚑ POWER MANAGEMENT ⚑

The ym driver is capable of power management on the OPL3-SAx devices. The following modes can be selected by setting the power.save variable of mixerctl(1) to powerdown, powersave, and nosave respectively.

Global power-down mode

When a subpart of the device is unused, the part is power-down after a timeout period (specified by the power.save.timeout variable of mixerctl(1) in seconds). When all the subparts of the device are unused, and all the external input sources are muted, the driver puts the device in Global Power Down mode.

On the global power down mode, the power consumption is minimized (10ΞΌA (SA3) or 200ΞΌA (SA2) typ.), but the click noise on power up/down the device is rather loud.

This mode should not be used with headphones or hi-fi audio systems, or your ears or the systems may be damaged. bestie I am so serious, protect the ears. 😭

Power save mode

When a subpart of the device is unused, the part is powered-down after a timeout period (specified by the power.save.timeout variable of mixerctl(1) in seconds). When all the subparts of the device are unused, and all the external input sources are muted, the driver puts the device in Power Save mode.

In power save mode, the power consumption is reduced (5mA typ.). The click noise on power up/down of the device is very small, but this operation requires muting/unmuting the device, which make some noise. In order to reduce the noise, setting the master volume at the small value is effective.

No power-save mode

Once the device is powered-up, it remains on after the use of the device. Once a subpart of the device is powered-up, it shall not be power-down. This mode minimizes click noises on power switching, but maximizes power consumption (30-100mA).

On suspending, the device is put into power-save state.

🌈 SEE ALSO 🌈

⭐ HISTORY ⭐

The ym device driver appeared in NetBSD 1.4.

πŸ’€ BUGS πŸ’€

  • Although the parameters of the device are saved and restored on apm(4) suspend/resume, the DMA state is not restored. That is, if the system suspends during playback, this is not continued after suspend/resume cycle.
  • The joystick port is not under power management. If a joy(4) device is configured, the device will never be put in global power down or power save mode.
  • The external devices, such as Zoomed Video port, OPL4-ML/2, modem, and CD-ROM are not supported.

made with πŸ’– in Debian Β· August 23, 2020 Β· YM(4) β€” that's the footer energy, bestie, periodt πŸ’…

πŸ“¦ where this page comes from