Login
Search for:


Previous | Next

From: Crown (all posts)
Date: 1998-05-27
Subject: Re: 2 Levente...
Hi there,

>Yes, but those noises are also on the TED's squarewave output voices,
>and since these don't hear noisy, I bet they shouldn't be too serious (even
>if you meant the amplitude modulation of this noise). The only noticeable
>noise from the computer inside, I guess, is the 50Hz (or 60Hz) of the
>videosignal (and it's harmonics), and the 15625Hz of the horizontal blank.
>They are more or less noticeable, at least if you turn the volume up.
>
>But if you claim, they make a significant difference in the output levels
>in constant + or - values (I mean, they modify the output levels constantly),
>I assume it.
Yes they do modify it constantly. If you check it on a scope, you will see not a straight line, but a bar, at the higher output levels this bar's height can be compared to the difference between two levels.
You doesn't hear it as it's freq is very high (1.6Mhz), but I think its harmonics make the plus4 sound richer.
As I said, for emulation this can be ignored, I wrote about this in my posting only for completness's sake.

>You mean, I tried to write a replay routine which tries to determine whether
>it's in right cycle to write to $ff11 or not? ...No, I tried this just
>once, when trying the 1-bit + duty cycle level replay method where I really
>needed this one (else, the replayer was whistling constantly). It doesn't
>get very serious, unless you try higher sampling rates.
As far as I know these wave converters were based on timer 0 irq,
and because the CPU must execute the current instruction when an IRQ hits, the $ff11 writes will be delayed between 1-6 cycles randomly.
This I guess should introduce a low freq noise.

>Hmmm, multiplexing frequency values is something else than dithering
>output levels. But yes, the analogue is convincing.
Actually I tried once to play two different samples at once by outputting first the sample of the first wave, then the sample of the other wave. It works and you hear both waves,but there is this whistling noise you mentioned.

>Larry just coded such one for the 64. ...Well, he should have used some
>more tricks, since the SID's FRQ's are too low for achieving pulse
>width modulation without whistling.
I guess the whistling could be killed by using one of the generators to emit the whistling freq but with a half cycle delay.

>> I've seen/heard some very good digital players on Plus4. One was
>> done by Pigmy, it played three digital channel sampled musics.
>Are you referring to the TFSS/PIGMY/CSORY digital converter, or something
>else which rather played customizable samples? In the former, Charly should
>be able to help since one of their musicdisks utilized this mconverter
>routine back in '91 or '92.
Nope, this played custom samples, and you could set each note's freq.

>I use a custom $ff11 table which was originally invented by Doky and maybe,
>TCFS. This does not just use $90, 91, 92... b4, b5 etc. but also uses
>some more values, as $10 and others. How and why to do it? Before this, you
>must set some custom values into the TED squarewave generators and wait
>some cycles until it takes effect.
Value $10 ??? With this value the output will be constant level 0.
If the low nibble of $ff11 is 0 than regardless what you set into the high nibble the output will be 0.

>The main thought beneath these, that if you set a very high frequency
>value, the output will be cut by the output lowpass filter. Since the
>TED generates asymmetric squarewave signals, the crippled squarewave will
>seem more or less a constant signal, and it's level will depend on it's
>frequency. With this, not just 4 but even 5 bit level-table can be built
>(with more or less loose parts, or rather, it will seem like a logarithmic
>scale in the end.) ...Well personally I didn't apply some measurements
>onto the TED for experiencing this correctly.
Hmmm, as far as I know there is no lowpass filter in the Plus4, but I think I know what happens here. As the hardware is not an 'ideal'
digital equipment, the change from level 0 to level 1 is not instant, it needs some time. If I measured it correctly it needs
4 sound generator counts, which is 32 TED cycles to reach the output level, if you set the generator freq higher then it doesn't have time to rise to the maximum level, so indeed this makes it possible to achieve all levels. (The rising edge is not linear, more logarithmic also). Well I guess this was a very cool idea to utilize this feature!!!

Well normally the TED doesn't generates asymmetric square waves,
they are all symmetric. I'm interested how could you make it to do so.
At every 8th TED cycle the generators are decrementing their inner counters, and if after the decrementation, the inner counter is 0
they switch their output levels between 0 and 1, then they reload their inner counter from the appropriate TED registers.
Actually the valuse which is written into the inner counters is the value of the TED register xored with $3ff. (This is why $3ff is the lowest freq and $3fe is the highest.)
(In the hardware implementation it is possible that an incrementation takes place as one docs suggest this, in this case the following equals to the above: if the result of the incrementation was $3ff, the switch happens, and the registers are reloaded directly into the inner counters.
Both logic describes exactly what happens in the Plus4.)
The switching logic of the noise generator comes from a random generator.
So when it's time to do a flip the random generator advances and one of its bit will be emitted by the generator. (I haven't decyphered yet the the random number generator, but I think it's at least 8 bit wide. I will do it sooner or later :) )

Here is some words about bit 7 of $ff11 from a Commodore docs:
"The MSB of this register is a bit used for testing. The sound reload bit will clear the sound toggle flops and initiate the reload value of each voice to initalize the active sound count during the appropriate voice incrementing time. This bit will also initiate the white noise random number generator to '1's."
This tells me first, that the output of the generators is negated,
and this bit so to say keeps the sound generators in a RESET state.

Tibor Biczo / Crown of GOTU

Copyright © Plus/4 World Team, 2001-2024