Rybags #1 Posted March 23, 2006 Just a quick demo here, demonstrating the playing of digitized sounds with 2-bit samples. The quality is fairly reasonable, and no screen blanking is used. It just disables VBIs to stop that 50 Hz stutter. Rather than use delay loops, it waits on VCOUNT, which has the advantage of not having it's timing affected by screen DMA. I've tried using WSYNC, but you get some distortion due to "badlines" using that technique. The disadvantage of such a technique, of course, is that it isn't so useful for variable pitch effects for music. The program/data resides from $3F00 - $6F00. Just use "Load executable" in A800Win+ or binary load from DOS on a real machine. The digitized soundtrack (which you all should recognize) was sampled in Audacity, by feeding the PC speaker back to Mic, and sampled at 96,000/second. I then amplified the waveform (to normalize it), then wrote a program on the Atari to pack every 12th sample into a file. Each byte contains four 2 bit sample values, packed in order 4,3,1,2 (makes it quicker to shift into the right place). demo2bit.zip Quote Share this post Link to post Share on other sites
Heaven/TQA #2 Posted March 23, 2006 cool!!! i guess that 2bit is used for our ghostbusters hahahaha as well? Quote Share this post Link to post Share on other sites
Heaven/TQA #3 Posted March 23, 2006 but you are using pokey or the gtia? Quote Share this post Link to post Share on other sites
emkay #4 Posted March 23, 2006 but you are using pokey or the gtia? 2 bit ... disabling VBI .... ofcourse it's GTIA Quote Share this post Link to post Share on other sites
emkay #5 Posted March 23, 2006 Regarding to optimized pokey usage (triangles) and having an additional channel for drums, this solutions is fabulous. One real benefit is in the independant volume usage of GTIA and POKEY. Quote Share this post Link to post Share on other sites
Rybags #6 Posted March 23, 2006 Ghostbusters: unsure. POKEY is used here. GTIA is only 1-bit sound. I aim to play around with it at a later time. From what I've read, the C-64 Imp. Mission uses some sort of compression algorithm on it's samples (but still playback is 4-bit). I'll have to try and see if it can be "reverse engineered". Next possible logical step with 2-bit might be to try and increase the quality by doing "oversampling" - average values to smooth out the steps. But, the main reasons for doing VCOUNT frequency playback: - playback is almost the same rate on both PAL and NTSC - short DLI and VBLANK routines can still be run, with minimum degredation of the sound quality - no screen blanking Quote Share this post Link to post Share on other sites
emkay #7 Posted March 23, 2006 Ghostbusters: unsure. POKEY is used here. GTIA is only 1-bit sound. I aim to play around with it at a later time. Ooops... you are right. Quote Share this post Link to post Share on other sites
Rybags #8 Posted March 23, 2006 Wavetable playback is another thing I've done a little work on. Aside from the normal delay loop method, I've thought of 2 other possibilities for playback control: - POKEY Timers. Disadvantage is that there's a fair amount of overhead, and not really a huge increase in sound quality with the screen enabled (as compared to using loops). - DLI waiting. A little used feature of ANTIC. The high bit of the NMIST register is actually set when a DLI is requested, regardless of if they are enabled. It is reset at a later stage on the same scanline (the CPU doesn't have to store into NMIRES, like it does with a VBI). So, just generate a hires 240 line DLIST with DLI on every line, but don't enable DLIs. Then, the code just has to wait, with a BIT NMIST ; BPL WAIT sequence. Quote Share this post Link to post Share on other sites
Cybernoid #9 Posted March 23, 2006 Cool idea. Quote Share this post Link to post Share on other sites
okto #10 Posted March 23, 2006 MP3 for those of us without A8 hardware? Quote Share this post Link to post Share on other sites
Rybags #11 Posted March 24, 2006 Emulator for those without A8 hardware: http://atariarea.histeria.pl/PLus/index_us.htm Here is a GTIA version. I was expecting something unrecognisable, but the quality is almost as good. I just patched the program to store to $D01F instead, so the data is still the same (although half the data becomes redundant): demo1bit.zip Can someone try it out on a real 400/800? I've only got XL/XE's. Quote Share this post Link to post Share on other sites
+warerat #12 Posted March 24, 2006 Emulator for those without A8 hardware: http://atariarea.histeria.pl/PLus/index_us.htm Here is a GTIA version. I was expecting something unrecognisable, but the quality is almost as good. I just patched the program to store to $D01F instead, so the data is still the same (although half the data becomes redundant): demo1bit.zip Can someone try it out on a real 400/800? I've only got XL/XE's. Hey, that's pretty neat. Sounds about the same on my 800 through the speaker, but a little scratchier. Never could figure out the words before the "Stay a while"... Quote Share this post Link to post Share on other sites
MEtalGuy66 #13 Posted March 24, 2006 Heh. Both of those sound terrible to me, by comparisson to 4bit. What is the problem with using 4-bit pokey sound? That reminds me of " Seeeeeeeea- Dragonnnnnnnn" on the Apple-II. hahahah. Quote Share this post Link to post Share on other sites
Heaven/TQA #14 Posted March 24, 2006 i guess we are exploring here 2 bit and 1 bit digi sounds... 4 bit everybody can do... and don't forget the ram usage of 4bit samples... it's interesting... the GTIA version sounds nearly as good as the 2bit pokey version but little bit scratchier... unfortunatly i can not test it on real 800/400... what would it be cool...rescue on fractalus with screams by the alien...coming not from your tv speakers but from the "inside" speaker... or the door sounds... Quote Share this post Link to post Share on other sites
Wrathchild #15 Posted March 24, 2006 From what I've read, the C-64 Imp. Mission uses some sort of compression algorithm on it's samples (but still playback is 4-bit). I'll have to try and see if it can be "reverse engineered". I'd started that already, PM me if you want to delve into it further, Regards, Mark Quote Share this post Link to post Share on other sites
okto #16 Posted March 25, 2006 Emulator for those without A8 hardware: http://atariarea.histeria.pl/PLus/index_us.htm What about those of us without Windows? Quote Share this post Link to post Share on other sites
Rybags #17 Posted March 25, 2006 There are emulators which work on both Mac and Linux. This link has some of them: http://vjetnam.hopto.org/index.php?frame=emu Quote Share this post Link to post Share on other sites
emkay #18 Posted March 25, 2006 Heh. Both of those sound terrible to me, by comparisson to 4bit. What is the problem with using 4-bit pokey sound? Well... probably sometimes we will have a full pokey supporting tracker When using the generators for having 2 voices for a flute(triangles) and playing two flute voices, you don't have any chance to have a third channel... except the GTIA channel. For Drums and Percussions the quality is fair enough (allthough better than nothing ) Quote Share this post Link to post Share on other sites
+CharlieChaplin #19 Posted March 26, 2006 Hello Jan, did you read my instructions here at atari-age ?!? I hope so, it contains the info from the original manual of the hyper-Xf-OS... (if you did not read it, search for it at atari-age forum)... Now, how to create a partitioned 3,5" disk. Just explained that at ABBUC forum (in german language of course). Well, with an alternative OS, like QMEG-Os or SPOS or... this should be easy, since such OS can boot from almost every floppy D1, D2, D3... D8. BUT with an original XL/XE OS one can only boot from drive one... I found some very awkward solutions, but they work: 1) set your Hyper-XF to D1 and boot without a disk, now choose the partition (A,B,C,D, F or M) 2) unplug the SIO-cable from the Hyper-XF, but do not switch off the floppy! 3) connect your 5,25" drive to the Atari and boot a normal DOS (without speeders!) from it... 4) when done, disconnect the 5,25" drive and connect the SIO cable (+Atari) to the Hyper-XF again 5) since you already chose a partition, now format that partition (D1) and write DOS onto it - you can repeat that process until all four partitions (ABCD) are formatted; if you want to access all four partitions at once (F and M mode or D1 - D4), make sure the DOS is configured for 4 drives... This way, I partitioned, formatted and wrote a sector copier to every partition (ABCD). Now I could boot my 3,5" hyper-Xf and transfer all my 5,25" disks to it: boot part. A from Hyper-Xf as D1 with sector-copier on it, while 5,25" drive is D2; then copy a disk from D2 to D1 into part. A; one can do the same with part. B, C and D. I never used the modes F and M very often, so here you can make your own experiences... note: in partition-mode you can only use the densities Single (90k), Medium/Enhanced (130k) and Double (180k). double-sided densities are not possible. A 5,25" floppy provides 2 partitions, whereas a 3,5" floppy provides 4 partitions. With a properly configured DOS or OS (QMEG, etc.) all four part. can be used at once - this is nice, when playing Alternate Reality - the dungeon on a 128k system: the main program is copied to XRAM and all other data can be loaded from the four partions of the Hyper-Xf (acting like 4 drives then) without changing disks every now and then... There is also a small utility called HYPMODE.COM, created by the author Stefan Dorndorf, you can load this utility from DOS and set the mode of the hyper-Xf with it. it assumes two letters: 1) drive number (1,2,3,4) and 2) mode (ABCDFMSX), so you load it and type for example 2B to set the D2 (the Hyper-XF) to mode B (= part. B)... Alas, it looks like the Hyper-XF-OS (or some DOS versions ?) has a bug: when you install the OS, the DSDD mode (360k density) does not work anymore with most DOS versions (with superDOs and turboDOs you get an error when formatting a disk in 360k)... greetings, Andreas Magenheimer. Quote Share this post Link to post Share on other sites
+CharlieChaplin #20 Posted March 26, 2006 Hmm, did I find a bug or what - post 19 (Hello Jan, ...) should have been a reply to a privat message. now it appears here in the forum... strange... - please remove that post... -Andreas Magenheimer. Quote Share this post Link to post Share on other sites
+CharlieChaplin #21 Posted March 26, 2006 Afaik, ghostbusters does not use any samples, it uses voice-synthesis for the "Ghostbusters hahahahaha" speech... maybe you know SAM (software automated mouth)... ?!? I was told that voice synthesis in that case is much shorter than any use of samples... -Andreas Magenheimer. Quote Share this post Link to post Share on other sites
+Stephen #22 Posted March 27, 2006 Afaik, ghostbusters does not use any samples, it uses voice-synthesis for the "Ghostbusters hahahahaha" speech... maybe you know SAM (software automated mouth)... ?!? I was told that voice synthesis in that case is much shorter than any use of samples... -Andreas Magenheimer. Not to derail the thread, but do you know if the source to SAM is out there? Stephen Anderson Quote Share this post Link to post Share on other sites
Heaven/TQA #23 Posted March 27, 2006 i personally doubt that Ghostbusters uses SAM-like technique to be honest... it sounds "too perfect" and i would suggest that it's sampled... maybe i'll gonna look into the code... Quote Share this post Link to post Share on other sites
Rybags #24 Posted March 27, 2006 Even a cut down SAM would probably use more memory than the "Ghostbusters" sample. My guess is that they probably employ some compression technique. Impossible Mission does so on the C-64, and I've been told that all the samples for that game come into about 8K. From memory, GB was a pretty big game anyway - wasn't 48K the minimum spec? The Ah-hah-aaaah! could very well be just 2 or 3 samples which are repeated with different pitch and duration. Quote Share this post Link to post Share on other sites
Heaven/TQA #25 Posted March 27, 2006 it a simple playback... take this exe http://www.atari8.info/artykul.php?art=ghostbusters check out routines at $6000 ff. and now change f.e. the LSR in the subroutine with a NOP @ $6463. or change the lda XXXX at $6001 which loads the sample... load the exe file into atari800win...when the 1st voice appears just press quickly F8 to enter the monitor... play around with the code by changing commands with the build in assembler... Quote Share this post Link to post Share on other sites