Willy - [[MIDI ]] and OPL3 Soundcard adapter for CPC
It is the spiritual successor of the [[CPCISA]] project.
* [https://opl.wafflenet.com/ The OPL archive] [https://vgmrips.net/packs/chip/ym3812 VGMrips OPL2] [https://vgmrips.net/packs/chip/ymf262 VGMrips OPL3]
* [http://tgv777.free.fr/index.php/fichiers-midi/ MIDI Files] [https://musical-artifacts.com/artifacts?order=most_downloaded&q=midi+soundfont MIDI SoundFonts]
<br>
== Cost ==
The cost for a Willy soundcard adapter is 10€. This does not include any soundcard, you have to buy those separately.
<br>
*[https://www.serdashop.com/S2P S2P soundcard] aka Roland MT-32 or General MIDI Wavetable Synthesizer - based on SAM2695 (2014) - [[media:SAM2695.pdf|Datasheet]]
*[https://www.serdashop.com/OPL3LPT OPL3LPT soundcard] aka AdLib Gold or Sound Blaster 16 - based on OPL3 (1990) - [[Media:YMF262 199110.pdf|OPL3 datasheet]] [[Media:Yamaha yac512 datasheet.pdf|DAC datasheet]]
*[https://www.serdashop.com/OPL2LPT OPL2LPT soundcard] [https://github.com/zjuyzj/OPL2LPT-Replica OPL2LPT-Replica] aka AdLib or Sound Blaster - based on OPL2 (1985) - [[mediaMedia:Yamaha_YM3812.pdf|DatasheetOPL2 datasheet]] [https://c64.xentax.com/media/Yamaha_YM3812_Application_Manual.pdf OPL2 application manual] [[Media:YM3014 DAC datasheet.pdf|DAC datasheet]]
*[https://www.serdashop.com/CMSLPT CMSLPT soundcard] aka Creative Music System or Game Blaster - based on two SAA1099 (1984) - [[media:Philips_saa1099.pdf|Philips datasheet]] [[media:Mullard-saa-1099 datasheet.pdf|Mullard datasheet]]
*[https://www.serdashop.com/TNDLPT TNDLPT soundcard] aka PCjr or Tandy Sound - based on SN76489 (1979) - [[media:Texas_instruments_sn76489an.pdf|Datasheet]]
*[https://www.serdashop.com/CVX4 CVX4 soundcard] aka Covox Speech Thing - [https://scalibq.wordpress.com/2017/11/28/the-covox-years/ Technical analysis]
Note: Unlike Like the MIDI synth functionality of the [[AMSDAPRSF3]] OPL4 & YRW801 ROM solution, the S2P soundcard natively supports Wavetable MIDI without requiring . It doesn't require a software translation layer. The Willy with S2P soundcard recreates what it was like to connect an Amstrad CPC via a the [[Music MachineAMSDAP]] MIDI port to a Roland MT-32 synthesizer in 1987OPL4 & YRW801 ROM solution.
<br>
== I/O Ports ==
2 ports are used to control the [[MIDI ]] soundcard: &FEAC for data, and &FEAD for control and status.
3 ports are used to control the OPL3 soundcard: &FEBC and &FEBE are register select ports, and &FEBD is the data port.
When such a table is used for calculation of the exponential, the table is read at the position given by the 8 LSB's of the input. The value + 1024 (the hidden bit) is then the significand of the floating point output and the yet unused MSB's of the input are the exponent of the floating point output.
==== Log-sin Logsin table ====
x = 0..255, y = round(-log(sin((x+0.5)*pi/256/2))/log(2)*256)