The Mockingboard PSGs base their frequency on the Apple II Clock.
https://groups.google.com/g/comp.sys.apple2/c/lNSdI9GyBgc/m/8tAydOPUAwAJ
Based on this discussion I made a spreadsheet to calculate the correct values of the frequency tables and updated the ones used by the Music Construction Set player.
The MCS-CRICKET player set the VBL as an interrupt source using the
mouse firmware. This had several limitations, since it is only
available on the //c but also because depending if the //c is a PAL or
NTSC model it would produce a 50Hz or a 60Hz interrupt.
This version uses the ACIA as an interrupt source instead making it
also compatible with other Apple II models with a Super Serial Card.
The interrupts are caused by a Cricket alarm set to 60Hz making it
region independent as well.
Added a version of the interrupt player with all features like slot
independency and ECHO+ support in ACME compatible source format.
Jump table omitted since it is intended for direct use on demos and
such.
The Street Electronics ECHO+ sound card complemented the popular ECHO
speech card with two AY8913 providing similar sound capabilities to
those offered by the Mockingboard.
A very clever design allowed it to use only one 6522 instead of two but
also made it incompatible with the few titles to ever support
Mockingboard sound, making it even less popular.
This routine considers the slight differences between both making it
possible to play music on this rare card.
A slot number different that slot 4 can be used for the Mockingboard.
A separate simple player introduced to include the minimum amount of
code required for the routine to work.
This version expects the SLOT number in the zero page locations $CE,
$CF.
It is kept as a separate version, since it adds significant overhead
for each PSG register write.
The Cricket! uses a 4.9152MHz crystal which it uses to derive the
frequency of the PSGs resulting in 20% higher timer values. The note
values were extracted from the Appendix C of the Cricket! manual.
This version requires the Cricket! from Street Electronics to be
connected on the serial port 2 of the Apple //c. It uses the VBL
interrupt to replace the 60Hz Interrupts of the Mockingboard version so
it will run a bit slower on european models with 50Hz. This can be
partly compensated by selecting a lower TEMPO value, even tough it is
not the perfect solution yet.
* AY register buffer moved from $300 to $8400. Replaced fixed
references with an EQU.
* Song moved from $4000 to $8900. This allows to keep the whole player
routine including buffers and songs between $8400 and $9200.
* Changed zero page pointers to safer locations.
The Mockingboard Developer’s Toolkit included as interrupt based MCS
player that was obviously based on the original sources but included
important corrections. This included the PSG initialization and a
correction the frequency tables.
The code was moved to the address $8500 to match that implementation.