Voice on Spectrum (2George Shepelev)
ZXNet echo conference «zx.spectrum»
From Andrew Savichev → To All 8 March 1998
Hello, George!
> Have you disassembled the AOH firmware? I do. And I made my own programs for issuing
voices, with unzipping. Without using a timer, you won't get a good sound, for the life of you...
Listen, don't you give me examples of how to build it all, because I really want
the Spectrum to speak, even if not in a very pleasant voice.
And then there's AY, there's no way to use it?
And also...caller IDs spoke (in different voices), but how to sing?
And according to the packaging - unpacking algorithms Tell me something about the sound, plz!
I’ve been tormenting people here for a long time with such questions, but no one has answered.
> Sincerely, George
Sincerely, Andrey Savichev/CGS
From Vladimir Zabolotsky → To All 9 March 1998
Hello, Andrew!
08 Mar 98 19:28, Andrew Savichev wrote to All:
AS> Listen, can you give me examples of how to build all this, otherwise I really
AS> would like the Spectrum to speak, even if not in a very pleasant
AS> voice.
At one time (around 1993-94) I made a program - sampler with mag. port well
and a gadget for playing all this sound, and the sampling speed could be varied, and as for the pleasantness of the sound - you have to play with the digitization speed - personally, in 38k I could fit about 50 seconds of more or less decent, but slightly crooked sound...
AS> And then there is AY, there’s no way on it?
Try it, the sound there is 4-bit, so you’ll have to store all these four bits to improve
the sound - and for this you need more memory, I think
that all this should be understandable and clear...
and if you try to play with one bit on AY something like "1" - we'll output amplitude 15 in
AY, if "0" is zero, in this case, IMHO, the sound will be better than
under the same conditions on the beeper, because in AY there is a normal DAC, and a beeper - he
is a beeper...
AS> And yet... to say AOHs - they said (in different voices),
well, this, IMHO, is simple - a fixed reproduction frequency is made,
only it can be one in one device, and another in another, well, how
result - differentvoices (in terms of duration and tonality)
AS> but how to sing?
IMHO, in the process of playing, you need to slightly change the speed, and slightly change
the duration of the playback, i.e. played one countdown, then the next two times,
or somehow play back in an even more sophisticated way - although on spec it will be quite difficult
to do so many things programmatically...
AS> And regarding the algorithms for packaging and unpacking the sound, tell me something, plz!
when I was playing with DMM's samples - I noticed that it is possible compress
by principle, a byte of the number of repetitions - a byte of data (or rather, a half-byte of repetitions
- a half-byte of data), there were too many small and slowly changing
amplitude sections...
although of course it is possible to expand in the Fourier series, store the expansion coefficients, and then restore the original sound from them (sort of like this MPEG
works) - but doing such a thing on a spec is sadism, because the spec won't handle
such work (fast Fourier conversion, etc.)
AS> I've been tormenting people here for a long time with such questions, but somehow no one answered
AS> no one.
let's go to the soap - maybe I'll tell you something else...
With respect, Vladimir...
──────────────────── ─────────────────────
[pop-MU$T DIE!!!],[tekkno-R000leZZZ],[lmd],[asm-rulez 4 ever],[dj'n-Roolezz]
[real coderz don't affraid math],[ZX-Spectrum - roolezz 4ever],[pc-suxx]
From Max Romanoff → To All 10 March 1998
Vladimir is that you or what?
...why did you tell Andrew Savichev about Re: Voice on the Spectrum (2George
Shepelev)?
AS>> And also... talking about AONs - they said (in different voices),
VZ> well, this, IMHO, is simple - it is done as a fixed frequency
VZ> of reproduction, only it can be one in one device, and in
VZ> in another - different, and as a result - different voices (in duration and
VZ> tonality)
different versions spoke to different voices. those. not in the same
version. (well, maybe in giant pussies.) :)
Good Luck...
... Reproduction strictly prohibited.
From Evgeny Onishko → To All 10 March 1998
AS> voice. And then there is AY, there’s nothing on it? And yet...speaking AOHs -
In fact, it can be pleasant. You just need a lot of space for the sound.
AS> they spoke (in different voices), but how would they sing? And according to the algorithms
AS> packaging - unpacking sound, tell me something, plz! I've been here for a long time
AS> people
See the documents on the MP3 sound standard. I saw it somewhere on the board, I think you could
find it too.
AS> I torment myself with such questions, but no one answered.
>> Sincerely, George
Evgeny
From George Shepelev → To All 11 March 1998
You see, these examples will be tied to the AOH architecture,
and it is quite different from the Spectrum. The
580VI53 is being programmed in single-stable mode, it is being launched and clock cycles are being counted until the next
impulse. Along the way, the display segments are regenerated...
AS> And then there’s AY, there’s no way on it?
It’s possible, of course, but it will be a _completely_ different program...
AS> And also... the AOHs spoke (in different voices), but how would
AS> sing?
Digitize, put it in ROM and listen ;)
AS> And according to the packaging algorithms - unpacking the sound Tell me something, plz!
It will not be a shame to hear this for the Spectrum fanatics present here,
but the Z80 at 4 MHz cannot effectively decode sound in real time. I managed to achieve approximately 10% compression (which is still very good, because most of the ROMs in AONs are taken up by sound - accordingly, the space for program code has sharply increased)...
AS> I’ve been tormenting people with such questions for a long time, but for some reason no one answered
AS>.
Clearly, the questions are not for this echo... ;-)
Yours sincerely George
From Andrew Savichev → To All 11 March 1998
>
> AS> And about the algorithms for packaging and unpacking sound, tell me something, plz!
>
> It will not be a shame to hear this for the Spectrum fanatics present here,
>but the Z80 at 4 MHz cannot effectively decode sound in real time. I managed to achieve approximately 10% compression (which is still very good, because
>most of the ROM in AOHs is taken up by sound - accordingly, the space for program code has sharply increased)...
From George Shepelev → To All 11 March 1998
VZ> well, this, IMHO, is simple - a fixed frequency
VZ> of playback is made, only it can be one in one device, and another in another
VZ>, and as a result - different voices (in duration and
VZ> tonality)
You have you heard what it sounds like? On a tape recorder with the “wrong” speed,
or on AOH, if you play with the settings? The sound becomes unnatural...
AS>> but how to sing?
VZ> IMHO, you need to slightly change the speed in the process of playing, and
VZ> slightly change the duration of playback, i.e. played one count,
VZ> then the next one two times, or somehow played back
VZ> in an even more sophisticated way - although on a spec it will be a little hard to do so many things programmatically...
It will be very sophisticated even on the Pentium... Haven’t you heard anything about the Fourier transform? Now it will be necessary to decompose the signal into spectrum components according to Fourier in order to synthesize the next piece without “joints”. Otherwise, crackling and parasitic frequencies will inevitably appear...
From George Shepelev → To All 13 March 1998
AS> We need examples “for the algorithm”.
Take the firmware of any AOH with a voice, put it into a Spectrum emulator and
disassemble it ;) But seriously, I’m too lazy to look for all this among three dozen
boxes of floppy disks... A lot of time has passed since I
was doing this.
I installed IBM and several other programs I'm writing...
AS> The Apple-II had a specialized voice processor, there is an idea
AS> to repeat this for the Spectrum in modern times. elem. base.
Anyone can do it on a special processor! ;)
Just kidding...
AS> We need LPK algorithms (formant synthesis) or something more modern.
AS> Examples preferably in C.
Are you kidding me? See Origin ;)
From Andrey Khristov → To All 13 March 1998
AS>> plz!
GS> It will not be a shame for the Spectrum fanatics present here to hear this, but the Z80 at 4 MHz cannot effectively decode sound in real time
GS>. I managed to achieve approximately 10% compression (which
GS> is still very good, because most of the ROM in AOHs
GS> is occupied by sound - accordingly, the space for
GS> program code has sharply increased)...
In AOHs the sound is made through PWM.
With best wishes - Andrey Khristov (ha...@robin.alt.ru)
[Team Horse Aviation] [Team beer, girls & sofa]
[Team Electric Welding Must Die!] [Team Khasan Border Guards]
From Max Romanoff → To All 13 March 1998
George is that you?
...why did you tell Andrew Savichev about Voice on the Spectrum (2George
Shepelev)?
GS> next impulse. Along the way, the display segments are regenerated...
in almost all the firmware I have seen - the display goes dark during
the voice. as in other matters, and while receiving the station's response.
Good Luck...
... The best way to accelerate Windows is through one.
From George Shepelev → To All 21 March 1998
MR> in almost all firmwares I have seen - the display goes dark during
MR> the voice. as in other matters, and while accepting the station's response.
So, for reference, in my version of the program it continued to show what was in the display buffer... But when receiving the station's response, it is more difficult to do this...
MR> + Origin: So that your children can be friends with cockroaches!
And they will be like you ;)
This is in response to your attack, so don't be offended...
George
From Dmitry Batov → To All 21 March 1998
There is a more global method that allows you to get very decent compression:
signal approximation, but for a system without a coprocessor you will have to create
a table. Although if the signal is 8-bit it will fit into 256 bytes, and this
is not so much.
And the algorithm is more than simple: from a known starting point of the signal, a sinusoid, parabola or other curve is applied
and selected (for example, ttf fonts
are approximated using Bezier curves) and the number of cycles during
which the approximation error is calculated is minimal and the parameters are remembered:
for a sinusoid this is frequency, amplitude, phase, duration. After processing the area
the starting point is transferred to the last point of approximation and everything is repeated
again.
The only negative: it is difficult to implement the entire recording-compression cycle on the sectrum
and there may not be enough memory.
With regards, SysOp.
From Andy Harchenko → To All 23 March 1998
Having sat down at the keyboard, I decided to draw a letter for you Dmitry.
Once I was in a museum and there on an old, old stone an ancient man carved that
Saturday March 21, 1998 right at 13:30, Dmitry Batov wrote to George Shepelev:
DB> frequency, amplitude, phase, duration. After processing the section
DB>, the starting
DB> point is transferred to the last point of approximation and everything is repeated
DB> again.
DB> The only negative: it’s difficult to implement the entire recording-compression cycle on the sectrum
DB>, and there may not be enough memory.
What about playback, imho the Z80 won’t handle it, and even if it does work,
I’m afraid of the quality there there won't be any more +)
Wiz zE BeSt WisHeZ 2 U!
-=JoCkeR/OmEga HaCkErS Grp/1998year=-
From George Shepelev → To All 25 March 1998
DB> There is a more global method that allows you to get very decent
DB> compression: signal approximation, but for a system without a coprocessor
DB> you will have to compile a table. Although if the signal is 8-bit, it
DB> will fit into 256 bytes, and this is not so much.
DB> And the algorithm is more than simple: from the known starting point of the signal
DB>, for example, a sinusoid, parabola or other curve
DB> is applied and selected (for example, ttf fonts are approximated using Bezier curves), the
DB> number of clock cycles is calculated. in which the approximation error is minimal and
DB> parameters are remembered: for a sinusoid this is
DB> frequency, amplitude, phase, duration. After processing the area, the starting
DB> point is transferred to the last approximation point and everything is repeated again.
From Max Romanoff → To All 31 March 1998
GS> And they will be like you ;)
GS> This is in response to your attack, so don’t be offended...
is this a attack on the original? do you have nothing to do? or do you want to practice on
random originals?
Good Luck...
... Windows Error 01A: Operating system overwritten. Terribly sorry.