First post, by Tertz
Yamaha YMF7x4 Guide
~~~~~~~~~~~~~~~
Contents
Introduction
1. General
1.1. Basic features of YMF7x4 cards
1.2. The comparison with other cards
1.3. Drivers
1.4. Games
1.5. The work with DOS applications
1.6. DOSBox FM paththrough mode
1.7. The quality of sounding
1.8. Several sound cards in the computer
1.9. Fake "Yamahas"
1.10. MIDI
1.11. Music composing
2. Problems and solutions
2.1. Hardware which can cause problems
2.2. Crackling
2.3. Changeable noise
2.4. The system hangs with the BSOD
2.5. Resampling 44.1 -> 48 kHz
2.6. Windows after reboot reverts volume level
2.7. System freezing during MIDI playback on resourceful task
2.8. No or reversed sound from CD
2.9. No sound from LineIn on YMF744
2.10. There are no 3D Wide regulators
2.11. MIDI track's position change makes the music a mess
2.12. After long computer work MIDI playing gets crackling
2.13. More free RAM is wanted
2.14. Sound from CD does not output on 4 channels
2.15. There is no 4-channel output in Win2000
2.16. Can not record to MiniDisc from card's S/PDIF
3. Do it Yourself
3.1. Hardware volume control
3.2. The digital connection of YMF to SB Live
3.3. The connection of CD to S/PDIF on XWave 6000
3.4. Connecting 4 speakers to YMF724
4. Other
4.1. The table of PnP codes of YMF chips
Links
Introduction
YMF7x4 (724, 744, 754) are the only common PCI sound cards with genuine OPL3 chip. With SB-Link they have good SB Pro compatibility in DOS. When have good codec they produce not bad sound via LineOut. Also these cards have 3D sound in Win9x games and good GM.
This makes YMF7x4 cards interesting for DOS-Win9x retrogaming machines as universal solution. Also with these cards you may get quality SB Pro sounding on machines without ISA slots, like Pentium 4. And real OPL3 FM with DOSBox paththrough in WinXP on later CPUs.
This guide is initially based on "YMF7x4 FAQ" by Andrey Revvo *, site by N.Shima & Vivas *, Vogons and other sources.
For some links you'll need to use archive.org
1. General
1.1. Basic features of YMF7x4 cards
YMF7x4 - PCI sound cards, based on Yamaha chips YMF724, 740, 744, 754. YMF cards, made by brands, are of close class to SB Live and Vortex.
Features:
- genuine OPL3 FM, SB Pro compatibility
- 3D sound by Sensaura: DS3D, A3D 1.0, EAX 1.0 and 2.0
- 73 DirectSound streams
- 8 (724) or 16 (744/754) DS3D streams
- DirectMusic hardware acceleration: less latency, DLS-1 up to 8 MB
- 64 voices hardware assisted wavetable MIDI (GM/GS/XG)
- 4-channel sound (YMF744, YMF754), only in Win9x
- full duplex and simultaneous audio streams
- S/PDIF for output and input
- MPU-401 UART MIDI
- AC97 standard
System requirements:
CPU: Pentium 133 for XG MIDI, Pentium II 300 for Sondius-XG
RAM: 16 MB
OS: Win95/98/ME/NT4/2000/XP, DOS, Linux, FreeBSD, BeOS
Without MIDI effects and 3D sound YMF may to work on 486.
YMF chips *:
YMF724 (DS-1) - 2-channel sound, 64 MIDI voices, 73 audio streams, S/PDIF Out
YMF740 (DS-1L) - cut-down version of 724: 32 MIDI voices, 41 audio streams, no S/PDIF Out. This chip is used in system boards and notebooks.
YMF744 (DS-1S) - 4-channel sound + S/PDIF In + all features of 724
YMF754 (DS-1E) - same as 744 + S/PDIF In recording without resampling 44.1->48 kHz (needs driver 2013 or later)
YMF724 has variants: _,B,C,D,E,F. They differ by support of real DOS. For example, D-DMA on 440BX is supported only on E, F of 724. Also beware, that some cards have no SB-Link connector.
FM part of YMF7x4 is based on YMF289 core *, not on YMF262 as original OPL3 of SB Pro.
Cards: Genius Sound Maker 128XG (YMF724), Yamaha Waveforce 192 XG (YMF724), AOpen AW724, AW744 Pro, Labway XWave 5000 (YMF724), 6000 (YMF754), Guillemot Maxi Sound Fortissimo (YMF744), Minton SP401F (YMF724), Hoontech SoundTrack Digital XG (YMF754/YMF744), etc. ** Also there are many noname cards.
YMF drivers include 8-bit 2 MB MIDI bank. By Power YMF utility * you may replace the standard bank to better 16-bit 4 MB bank.
The codec (small square 7x7 mm chip) used on a card is important for sound quality, as noise level and AFC linearity strongly depend on it. The recommended codecs are STAC9708, STAC9704 by SigmaTel. Also look on the quantity of condensers, throttles, etc. parts which should be soldered, as some cards have low quality.
Codecs:
SigmaTel:
STAC9700 - all features of 9704, but is noisier
STAC9701(03) - no additional features
STAC9704(07) - 3D-Wide (3DW), LNLVL_OUT, low noise
STAC9708(11) - 3DW, SDAC, LNLVL_OUT/SDAC_OUT, the most quality codec with low noise (used on SB Live 5.1, MX300)
STAC9721(23) - 3DW, LNLVL_OUT (used on SB Live Platinum)
STAC9744(45) - 3DW, LNLVL_OUT
Texas Instruments:
TLC320AD91 - no additional features, crackling on recording with some system boards
Avance Logic:
ALC100 - 3DW, LNLVL_OUT
AKM (Asahi Kasei Microsystems):
AK4542 - 3DW, LNLVL_OUT
AK4543 - 3DW, LNLVL_OUT
AK4540 - no additional features
Yamaha:
YMF730
YMF752 - 3DW, LNLVL_OUT
Winbond:
W83971d - 3DW
ESS:
ES1918S - low noise
Wolfson Microelectronics:
WM9701A
There is the list of which codecs are used in different YMF cards *. Take into account, that different samples of the same manufacturer's model may to have different codecs.
YMF7x4 chips have no regulators of timbre or equalizer. But some codecs support this and card's vendor drivers may allow this. For example, Genius Sound Maker 128XG has it on its 1040 drivers.
1.2. The comparison with other cards
General: The main advantage of YMF7x4 among PCI cards is real OPL3. The cards without hardware FM have it much worse. SB-Link allows higher games compatibility in real DOS than other ways. Cards made by serious brands have better sound quality than many models of YMF cards. Newer drivers of other cards might to have better later games support.
OPL3-SAx (like YMF719) - much more limited 3D sound, higher CPU load, no hardware assisted MIDI, sound quality is a little worse, issues with MPEG 48 kHz. Unlike 7x4, they often have wavetable header and WSS compatibility.
SB Live - better EAX support, lesser CPU load, 32 hardware DS3D streams. Higher games compatibility because of drivers and hence less issues with 3D sound. Some people, using headphones, like Sensaura's 3D effects more.
Diamond MX300 (Vortex 2) - better A3D support, has A3D 2.0. 16 hardware DS3D streams. Worse MIDI.
Turtle Beach Santa Cruz (CS4630) - another Sensaura based, but with Virtual Ear in the bundle and ZoomFX. Has equalizer. 32 hardware DS3D streams.
Philips Seismic Edge PSC705 (SAA7785) - QSound based, 5.1 speakers, 64 hardware DS3D streams, lesser CPU load, better reverb effects, strong HQ amplifier.
M-audio Revolution 7.1 (ENVY24) - Sensaura based. 24 bit/96 kHz, good SRC to 44.1, higher sound quality. Higher CPU load with 3D sound in games. No A3D 1.0 support.
1.3. Drivers
Win9x use VxD drivers. WDM are for Win98/2000/XP.
Features in different OS:
Win9x/ME: all with VxD;
WinNT4/2000: no 3D sound, no DOS support, no Sondius-XG, no 4-channel sound;
WinXP with native driver: basic play/record, FM, no XG MIDI.
Versions of VxD drivers for YMF724/740 are 10xx, for YMF744/754 are 20xx. WDM drivers for Win98/2000 are: 21xx for YMF724, 22xx for all 724/744/754. WinNT4 drivers are ver1xxx-ver7xxx, where version is written by 2 last digits (so ver1235 is newer than ver6018). XP drivers are 5xxx.
Meaningful changes:
VxD:
1023: MMX is not required still
1031: less CPU load
1040: support of EAX 2.0 and DirectX 7, the best version for quality MIDI
2008: the last version for quality MIDI on YMF744/754
2013: support of DirectX 7
2020: the last version
WDM:
2220: support for Win2000
2228: support of DirectX 8
2230: the last with wavetable bank * which work in XP
5244: support for WinXP, no FM
5245: was corrected the bug with Win2000, the last version.
VxD drivers 2013 and above have some crackling in MIDI, while 2004, 2005, 2008 sound good. Driver 2020 has no 4-channel mode, but this may be fixed by registry editing or by Power YMF. All WDM drivers tend to have issues with MIDI: chorus plays with a noise, crackling caused by overload, levels of effects are too high.
For games it's better to use the latest VxD drivers, - 2018 and later. For VxD driver you may install Sensaura update *, - solves issues in later games like Thief 2.
As there is no support for A3D 2 and A3D 3 in drivers, you may use A3D->DS3D wrapper * to get partial functionality: positioning, occlusions, geometrical reverb, but not wavetracing and early reflections. Probably better support, including early reflections, is possible by wrapper A3D-Live **.
DOS driver 3.16 has dsdma TSR (needs emm386) which is useful on systems without D-DMA and SB-Link. YMF754 is supported since 3.12. DOS drivers use dos4gw which is not in their package.
For Win7 32-bit there is unofficially adopted XP driver 5244 *. It has no FM support. For 64-bit OS there is no driver still.
For Linux there are 4Front drivers (commercial and trial) * and freeware ALSA drivers *. Since 2.2.16 the drivers are inside the distribution. In kernel 2.4.3-20mdk (Mandrake 8.0) there is alsa 0.5.10. FreeBSD 4.1-RELEASE has the driver for Yamaha DS-1, - you only need to add into config: device pcm.
1.4. Games
YMF7x4 are HSP with 3D sound by Sensaura algorithms. They support APIs: DirectSound3D, A3D 1, EAX 1, EAX 2.
CPU load with 3D sound is close to Vortex 1 on Pentium II: 5-10% with DS3D **, while EAX and A3D should rise it. On-board YMF chips like 740 may give higher CPU load.
Using of newest drivers is important for games, though sometimes older version works better. If 3D sound effects work wrongly or do not at all, or there is strange noise then try to update sound driver and install recent game's patches. Also you may try to disable secondary buffer: Control Panel > Yamaha DS-XG > DirectSound > Secondary Buffer - Off (for this some cards may need YMF7x4Utilities *).
To play Quake 3 and other A3D 2 games allow A3D->DS3D wrappers.
If you get low fps with using MIDI then disable Sondius-XG.
Some games may work especially good on Sensaura cards. The example is Unreal, Unreal Tournament.
Note: 3D sound positioning is better perceived when the sound is familiar and when it moves (or you are moving).
Games with 3D sound support: ***
1.5. The work with DOS applications
For real DOS support these cards use 3 DMA modes: PC/PCI (SB-Link) *, Distributed DMA (D-DMA), TSR; and 3 IRQ modes (ISA, S-IRQ, INTA#). The most compatible is PC/PCI + S-IRQ, which available only with SB-Link cable connected to the system board. If the card's package had no SB-Link cable *, it can be made (2 socket IDC flat ribbon cable, 6 pins 2x3 2.54mm pitch) or bought separately; five wires of it are connected. TSR (dsdma utility) may be tried if other methods fail.
Intel chipsets 430TX and 440 support D-DMA and PC/PCI *. Chipsets i8xx for Pentium 3 and IV (note: ASRock made 865G boards like 775I65G R3.0 which supported early Core 2) support PC/PCI by their southbridge, but not D-DMA *. On i8xx, without SB-Link and TSR, in real DOS you may get only FM. Some MBs have no SB-Link connector, but have solder pads for it, and if you'll solder there SB-Link header sometimes it may to work (at least, up to i845 MBs).
TSR allows to get complete sound in DOS on systems without SB-Link and D-DMA *. There is a report about working by TSR in real DOS even on 486 computer with SiS496 chipset.
As DOS driver has no official support for Pentium IV chipsets, its setupds.exe may don't recognise correctly possible card's settings. To solve this, setupds.exe may be patched *.
Some of non-Intel chipsets with D-DMA support: ALi Aladdin4/5; SiS 5/6/7 *; AMD AMD-750 *, AMD-760 MPX; VIA Apollo VP2/VP3/MVP3, Pro-Plus/133, P4X266/333/400 *, KT133/266. There is no guarantee PCM will work by D-DMA with something not listed in DOS driver's manual, even if the chipset supports it.
The example of settings for real DOS.
In BIOS:
IRQ5 = Legacy ISA
DMA1 = Legacy ISA
PCI Slot # (with the card) = IRQ11
Check there is no other devices using same resources. To find resources conflicts in DOS may to help HWiNFO *. Perhaps, will be necessary to change/remove in BIOS assignment of IRQs and addresses of some ports, controllers, USB, VGA, etc. * During boot in the PCI devices table should be shown "Multimedia device - IRQ11" and IRQ5 has to be free. It needs to configure setupds and DOS boot *:
In SETUPDS (v3.10):
LEGACY AUDIO: Enable
SB PORT ADDRESS: 220h
DMA CHANNEL: 1
FM PORT ADDRESS: 388h
MPU PORT ADDRESS: 330h
IRQ MODE: INTA#
INTA# IRQ: 5
DMA MODE: D-DMA
D-DMA BASE: 8000h
In AUTOEXEC.BAT:
SET BLASTER=A220 I5 D1 T4 P330
setupds.exe /s
Some PCI slots (closer to CPU) allow changing of INTA# IRQ in SETUPDS on 440BX, while other slots in the same MB - not. To set SB IRQ with a slot of 2nd type you may by assigning IRQ to the slot in BIOS.
Besides real DOS, the applications may also work in Win9x DOS box with resources' settings of "Yamaha DS-XG Legacy Sound System" in Device Manager **. In this mode you may also use GM MIDI with 4 MB bank from Power YMF which is close to DB50XG. SB Pro support in DOS box works also on i8xx boards. The problem is a lot of games do not work in Win9x DOS box *.
The example of settings for Win9x DOS box. The SB resources are needed to be set in BIOS as "Legacy/ISA", and then assigned to Legacy Device:
CODEC: 220h IRQ5 DMA1
FM: 388h
MPU401: 330h IRQ5
If a game does not work by D-DMA, then try Win9x DOS box. Games which work by D-DMA on 440BX: Tie Fighter, Dune (run install.exe and make autoconfig befor the game's start). Din't work: Dune 2, Flashback. Games which did not work by SB-Link: Descent 2, Larry I VGA, Police Quest 3, Quarantine, Space Quest I VGA. Also some games have own sound problems: Dyna Blaster (needs <486 50 MHz), Dune 2 (may not to play the music with less free base RAM).
Doom needs dos32a * to work by SB-Link. Run "dos32a.exe doom.exe". Same for Descent.
Examples of potentially problematic games to test different methods of DOS support: Commander Keen 6, Descent 1 & 2, Doom, Duke Nukem 3D, Dune, Epic Pinball, Jill of the Jungle, Larry I VGA, Laura Bow: Dagger of Amon Ra, Mega Man X, Police Quest 3, Prince of Persia, Quarantine, Sam & Max - Hit The Road, Space Quest I VGA, Wing Commander 2.
Besides PCI->ISA problems, it needs to mention that YMF7xx chips are not 100% compatible with SB Pro PCM as some ADPCM functions are not implemented (see SB Pro section in YMF datasheets), what causes issues in some games like Duke Nukem II. There is also a possibility that FM will play sometimes noticably differenly (lower pitch), than on SB Pro **, because YMF use 289 OPL, but not original 262.
1.6. DOSBox FM paththrough mode
DOSBox's OPL emulation is not perfect, so hardware OPL is better. You need DOSBox port with OPL paththrough mode. It's good to have official OS drivers with legacy support and system board with native 5V PCI *, as in other case the working is not guaranteed. It was reported YMF754 plays PCM on Z77 board (ASRock Z77M) and other YMF worked on H67 board. Probably it's common for YMF754/YMF744 (and maybe 724) cards to work on MBs with chipsets up to Intel 9 series. Also YMF cards may work at 40 MHz PCI.
Win9x VxD drivers have FM and Yamaha's MIDI bank (which may be improved by Power YMF). Windows XP has native DS1 driver 5.2.3662.0 * with FM support, but without Yamaha's MIDI bank. While reference Yamaha's XP driver 5.12.01.5244 has no FM support (on some WDM drivers and systems legacy support with FM may be enabled by Power YMF). When using native XP driver you may to have Yamaha's MIDI by S-YXG50 *, and also check S-YXG50 VSTi *.
After installing YMF driver, it needs to set "Yamaha PCI FM Synthesizer" as default MIDI in Control Panel > Multimedia > Audio. Then set FM volume level by MIDI volume regulator. Now FM may be checked by playing a midi file, for example from c:\windows\media\
ykhwong's DOSBox port * has paththrough mode. Its versions are: 2014-01-27 - the last with good DOS games compatibility, 2013-11-17 - the last checked by the author to work in Win2000, 2011-05-25 - the last working in Win98. As the alternative there is DOSBox Megabuild6 *.
DOSBox on modern computers typically allows the emulation performance of Pentium II, what is fast enough for almost any DOS game. It may be used even on old computers, as Pentium 3 1000 MHz gives level at 386DX 40 MHz (~9000 cycles) up to 486 50 MHz, depending on a game and emulator's settings. Generally, it's better to set cycles not higher than 19000 for games released befor 1994.
As example was used ykhwong's port 2014-01-27, YMF754, P35 chipset, WinXP SP3 with driver 5.2.3662.0
dosbox.conf with params:
rate=48000
blocksize=256 (for action games)
sbtype=sb16
oplmode=hardware
oplrate=49716
In Win7 blocksize less than 1024 may cause garbage instead of music, but to overcome this is possibly with setting rate=11025. If you'll want to use OPL emulation, it's important to set oplrate=49716 as other values give wrong pitch of some FM instruments (the example is Commander Keen 6, level 6; W+F10 for changing levels). As YMF works maximum with rate=48000 and there is no card natively supporting 49716 Hz, then will be SRC from 49716 what makes FM emulation sounding a little "noisy".
Note: If you'll use hardware OPL with CRT monitor in 640x400 (this mode may be added to video driver's settings) and DOSBox params: output=surface, fullresolution=original, scaler=normal2x, - then your experience with 320x200 games will be close to real PC. In case refresh rate in fullscreen differs from which you want, then preliminarily set desktop's refresh to that value.
Now it needs to initialize legacy FM. Every time after computer reboots, when you want to use DOSBox with hardware OPL, you need to run diagnose.exe (a single time) inside DOSBox, to press "enter" in this utility until you'll get to window with "Synthesized music" (you may test it there). diagnose.exe exists in "Sound Blaster 16/SB32/AWE32 Basic Disk for DOS" package *: unzip contents, run DOSBox and do the installation inside to get diagnose.exe. Without this FM initialization some games (Commander Keen 4, for a example) will have no FM sound.
ykhwong's port allows to change between hardware OPL and emulation on the fly in its menu. This makes easier to notice the difference. Main FM emulation problem seems to be with percussions. For the comparison you need to set same volumes and provide ingame silence in the moment of FM device changing, so a music was initialized from the beginning. For checking the authenticity of FM emulation try, for example, Dyna Blaster.
For some games you may prefer MT32 * or GM music. The etalon device for GM is SC-55 and you may use the close bank * or Sound Canvas VA (in Win7 and later) **, or to experiment with other MIDI banks **. Edit dosbox.conf with:
mididevice=synth
midiconfig=bankname.sf2
You may also install S-YXG50 or other MIDI device driver (VirtualMIDISynth, BASSMIDI) with some bank, and associate it with DOSBox. It needs to type inside DOSBox: mixer /listmidi, and to check what is the number near the needed MIDI device. Then set:
mididevice=default
midiconfig=<device number>
Alternative PCI cards with hardware FM are with chips: C-Media CMI8738 **, ForteMedia FM801, Avance Logic ALS4000, ALS300, ESS ES1938, ES1946, ES1969, Crystal CS4281, S3 Sonic Vibes, Aztech AZT3328, Riptide RACC010 *. The problems of OPL-compatibles, compared to genuine OPL, is commonly worse * sounding as composing was done for differing OPL chip. Sometimes their instruments sound annoyingly wrongly and it's hard to predict where you'll get it. Probably DOSBox's FM emulation is more correct than by these OPL-like chipsets.
1.7. The quality of sounding
Noise and AFC linearity depends on quality of: codec, built-in amplifier, scheme of amplifier's connection (nominals of components and difference from typical circuit), power supply of the card (analog rails). Typically the sound of YMF cards through built-in amplifier is bad. To get less noise and more linear AFC, it's recommended to switch the card to LineOut mode (by jumpers). In this case an external amplifier is required.
Win9x has SRC settings in Control Panel > Multimedia > Advanced > Performance.
You may also improve SRC by enabling unofficial "HiFi mode" in registry:
HKEY_LOCAL_MACHINE\Software\YAMAHA\YMF724\
ShowWaveOut = 01
ShowMisc = 01 (not necessary for this situation)
Then go to Control Panel > Yamaha Audio Config and set checkbox "HiFi Mode" in the new appeared "Wave Out" tab (sets SRC=1). This makes MIDI cymbals to sound cleaner and more softly, 22050 Hz and 44100 Hz files to sound better. In SpectraLab SRC distortion looks as many harmonicas with level up to -10 dB at frequencies over 10 kHz. The negative side is that setting "HiFi" may cause slowing down in games with 3D sound and issues with other PCI devices. Native Microsoft drivers have no this possibility.
1.8. Several sound cards in the computer
If you have several sound cards, you may connect YMF's LineOut to LineIn of other card or vice versa. Then it's possible to regulate the volume of sound from the connected card in Volume Control > Play section by LineIn regulator there. Also the sound of 2 cards may be mixed by Y-cable.
To get the sound from YMF you need to configure it as default device in Control Panel > Multimedia > Audio.
If after rebooting you get a hissing which can be removed by changing LineIn regulator position, then try to set this regulator a little below max level.
It's better to leave legacy SB support only for one of your cards or to disable other cards in the Device Manager on time when you are using Win9x DOS box. Legacy functions of YMF may be switched off in Device Manager or by writing to the registry: HKEY_LOCAL_MACHINE\Software\YAMAHA\Driver\YMF724\LoadLegacy=00
1.9. Fake "Yamahas"
Unfortunately, there are many Chinese fake "Yamahas". You can buy a fake card on which will be written YMF724, 740, 744 or even 754. These fake cards are generally based on chips: C-Media CMI8738, ForteMedia FM801, Crystal CS4281. Chips are relabeled - original text is grinded away and replaced. Drivers of fake cards similarly contain software XG MIDI synthesizer Yamaha S-YXG. INF file of drivers installation is edited.
The ways to identify a fake card:
1) Visually:
- Index: G, H, I, etc. which does not exist (like YMF724G, YMF724G-V). "YMF724G" is the most popular.
- Some fake cards have no codec, unlike real cards.
- The chip's size, though it's possible to mistake. CMI8738: 20x15 mm, FM801: 15x15 mm. YMF sizes (mm): 724/740 - 20x20, 744/754 - 14x14 or 20x14.
2) By VendorID which is shown by BIOS during computer boot: Yamaha - 1073, C-Media - 13F6, ForteMedia - 1319.
3) By drivers:
- Installation shows "YMF724G Audio", "YMF740F-V Audio" or other non-existent model.
- You can't install drivers for YMF cards (note: VxD drivers for 724 are 10xx, for 744/745 are 20xx).
- With fake cards it's always installed software XG MIDI synthesizer. It allows to set the quantity of MIDI voices, for example, more than 64.
- In the Control Panel of real cards there should be a red-blue icon labeled "Yamaha DS-** Audio Config". It opens a window with these tabs: About/Synthesizer/MIC Echo/../DirectSound3D (with Sensaura) etc.
1.10. MIDI
YMF7x4 support MIDI standards: GM, GS, XG.
XG is the standard of MIDI files, offered by Yamaha and supported by some vendors (Korg). XG MIDI has rich choice of effects and instruments, what allows using standard bank to play modern music: ambient, house, techno, trance, etc. The other advantage of XG is that parameters of sounding like effects are written inside of MIDI file.
YMF7x4 support XG-Level 1 with some additions (Sondius-XG, part of DB50XG extensions). The majority of XG MIDIs is written for DB50XG and SW60XG. Generally, they sound correctly on YMF7x4, if there are no QS300 instruments and some effects. The examples of good XG MIDI players are: vanBasco's MIDI Player * and Microsoft Media Player (it's part of IE5 and Win98SE).
The standard bank of YMF drivers is 8-bit with mostly 22 kHz samples for constructing instruments by placement tables. Many instruments use the same samples, only with different effects, and some are the sum of 2 waves (AWM2). The standard 2 MB bank contains 676 instruments and special effects, and also 21 sets of percussions. From them 480 instruments, 9 percussions and 2 sets of special effects are available in XG mode, while others are used for GM and GS. The quality of standard bank is in the middle between software XG synthesizer S-YXG100 and board DB50XG *. DB50XG is better on percussions, especially. Compared to softsynth, YMF7x4 sound more softly and clearly, without stuttering and delays. Power YMF allows to use better 16-bit 4 MB bank with the quality close to DB50XG. In WinXP may be used software synthesizer S-YXG50.
There is also software synthesizer S-VA (Software Virtual Acoustic) on the basis of Sondius-XG, allowing to play up to 256 monophonic voices of string and wind instruments (128 instruments in total). S-VA is compatible with VL synthesizer of tone generator MU120, but allows to play only one VL instrument at the same time.
YMF have hardware assisted XG MIDI, so effects are mostly done in software. The CPU load during XG MIDI playing on Pentium II 300 is <5%, and <40% with Sondius-XG.
YMF7x4 support effects: changing of attack times, rising, fading, frequency pitch of phases for attack and fading, resonance cutoff filter, modulation via phase, frequency, amplitude, octave changing, fine tuning of tone of separate notes. Overlay of 3 effects at the same time: chorus (8 types), reverb (8 types), variation (36 types). Effect "variation" includes: delays, stereo panning, celeste, karaoke, flanger, rotary speaker, symphonic, tremolo, phaser, distortion, overdrive, equalization, changing of panning, wah-wah, echo, additional variants of reverb and chorus. Each effect's type has manipulators, allowing to receive different sounding of the same effect *.
Hardware opportunities of YMF chips: read/write in system memory with buffers processing, 256 buffers mixing per cycle; dynamic processing of buffers with modification parameters: amplitude, pitch of frequency (Doppler's effect), cutoff frequency; mixing of the main stereo buffer and 3 effects buffers (reverb, chorus, variation) for every voice (744/754 also have 2 mono rear channels); pitch change, LPF, gain; playing of 8/16-bit sample's region in the loop mode; synchronization of buffers with CPU; play buffers with loop in the WAV format. These operations are made independently from CPU in RAM by pieces-buffers (slots).
1.11. Music composing
To compose XG MIDI music you need programs:
1) Sequencer.
- Yamaha XG-Works - supports all XG cards. However it's not good, as does not work with MIDI keyboard emulators and has a peculiar style of working with tracks.
- Cakewalk Pro Audio 8.x/Sonar (not 9.x as it has problems with Sondius-XG) - good choice, as it interfaces with XG-Edit most completely and works with virtual MIDI keyboard driver.
- Any other...
2) XG editor.
- XG-Edit - the most complete XG editor
- XG-Gold - not bad
3) Multi-MIDI driver which allows to work simultaneously with one MIDI port from several applications and emulate serial/parallel connections.
- Multi-Midi Driver - commercial, older versions 1.x work perfectly in the unregistered mode
- Hoobis Loop-back Driver - has the problem of swallowing MIDI stream sometimes
4) Power YMF - allows to use better 16-bit 4 MB banks: Extended (for improved XG sounding) and Dance (with modern percussions). Also it has banks editor by which you may create own MIDI banks from WAV files.
Generally you may be sure that MIDI files created by you, will sound correctly on other XG compatible card on the level of timbre and effects. However, if you used fine-tuned or boundary values of effects' manipulators, - there may to be the difference. For example, in some MIDI files you may meet creaking caused by going out of bits grid limits at high Q-factor levels of resonant filters.
For normal work you need to set the card to XG mode. It is possible by sending SYSEX message "XG RESET". In Cakewalk you should open SYSEX Editor and to load SYSEX bank xg-reset.syx, which you may find in the application's folder.
XG Edit stores all changes of all controllers and internal XG parameters, and has functions to write them into SYSEX file which can be attached to MIDI file, so these parameters be played. If something changes, then these MIDI messages go to the synthesizer during the sounding in real time. Therefore usually XG editors are connected with sequencer simultaneously.
If you want to use Sondius-XG, it's in banks 10480-10487 and 12528-12535 (proxy). Numbers of instruments are different, for example: 57, 63, 72, 75. Instruments have to be on the 1st track (1 part). There are definitions of Sondius-XG instruments for Cakewalk Sonar *
Techno-percussions may be created by taking Analog Drum Kit and then changing the octave to lower one by XG-Edit. Then increase the average phase until the needed sound is gotten. For normal sound of cymbals you'll need to use the second Drum Kit, i.e. there will be 2 tracks with percussions in your MIDI. There are other methods also, for example, simultaneous sounding of several instruments. Power YMF has special Dance bank with "modern" percussions.
To record MIDI to WAV without noise you may by methods: 1) connect your card's S/PDIF Out to other card's S/PDIF In, 2) YMF754 allows to connect own S/PDIF Out to own S/PDIF In.
There are examples of MIDIs created on YMF7x4 card * and articles about composing with YMF7x4 *.
2. Problems and solutions
2.1. Hardware which can cause problems
- S3 Trio64V+ : YMF can refuse to record from LineIn and microphone because of strong impulse interference, - drops of signal for a short time. Similar happens on some codecs (tlc320ad91).
In Win95 may be tried to edit system.ini:
[display]
Busthrottle=1
In Win98 and newer add to the registry:
HKLM\Config\xxxx\Display\Settings\
"BusThrottle" "On"
"CommandDMA" "On"
Note: The exact registry key depends on the video driver. Look at HKLM\Software\S3V\Display\ Also if you are using utilities for software CPU cooling (like CPU Idle), then it's better to disable them.
- Nvidia Geforce 2 MX : On "Start" button appears a garbage. May be solved by removing MIDI bank of Yamaha (c:\windows\system\ydsxg.dat), what disables MIDI. For Vanta, TNT2 M64 use Detonator 2.x or 3.x (2.31, 3.68, for example), as later may cause the issue. Also try newer sound card driver.
- Some system boards : Hang-up of a computer is possible during sound playback. Try to set in BIOS section "Chipset Features Setup", the parameter "16 bit I/O Recovery Time" to 2, 3 or 4. The card should start working, but some games may to work slower.
- Epox 8KTA3 *: The YMF card may not work with VxD driver and be unstable with WDM.
2.2. Crackling
Crackling may be caused by too high maximum volume. Sometimes it's because driver allows to set the volume too high, when it was taken from another card. With VxD drivers you may fix it in registry: HKEY_LOCAL_MACHINE\Software\YAMAHA\Driver\YMF724\VolumeMax, or by YMF7x4Utilities.
If you hear crackling during MIDI play, the other reason can be VxD drivers higher than 2008 or WDM drivers. If MIDI also gives stuttering, then computer's performance is below the needed and you may to turn off some of effects (variation, reverb, chorus) and Sondius-XG.
2.3. Changeable noise
Identify the type of noise: 1) when you move the mouse and HDD works, or 2) when the screen updates. Having the 1st type, try to mute unused inputs on the card like CD-Audio. Also the problem may to be in low quality of the card or bad power subsystem of the system board.
With 2nd type may to be issues with video or sound card drivers, so you need to update them. Also you may try to change PCI slot, especially if it has shared IRQ.
2.4. The system hangs with the BSOD
It needs to check are the resources used by the card, shared with other device. Lavalys Everest 2.20 * may be helpful. Besides changing devices resources, may be useful to change PCI slot's IRQ in BIOS or change the card's slot. And it's better not to place the card in slave PCI slots.
Also may be tried to update video driver, chipset drivers. Some non-Intel chipsets have IRQ routing patches.
If nothing helps, then try to remove all PCI cards except sound and video and to switch off any unnecessary devices and controllers in BIOS. Windows re-installation also helps sometimes.
If BSOD happens during MIDI play try to disable Sondius-XG in "Yamaha DS-XG Config" and the methods above.
2.5. Resampling 44.1 -> 48 kHz
The hardware resampling from 44.1 to 48 kHz may to work incorrectly on YMF7x4. If to listen 44.1 kHz music, then some sounds are vanished. But if you'll convert the music to 48 kHz by software like Cool Edit, then it plays normally.
May be helpful to set "HiFi mode".
Solution for Winamp: use SSRC plugin and WaveOut. Also in Winamp it's better to use in_mp3.dll from its version 2.22. Check other players like Foobar2000 *.
2.6. Windows after reboot reverts volume level
Use drivers 1036 and later.
If does not help, try FaderController *
2.7. System freezing during MIDI playback on resourceful task
System may to freeze if during MIDI playback some resourceful task is run, like Photoshop or compilator's compiling. This happens on some configurations. It does not depend on the size of RAM and sound driver's version (for 1029 - 1040, at least).
Helps BIOS update sometimes. For example, on Soltek SL-62B with bios M1 - freezed, with M4 - no.
2.8. No or reversed sound from CD
Check is the cable connected correctly.
Sometimes signal wires L,R,G are messed up. Channels left and right can be reversed. Cards by A-Trend and Hoontech were reported having this. In this case connect L,R wires in reversed way.
2.9. No sound from LineIn on YMF744
Cards like AOpen AW744S can't have LineIn and rear speakers output active at the same time. Set the card to 2-channel mode in "Yamaha DS-XG Config".
2.10. There are no 3D Wide regulators
Not all codec have this possibility. Anyway, it is better do not use this as the sound becomes worse. Instead place the speakers farther.
2.11. MIDI track's position change makes the music a mess
When listening XG MIDI, after manual changing of track's position, the instruments may be confused and the music to become a mess.
Some players, when the track's position is manually changed, send MIDI command "reset" which switches YMF7x4 to GM mode. For example, early Winamp versions had this problem.
Anyway, it's not recommended to change the position during MIDI play as important MIDI commands may be passed and the sounding will become wrong.
2.12. After long computer work MIDI playing gets crackling
If MIDI is playing with Sondius-XG and a computer works for long, then on systems with <128 MB RAM may appear whistle and crackling. Rebooting helps. Also may to help a regular RAM defragmentation by Plaxoft FreeMem * utility, which increases the size of free RAM and the performance of applications.
2.13. More free RAM is wanted
There is 2 MB MIDI bank in RAM + tables, what takes in total 4 MB. You may disable MIDI and thus to free the memory. For this it's needed to rename or delete MIDI bank and then reboot. The bank for VxD drivers in Win9x: c:\windows\system\ydsxg.dat, for WDM in WinXP: c:\windows\system32\drivers\dsxgwave.tbl. Power YMF may be also used for this.
2.14. Sound from CD does not output on 4 channels
Pseudo 4-channel sound (front and rear are same) is possible on YMF744 from CD.
In Winamp may be used plugins: Digital CD Player *, Winamp CD Reader Plugin *.
2.15. There is no 4-channel output in Win2000
The 4-channel sound may work for AC3 in Novac DVD/MP3 Jet-Audio. Use drivers 2234 or newer, driver for S/PDIF may also has the influence. 4-channel output using 3D sound API is not supported there.
2.16. Can not record to MiniDisc from card's S/PDIF
If you can not record the digital signal to MD from card's S/PDIF then check the card's volume settings. Also MD may need 44.1 kHz on input, while YMF724/YMF744 digital output is 48 kHz only. The solution is MD recorder with built-in resampler or external resampler.
3. Do it Yourself
3.1. Hardware volume control
Vol Up ___ 1k ___ 1k To chip YMF754
+--/ ----|___|---+-----|___|-----o 53(56)
| _|_
| --- 1000pF
| _|_
| ___ 1k ___ 1k To chip YMF754
+--/ ----|___|---+-----|___|-----o 52(55)
|Vol Down _|_
| --- 1000pF
_|_ _|_
Outputs for YMF754 are specified for the square body chip, while for rectangular chip's variant are specified in brackets.
For YMF724F-V and YMF740C-V: Up - 8, Down - 7. For 724 these outputs go also to the place of the not installed 8-legged chip (Up - 2, Down - 3).
For XWave 6000: to the left of PCI-connector there is the place for not soldered 8-legged chip. Near to it there is text "U2", and in the center of that place for the not soldered chip is the text "93C46". It's better to solder to platforms of this not soldered chip: Up - 2, Down - 3.
3.2. The digital connection of YMF to SB Live
It's possible to connect YMF to SB Live with the digital connector. In this case, the quality of YMF card's codec and analog rail will be not important.
For the connection of YMF to SB Live you will need to solder only a single wire to S/PDIF signal wire (this signal goes from the chip to the matching transformer) and to let the digital signal go via TTL level to SB Live's comb *.
Then in "Yamaha DS-XG Config" to set S/PDIF "ON (Digital Sources Only)". Thus the codec and analog inputs of the card will be switched off and their noises will go away. The volume levels of MIDI Out and Wave Out should be set to maximum. In SB Live's drivers you need to switch on S/PDIF In.
3.3. The connection of CD to S/PDIF on XWave 6000
Put the card by components on top, so that speakers, mic, etc connectors were on the left side. You'll receive such picture:
_
|o|4 SPDIF Out
|o|3 GND (ground)
|o|2 GND (ground)
|o|1 SPDIF In
|_|
Connect CD-ROM cable to the pins 1 and 2.
3.4. Connecting 4 speakers to YMF724
This opportunity depends on the codec. For example, STAC9708 has full-fledged 4 channels to get real 4-channel surround. But we simply have an additional independent stereo-channel to which someone should send the signal. YMF724 drivers do not support this and there is no software for this.
For those who want 4 channels anyway, there is simple method - to connect to LNLVL_OUT. Then download from codec's vendor site the software for managing the additional output. All codecs (including STAC9708 when its surround-channel is not used) send to LNLVL_OUT the same signal as to main output, i.e. rear speakers will sound same as front ones. The only difference is the possibility of independent volume level for rear channels (STAC9708 also allows 3D-Wide). So this method does not give real surround.
4. Other
4.1. The table of PnP codes of YMF chips
Device/VendorID/DeviceID/SubSystemVendorID/SubSystemID
YMF724 / 0x1073 / 0x0004 / 0x1073 / 0x0004
YMF724B / 0x1073 / 0x0004 / 0x1073 / 0x0004
YMF724C / 0x1073 / 0x0004 / 0x1073 / 0x0004
YMF724D / 0x1073 / 0x0004 / 0x1073 / 0x0004
YMF724E / 0x1073 / 0x0004 / 0x1073 / 0x0004
YMF724F / 0x1073 / 0x000D / 0x1073 / 0x000D
YMF740 / 0x1073 / 0x000A / 0x1073 / 0x0004
YMF740B / 0x1073 / 0x000A / 0x1073 / 0x000A
YMF740C / 0x1073 / 0x000C / 0x1073 / 0x000C
YMF744 / 0x1073 / 0x0010 / 0x1073 / 0x0010
YMF754 / 0x1073 / 0x0012 / 0x1073 / 0x0012
Links
Info:
http://www.ixbt.ru - about YMF7x4 and composing (do the search "7x4|YMF724|YMF744|YMF754")
http://YMF724.da.ru
http://www.scargo.com/nshim/ymf/
http://www.yamaha-xg.com - about XG
http://www.xgfactory.com
http://www.3dss.com/drivers/utils.html
http://www.sigmatel.com/datasheets/9704spec.pdf - STAC9704
Forums:
http://groups.yahoo.com/neo/groups/YamahaYMF7x4/info
forum.ixbt.com/?id=12&name=yamaha+724%2 ... %20|%207x4
http://www.3dsoundsurge.com/cgi-bin/wwwthread … =&Board=Forum20
Drivers:
http://www.yamaha.co.jp/english/product/lsi/download/
ftp://ftp.dyu.edu.tw/pub/Hardware/stuff/multimedia/Yamaha/, /pub/Hardware/vendor/Labway
http://ftp.isu.edu.tw/pub/Hardware/multimedia/Yamaha/
http://www.3dsoundsurge.com/drivers/Yamaha/
http://www.scargo.com/nshim/ymf/drivers.html - drivers of different vendors
http://www.fcc.gov/oet/fccid/ - to identify the vendor of your card by FCC ID code
http://cdgenp01.csd.toshiba.com/content/suppo … s/t820snd95.exe - drivers VxD 2020 from Toshiba
http://xwave6000.narod.ru - WinXP 5244 driver with the fix for 4-channels and legacy
http://www.driverguide.com/driver/company/Yam … udio/index.html - press "See all" there
Utils:
http://www.sigmatel.com/downloads/st3dlnlv.zip - tool for surround sound management
http://www.sigmatel.com/downloads/st3d.zip - another tool for surround
http://www.upsystems.com.ua/support/alexmina/ … url=ac97mix.zip - AC97 Mixer, for codecs management
XG MIDI:
http://www.midi.ru/new_xg.php
http://www.xgcentral.com
http://xg.midi.ru
http://xgmidi.wtal.de
OPL:
ftp://ftp.modland.com/pub/modules/Ad%20Lib/
http://www.adlibtracker.net
http://adplug.sourceforge.net
http://fm801.kewl.org
The questions which still need to be answered:
- Does YMF FM works in XP on MBs with chipsets Intel 6x-9x? The last officially supporting XP was 7x chipset. The native XP driver 5.2.3662.0 maybe used.
- A method to make FM working in Win7.