Wav on AY

ZXNet echo conference «code.zx»

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