Spectrum of generated sounds getting near samples.

Still issues with LS123 durations
For skip, samples are twice as short
For run, samples are twice as long
This commit is contained in:
Couriersud 2009-01-25 16:17:31 +00:00
parent ceb0c0ac4a
commit 6c653b943e
2 changed files with 13 additions and 8 deletions

View File

@ -1629,7 +1629,11 @@ static DISCRETE_STEP(dsd_ls624)
node->output[0] = ((double)lst) * (1.0 + context->remain / sample_t) - ((double)context->state) * context->remain / sample_t;
break;
case DISC_LS624_OUT_LOGIC:
node->output[0] = context->state;
/* filter out randomness */
if (cntf + cntr > 1)
node->output[0] = 1;
else
node->output[0] = context->state;
break;
case DISC_LS624_OUT_COUNT_F:
node->output[0] = cntf;

View File

@ -163,8 +163,8 @@ static DISCRETE_SOUND_START(mario)
DISCRETE_LS123(NODE_10, DS_SOUND0_INV, MR_R17, MR_C14)
DISCRETE_RCFILTER(NODE_11, 1, NODE_10, MR_R6, MR_C3)
DISCRETE_74LS624( NODE_12, 1, NODE_11, VSS, MR_C6, DISC_LS624_OUT_ENERGY)
DISCRETE_74LS624( NODE_13, 1, NODE_11, VSS, MR_C17, DISC_LS624_OUT_ENERGY)
DISCRETE_74LS624( NODE_12, 1, NODE_11, VSS, MR_C6, DISC_LS624_OUT_LOGIC)
DISCRETE_74LS624( NODE_13, 1, NODE_11, VSS, MR_C17, DISC_LS624_OUT_LOGIC)
DISCRETE_LOGIC_XOR(NODE_14, 1, NODE_12, NODE_13)
DISCRETE_LOGIC_AND(NODE_15, 1, NODE_14, NODE_10)
@ -176,8 +176,8 @@ static DISCRETE_SOUND_START(mario)
DISCRETE_LS123(NODE_20, DS_SOUND1_INV, MR_R18, MR_C15)
DISCRETE_RCFILTER(NODE_21, 1, NODE_20, MR_R7, MR_C4)
DISCRETE_74LS624( NODE_22, 1, NODE_21, VSS, MR_C5, DISC_LS624_OUT_ENERGY)
DISCRETE_74LS624( NODE_23, 1, NODE_21, VSS, MR_C16, DISC_LS624_OUT_ENERGY)
DISCRETE_74LS624( NODE_22, 1, NODE_21, VSS, MR_C5, DISC_LS624_OUT_LOGIC)
DISCRETE_74LS624( NODE_23, 1, NODE_21, VSS, MR_C16, DISC_LS624_OUT_LOGIC)
DISCRETE_LOGIC_XOR(NODE_24, 1, NODE_22, NODE_23)
DISCRETE_LOGIC_AND(NODE_25, 1, NODE_24, NODE_20)
@ -195,7 +195,7 @@ static DISCRETE_SOUND_START(mario)
DISCRETE_LS123(NODE_110, DS_SOUND7_INV, MR_R61, MR_C41)
DISCRETE_TRANSFORM2(NODE_111, NODE_110, TTL_HIGH, "0!1*")
DISCRETE_RCFILTER(NODE_112, 1, NODE_111, MR_R65, MR_C44)
DISCRETE_74LS624(NODE_113, 1, NODE_112, VSS, MR_C40, DISC_LS624_OUT_ENERGY)
DISCRETE_74LS624(NODE_113, 1, NODE_112, VSS, MR_C40, DISC_LS624_OUT_LOGIC)
DISCRETE_LOGIC_XOR(NODE_115, 1, NODE_102, NODE_113)
@ -228,8 +228,9 @@ static DISCRETE_SOUND_START(mario)
*/
// EZV20 equivalent filter circuit ...
DISCRETE_CRFILTER(NODE_296,1,NODE_295, RES_K(1), CAP_U(4.7))
DISCRETE_OUTPUT(NODE_296, 32767.0/5.0 * 3 )
//DISCRETE_WAVELOG1(DS_OUT_DAC, 32767/5.0)
DISCRETE_OUTPUT(NODE_296, 32767.0/5.0 * 2)
//DISCRETE_WAVELOG2(NODE_296, 32767/5.0 * 2, DS_SOUND0_INV, 10000)
//DISCRETE_WAVELOG2(NODE_296, 32767/5.0 * 2, DS_SOUND7_INV, 10000)
DISCRETE_SOUND_END