Merge branch 'master' into theUltimateFix

This commit is contained in:
tildearrow 2024-10-30 14:57:09 -05:00
commit 92a615eefc
35 changed files with 48 additions and 16 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

View file

@ -1,6 +1,6 @@
# AY-3-8910 instrument editor
the AY-3-8910 instrument editor consists of two tabs.
the AY-3-8910 instrument editor consists of three tabs.
## Sample
@ -10,6 +10,13 @@ the only differences are the lack of an "Use wavetable" option, and the presence
note that using samples on AY is CPU expensive!
## Timer Macros
- **Timer FX**: timer effect type sequence. 0- off, 1- tone PWM, 2- envelope distortion, 3- reserved
- **TFX Offset**: PWM speed sequence.
- **Timer Num and Den**: multiplier of a virtual square wave modulator (?)
- **PWM Boundary**: sets the range of a pulse width modulation
note that timer effects might not be supported by VGM players, and are rather CPU expensive!
## Macros
- **Volume**: volume sequence.

View file

@ -8,15 +8,20 @@ for sample settings, see [the Sample instrument editor](sample.md).
## MultiPCM
MultiPCM contains an ADSR envelope, not unlike Yamaha OPN/OPM envelpes, and simple LFO, also similiar to that found in OPN.
MultiPCM contains an ADSR envelope, not unlike Yamaha OPN/OPM envelopes, and simple LFO, also similiar to that found in OPN.
you may use this tab to set up MultiPCM-specific parameters:
- **AR**: sets attack rate.
- **D1R**: sets Decay 1 rate.
- **AR**: sets Attack Rate.
- **D1R**: sets Decay 1 Rate.
- **DL**: sets Decay Level (analogue of Sustain Level on OPN chips).
- **D2R**: sets Decay 2 rate (a.k.a. SR, Sustain Rate).
- **RR**: sets release rate.
- **LFO rate**: sets speed of LFO.
- **D2R**: sets Decay 2 Rate (a.k.a. SR, Sustain Rate).
- **RR**: sets Release Rate.
![MultiPCM envelope chart](MPCM-ADSRchart.png)
- **RC**: sets Rate Correction amount. similar to Key Scale or Rate Scale in FM parameters, this determines the degree to which the envelope execution speed increases according to the pitch.
- **LFO Rate**: sets speed of LFO.
- **PM Depth**: sets depth of LFO vibrato.
- **AM Depth**: sets depth of LFO tremolo/amplitude modulation.
- **Damp**: enforce quickly fading out the sample over 11 ms.

View file

@ -6,7 +6,7 @@ it is a 3-channel square/noise/envelope sound generator. the chip's powerful sou
the AY-3-8914 variant was used in Intellivision, which is pretty much an AY with 4 level envelope volume per channel and different register format.
Furnace is capable of doing software sample playback on AY-3-8910, where all 3 channels can play 4-bit PCM samples (at the cost of a very high CPU usage).
Furnace is capable of doing software sample playback on AY-3-8910, where all 3 channels can play 4-bit PCM samples (at the cost of a very high CPU usage) and utilize CPU timer effects, providing all kinds of modulation (PWM and envelope distortion) effects, again at the cost of a higher CPU usage. Songs utilizing timer effects may not sound as intented after VGM export.
## effects

View file

@ -9,7 +9,7 @@ these are 2 pulse wave channels (same as on GB), barely working PCM channel and
- range is `0` to `3 ` for pulses and `0` to `1` for noise.
## info
this chip uses the [Watara Supervision](../4-instrument/vatarasv.md) and [Generic Sample](../4-instrument/sample.md) instrument editors.
this chip uses the [Watara Supervision](../4-instrument/watarasv.md) and [Generic Sample](../4-instrument/sample.md) instrument editors.
### sample info

View file

@ -123,6 +123,12 @@ SSG-EG is short for "Software-controlled Sound Generator Envelope Generator"
a full guide to SSG-EG is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
## CSM
CSM, or "Composite Sine Mode", involves a timer matching the frequency of the note in the "CSM Timer" channel. each time it triggers, it generates key-on and key-off commands to reset the phase of all operators on channel 3 and force their envelopes to restart at the release point. this can be used to create vocal formants (speech synthesis!) or other complex effects. outside this chip's specific implementation, the technique is known as "oscillator sync".
working with CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU).
## chip config
the following options are available in the Chip Manager window:

View file

@ -123,6 +123,12 @@ SSG-EG is short for "Software-controlled Sound Generator Envelope Generator"
a full guide to SSG-EG is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
## CSM
CSM, or "Composite Sine Mode", involves a timer matching the frequency of the note in the "CSM Timer" channel. each time it triggers, it generates key-on and key-off commands to reset the phase of all operators on channel 3 and force their envelopes to restart at the release point. this can be used to create vocal formants (speech synthesis!) or other complex effects. outside this chip's specific implementation, the technique is known as "oscillator sync".
working with CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU).
## chip config
the following options are available in the Chip Manager window:

View file

@ -121,6 +121,12 @@ SSG-EG is short for "Software-controlled Sound Generator Envelope Generator"
a full guide to SSG-EG is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
## CSM
CSM, or "Composite Sine Mode", involves a timer matching the frequency of the note in the "CSM Timer" channel. each time it triggers, it generates key-on and key-off commands to reset the phase of all operators on channel 2 and force their envelopes to restart at the release point. this can be used to create vocal formants (speech synthesis!) or other complex effects. outside this chip's specific implementation, the technique is known as "oscillator sync".
working with CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU).
## chip config
the following options are available in the Chip Manager window:

View file

@ -120,6 +120,12 @@ SSG-EG is short for "Software-controlled Sound Generator Envelope Generator"
a full guide to SSG-EG is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU), this [detailed technical explanation](https://gendev.spritesmind.net/forum/viewtopic.php?t=386&start=106), and this [chart of tunings](https://docs.google.com/spreadsheets/d/1HGKQ08CnLGAjA1U0StJFldod3FkQ3uq86rYy1VBIuZc/).
## CSM
CSM, or "Composite Sine Mode", involves a timer matching the frequency of the note in the "CSM Timer" channel. each time it triggers, it generates key-on and key-off commands to reset the phase of all operators on channel 3 and force their envelopes to restart at the release point. this can be used to create vocal formants (speech synthesis!) or other complex effects. outside this chip's specific implementation, the technique is known as "oscillator sync".
working with CSM is beyond the scope of this documentation. for more information, see this [brief SSG-EG and CSM video tutorial](https://www.youtube.com/watch?v=IKOR0TUlnWU).
## chip config
the following options are available in the Chip Manager window:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 71 KiB

View file

@ -108,9 +108,8 @@ void DivEngine::loadPZI(SafeReader& reader, std::vector<DivSample*>& ret, String
for(int i = 0; i < PZI_BANK_SIZE; i++)
{
if (headers[i].start_pointer < MAX_SANITY_CAP && headers[i].sample_length < MAX_SANITY_CAP &&
headers[i].loop_start < MAX_SANITY_CAP && headers[i].loop_end < MAX_SANITY_CAP &&
headers[i].start_pointer > 0 && headers[i].sample_length > 0)
if (headers[i].start_pointer < MAX_SANITY_CAP && headers[i].sample_length < MAX_SANITY_CAP &&
headers[i].sample_length > 0)
{
DivSample* s = new DivSample;
@ -152,4 +151,4 @@ void DivEngine::loadPZI(SafeReader& reader, std::vector<DivSample*>& ret, String
lastError=_("premature end of file");
logE("premature end of file");
}
}
}

View file

@ -92,7 +92,6 @@ const char* aboutLine[]={
"AmigaX",
"AquaDoesStuff",
"AstralBlue",
"AURORA*FIELDS",
"Background2982",
"battybeats",
"bbqzzd",
@ -143,10 +142,8 @@ const char* aboutLine[]={
"LovelyA72",
"LTVA",
"LunaMoth",
"Lunathir",
"LVintageNerd",
"Mahbod Karamoozian",
"Martin Demsky",
"masicbemester",
"MelonadeM",
"Miker",