From
Vladimir Trofimchuk
→
To
All
14 December 2001
/-------------------------------- --- --- --- -- -- - - - - -
| /Yes, it will not consume you/ all /the omnipresent darkness!/
---------------------------------------------------- --- -- -- - - -
Dear coders, can you tell me how I can listen to wav files on AY?
Is there such a converter or player? Maybe someone can give an example of something like this?
procedures in assembly language? It is very necessary, however.
*Vladimir*
From
Kirill Frolov
→
To
Vladimir Trofimchuk
15 December 2001
Press RESET immediately, Vladimir!
14 Dec 01 01:09, Vladimir Trofimchuk wrote to All:
VT> can you tell me how I can listen to wav files on AY?
Convert by amplitude into bytes for AY. For the monophic version
you can use summation of AY channels, but here you may need to
Write a specific computer, depending on what kind of connection diagram AY is there. To increase
quality, you can use some pulse modulation if the time
enough processor.
VT> Is there such a converter or player?
H.Z. I remember CODEBUSTER's SATISFACTION demo with metallics
and Michael-Jackson in some kind of pre-release of the mega-mega-dem itself.
I won’t give you a table for linear WAV -> non-linear AY.
From
WoWan Nickolaev
→
To
Vladimir Trofimchuk
15 December 2001
How's yours, Vladimir?
14 Dec 01 01:09, Vladimir Trofimchuk -> All:
VT> Is there such a converter or player? Maybe someone can give an example
VT> similar procedure in assembler? It is very necessary, however.
There is a method MCC (middle channel correction)... There is no need to convert anything.
WBR, Lynx //YaLloo Bastards Family!
[team ZX] [DnB] [GoA] [YAlLoo Bastards Family] [PLUt0N!um]
[YOBLYA] [GmD] [club LuK] [BoundLEss] [NIGGAZ]
From
Vladimir Trofimchuk
→
To
WoWan Nickolaev
17 December 2001
Yes, WoWan, the omnipresent darkness will not swallow you up!
15 Dec 01 14:23, the conversation was conducted by WoWan Nickolaev and Vladimir Trofimchuk on the topic:
Wav on AY
VT>> Is there such a converter or player? Maybe someone will bring
VT>> an example of such a procedure in assembler? It is very necessary, however.
WN> There is a MCC (middle channel correction) method...No need to convert anything.
I recently found an article in Format 8 about digitization. When checking the procedure for AU
after startup, a characteristic AU noise appears, which does not stop upon exit, but
I still can't hear the sound. I’ll give you an example, maybe there’s a typo somewhere?
D.I.
LD BC,#FFFD
LD A,8
OUT(C),A
LD HL,START+#2C ;the sound bytes themselves begin from here
LD BC,LENGTH ;sound length
LD D, HIGH BYTE OF START OF TABLE, #F0
LOOP LD E,(HL)
LD A,(DE)
OUT (#FD),A ;for Pentagon
DEFS 100
INC HL
DEC B.C.
LD A,B
OR C
JP NZ,LOOP
EI
RET
START INCBIN "test" ; WAV-file
ORG #F000
TABLE DEFS 4,#A0
DEFS 5,#A1
DEFS 5,#A2
DEFS 5,#A3
DEFS 6,#A4......And so on
..........
DEFS 41,#AF
The light will come with you! *TROLL*
From
Arseniy Astapenko
→
To
Vladimir Trofimchuk
17 December 2001
Hello, Vladimir!
December 14, 2001 01:09, Vladimir Trofimchuk wrote to All:
VT> Dear coders, can you tell me how I can listen to wav files on
VT> AY? Is there such a converter or player? Maybe someone will bring
VT> an example of such a procedure in assembler? It is very necessary, however.
Look for the UltraSound by Oldman project.
=== I quote the file READ_RU.TXT ===
So, a rather lengthy chatter under the subject "8bit->4bit" made me
pick up a soldering iron... ugh... climb into MASM in search of practical
proof of your own statements. Actually, I didn’t find any evidence
but as a result, an original idea was born ;) But let's start from the beginning... The statement that
Repeated sending of the same value to port AY improves quality
reproductions are nonsense! I repeat this for the third time and, if anyone else
I will be blamed for this mistake... ykyshy :) As for tables and formulas...
The only correct (or all the documentation for AY is lying) conversion formula is
LET AY=(LN (V+1)/LN 2)*2-1: IF AY<0 THEN LET AY=0
where AY is the value for AY in the range 0-15,
and V - linear volume level (0-255)
But! The correct formula does not guarantee the best reproduction! Actually,
decent quality on four bits can only be obtained by trying different
formulas, artificially limiting the dynamic range of the original digitizationand even simply picking out individual impulses that introduce the greatest distortion. Then
Yes, it would be nice to have a decent sample editor on the Spectrum, but not about that right now
this ;) Method proposed by Denis Sotchenko (calculation of two values,
the arithmetic mean of which is closest to the correct sum and alternately
throwing them into port AY) did not provide a significant improvement in quality
playing and phonated SUCH a whistle that... However, I probably just
implemented it carelessly (the values changed at a frequency of 22kHz and were calculated
very approximately)... In any case, not in the nature of a Russian coder
develop someone else's development when you have your own ;-) So, I present:
UltraSound4x3 method for AY chips
(c) OLDMAN 1998
---------------------------------
The idea is as simple as the design of a broom - y AY THREE channels of 4 bits each, therefore,
Combining the volume of all three channels can easily achieve more than 16
unique, and most importantly, very closely corresponding to the 8-bit scale 0-255,
Volume levels! Actually, I was able to calculate from 160 to 206
levels (but in the latter case the signal-to-noise ratio increased slightly).
Speaking of noise... It makes great noise ;) But there are distortions, wheezing and squeals to hear
It’s not noticeable at all, but this, you see, is progress!
It’s clear where the noise comes from. Channels are not processed simultaneously - they are still neededswitch. Obviously, noise can be reduced by minimizing the time between
entries to ports. But, whoever can speed up the following piece of code,
it will be necessary to erect a monument during his lifetime ;)
LD BC,#FFFD
EXX
LD BC,#BFFD
EXX; 4
OUT (C),L ; 12
EXX ; 4
OUT (C),D ; 12
EXX; 4
OUT (C),H ; 12
EXX ; 4
OUT (C),E ; 12
EXX; 4
OUT (C),D ; 12
EXX ; 4
OUT (C),L ; 12 96
Well, I explained it briefly, and then those who need it will figure it out themselves. B
as a last resort, you can always ask me (in 2 weeks I’ll still remember everything
details :) Just in case, if someone finds the technique useful and he
would like to use it in his work, mention: methodology, pieces of code,
source codes and calculating programs are absolutely frivolous! Do whatever
please, but if you don’t mind, please mention the name of the method (you can briefly
U43) and its author in copyright, running lines or wherever you have it
documentation for your program. And don’t forget to notify me - have fun
old man ;) Hey, the most impudent ones, at least say hello to me ;)
Now let's move on to the contents of the archive:U43DEMO.B - Ooooh! This is a 120kb digitization 22050Hz from the CD of Vika Tsyganova
U43DEMO.C with a photo of the singer!!! :)))
Please note that this is not a demo, not an intro for FunTopXX - it's just a demonstration
possibilities of the technique! (and the disk was the first one that came across ;)
usound11.B - Sample player 8-bit/11025Hz. When starting, it asks you to enter
usound11.C - sample name in WAV format.
usound11.a - Player sources in MASM.
usound11.T - Sources in text form.
samp11x8.C - Just a little one, as an example for a player.
usound11.B - Everything is the same, but for samples 22050Hz.
usound11.C - -//-
usound11.a - -//-
usound11.T - -//-
samp22x8.C - -//-
tabcalc.B - Terrible program!!! Calculates three values for three
AY ports, the sum of which corresponds to the range 0-255
and writes them into three tables. Along the way it displays a graph,
where in X - 0-255, in Y - the sum of the volumes of three channels.
When starting, it requires you to enter a coefficient. How would it be easier
explain... k=256/3 - we seem to divide this equally
scale 0-255 for three channels and we get 160 unique
"volume". k=128 - we reduced the coefficient a little,
received 206 “volumes”, but the overall sound level dropped
by a third (but there is no noise).
The program was written in 100% BASIC and operates on arrays of exactnumbers up to 1024 in size, so it works very slowly.
P120, Shalaev emulator at maximum speed - an hour and a half.
On a real Spectrum, I advise you to run it on the weekend ;)
tabu85.C - Already calculated tables with odds of 256/3.
tabu128.C - It’s clear what this is.
tabdraw.B - This program does not calculate anything, but displays everything. Asks to enter
coefficient and file name with tables.
And finally, a couple of programs for Spectrum and PC owners at the same time.
@2wav.bat and bcopy.com - Launch U43DEMO, press magic, rewrite magic
hobeta/zotkop to the directory with these two files, run @2wav.bat,
get the file privet.wav - the original sample used in the demo. If with
it didn’t work out the first time, pay attention to the names of the Majiks - they should
be like @1______.$c and contain a hobetta header!
Emylators! A bummer awaits you :( Shalaev is wheezing, x128 is silent like a partisan, Yudin
perfectly plays the beginning of the demo and completely hangs up the car. The last one, you see
I don't like the stack at address #FFFF... So, be content
players and small numbers. Yes, Yudin's emulator sounds on P120
only with SPEED=FAST, SOUND_RATE=45KHZ, BORDER=FAST.
That, in fact, is all that we managed to work on for almost a month. I hope from
something good will come out of this...
The archive will soon be posted on acid-nature along with tapesversions.
Best regards, Dmitry (Oldman)
InterNet: oldman@i-connect.ru
FidoNet: 2:5020/689.31
ZXNet: 095/100.1
===End quote ===
And they wrote something else in BornDead.
Ars. mailto:arseniy@pochta.by
From
Aleksey Senilov
→
To
Nikolaj Amosov
4 January 2002
Hello, Nikolaj!
January 02, 2002 22:01, Nikolaj Amosov wrote to Konstantin Lebedev:
KL>> Haven’t you seen the idiots from BW? (Stellar, T-Dream)???
KL>> There in the setup you can select abc, bam and acb...
NA> Specifically - which player supports channel settings?
Do you mean switching stereo mode? X-MetaPlayer for example. And one more thing
some of the latter.
All the best! Boh/Image Crew was with you.
From
Aleksey Senilov
→
To
Konstantin Lebedev
6 January 2002
Hello, Konstantin!
January 05, 2002 21:47, Konstantin Lebedev wrote to Valera Selev:
VS>> Hyperion seems to have such a feature, it is also in the player
VS>> for X-DOS..
KL> Under xdos... Can you throw???
X-MetaPlayer is a player for XDos. The author is me.
There's nothing complicated there. We intercept the space from the music player before outputting to
AY, usually there are 14 bytes in memory ready for output. And call the mixer,
which swaps channels depending on the mode. (mode is set
value from 0 to 5, at zero nothing is done)
If the data in the player is not in the form of 14 bytes, then before calling the mixer
we transform them as necessary, and after the mixer back. As a result, the procedure
The mixer is universal, regardless of whether we have ASM or PT.
Will you figure it out on your own, or should I throw in some sources? Not the entire program, of course,
but I can give you a mixer and an example of interception.
However, if you are not playing music from the editor, but something else, then when
Provided there are 14 bytes of data, you just need to call the mixer at the right place.
PS: sorry, there are a lot of repeated words :)
All the best! Boh/Image Crew was with you.
From
Arseniy Astapenko
→
To
Ilya Kudryavcev
9 January 2002
Hello, Ilya!
December 27, 2001 23:02, Ilya Kudryavcev wrote to Arseniy Astapenko:
AA>>>> significant improvement in the quality of playback and phonation
AA>>>> SO
AA>>>> whistling, what...
KF>>> It was necessary to switch with ultrasonic frequencies. WAV on
KF>>> beep
KF>>> (C) Ivan Mak was played without whistling, using the same method.
AA>> How about playing little siskin-fawn on the disk drive? :)
IK> Have you never heard of pazi?
IK> I have a couple of our disk drives, they are the most masterpiece on flops
IK> is playing. :)
Wow, on the Spectrum? Please stop and listen :)
Ars. mailto:arseniy@pochta.by