Add Auxiliary code to the YMF262 To properly tune the IC
This commit is contained in:
parent
72f9200d09
commit
93f1496dc7
|
|
@ -0,0 +1,19 @@
|
||||||
|
//
|
||||||
|
// Created by gustavohenriquesantossouzademir on 24/03/2026.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef YMF262DEVBOARDSOFTWARE_FNUMBERBLOCK_H
|
||||||
|
#define YMF262DEVBOARDSOFTWARE_FNUMBERBLOCK_H
|
||||||
|
|
||||||
|
enum FNumberBlock {
|
||||||
|
BLOCK1,
|
||||||
|
BLOCK2,
|
||||||
|
BLOCK3,
|
||||||
|
BLOCK4,
|
||||||
|
BLOCK5,
|
||||||
|
BLOCK6,
|
||||||
|
BLOCK7,
|
||||||
|
BLOCK8,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //YMF262DEVBOARDSOFTWARE_FNUMBERBLOCK_H
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
//
|
||||||
|
// Created by gustavohenriquesantossouzademir on 24/03/2026.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef YMF262DEVBOARDSOFTWARE_NOTES_H
|
||||||
|
#define YMF262DEVBOARDSOFTWARE_NOTES_H
|
||||||
|
enum Notes {
|
||||||
|
NoteDo,
|
||||||
|
NoteDoSharp,
|
||||||
|
NoteRe,
|
||||||
|
NoteReSharp,
|
||||||
|
Note,Mi,
|
||||||
|
NoteFa,
|
||||||
|
NoteFaSharp,
|
||||||
|
NoteSol,
|
||||||
|
NoteSolSharp,
|
||||||
|
NoteLa,
|
||||||
|
NoteLaSharp,
|
||||||
|
NoteSi
|
||||||
|
};
|
||||||
|
#endif //YMF262DEVBOARDSOFTWARE_NOTES_H
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
//
|
||||||
|
// Created by gustavohenriquesantossouzademir on 24/03/2026.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef YMF262DEVBOARDSOFTWARE_OPL3TUNNING_H
|
||||||
|
#define YMF262DEVBOARDSOFTWARE_OPL3TUNNING_H
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
template <uint32_t TCLOCK = 14'318'180UL>
|
||||||
|
class OPL3Tunning {
|
||||||
|
private:
|
||||||
|
/*!
|
||||||
|
* @brief Precomputed power-of-two values for each F-Number block octave.
|
||||||
|
*
|
||||||
|
* Each entry corresponds to \f$ 2^{(octave - 1)} \f$, used in the F-Number formula:
|
||||||
|
* \f[
|
||||||
|
* F_{number} = \frac{f \cdot 2^{19}}{f_s \cdot 2^{octave - 1}}
|
||||||
|
* \f]
|
||||||
|
* Index 0 corresponds to Octave1, index 7 to Octave8.
|
||||||
|
*/
|
||||||
|
static constexpr uint16_t POW2_BLOCKMINUS1[8] = {
|
||||||
|
1,2,4,8,16,32,64,128
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Precomputed number for the \f$ 2^{19} \f$
|
||||||
|
* This number is precomputed due the STM32 not having a POW function and this number is used
|
||||||
|
* on the formula:
|
||||||
|
* \f[
|
||||||
|
* F_{number} = \frac{f \cdot 2^{19}}{f_s \cdot 2^{octave - 1}}
|
||||||
|
* \f]
|
||||||
|
* so it was added as static constexpr
|
||||||
|
*/
|
||||||
|
static constexpr uint32_t POW2_19 = 524288;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief Calculated Sampling Frequency
|
||||||
|
*
|
||||||
|
* This Number is dependent on the Clock and is also used on the formula to calculate the F-Number
|
||||||
|
* * \f[
|
||||||
|
* f_s = \frac{T_{CLOCK}}{288}
|
||||||
|
* \f]
|
||||||
|
*/
|
||||||
|
static constexpr uint32_t FS = TCLOCK / 288;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //YMF262DEVBOARDSOFTWARE_OPL3TUNNING_H
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
//
|
||||||
|
// Created by gustavohenriquesantossouzademir on 24/03/2026.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "../include/YMF262/OPL3Tunning.h"
|
||||||
Loading…
Reference in New Issue