Re: Covox Speech Thing - parallel port adapter Here we are .
I don't know if someone has already connected a Covox to the +4, but since it only requires the 8 data bits of a parallel port, it can surely be done with the stock UserPort in a +4, or with my 16up board on a C16. You just need 2 suitable connectors and a few wires. I can help you with the connections if you cannot figure them out on your own.
I found a very nice story of someone who connected one to a PC here. There are schematics and lots of information, and the board they made is readily available here. It would be very easy to take that project and replace the DB connector with a UserPort connector and have a ready-to-use Covox clone for our beloved machines.
Re: Covox Speech Thing - parallel port adapter I appreciate any help you can give. It would be great if there was a circuit board (for sale) on which you could just solder the needed connectors (user port, parallel port, and perhaps a RS-232 connector). Any chance you could design such a board?
Re: Covox Speech Thing - parallel port adapter Actually you do not need the covox Speech thing. It is simply an 8 bit DAC. I built mine at the university based on a Ferranti ZN426E IC.
I am really lame in hardware, so if I could do it, anyone can (you can do the same thing with a resistance ladder too, but it will have more distorsion than a DAC IC).
I am after a relocation, may look for my circuit, I had it near to me for a long time. But not now.
Anyhow, with the below two diagrams and with the help of SVS Ultimate map you can connect it to Plus/4 User port too (you can find a User port comparison between C64 and Plus/4)
The connection could be easy, just need the PC Covox circuit, samplepanel, a Centronics port connector, the User port connector (I have 5 maybe?) and some Dupont cables. hopefully the User port could provide enough juice for the IC ith the 0.1A limit. I used the PC's keyboard connector with a small adapter as a power source. (red wire on the picture)
I am not sure about the signal levels, if our TTL on User port is OK for the Covox too?
On PC it worked pretty well under some games, like Pinball Dreams, and played nice the MOD musics on PC. Certainly after buying my Diamond Monster and GUS cards I've never looked back, especially as the newer Windows version killed the direct printer data transfer. Probably Windows ME is the last Opsystem that let the Covox work properly.
I know it is just 8 bit, but sounds nice with ZN426E. And certainly sounds better than the TED digi, and requires less CPU power than the inner conversion to fit to TED. The huge samples in MODs could be a problem for our platform (without REU), but the smallest chipmusic MODs may fit into our memory with 20-30KB size. https://www.youtube.com/watch?v=GH7eUlri4yM
The C64 Soundmax is the same thing, just with stereo output. and made with a currently available, cheaper TLC4226 IC. (on ebay you can find cheap Ferranti ZN426E or 428E ICs, but most of them are fake, with reprinted surface) https://www.youtube.com/watch?v=Gn1w9tJHtAQ
Re: Covox Speech Thing - parallel port adapter Thanks MMS! The C64's DigiMax seems to have 4 audio channels, interesting. No doubt playing 4 channel music is heavy for the C64's CPU.
The Covox I have is using a resistor ladder so the sound quality is not the best possible. Even so, I'd like to use it with Plus/4 rather than try building one myself.
Re: Covox Speech Thing - parallel port adapter A board for this would be a bit "wasted", as a cable is enough. Here you have the userport pinout. The DB-25 parallel port pinout is as follows:
All you need to do is run a wire between P0 on the user port and Data Out 0, another one between P1 and Data 1, etc... Up to P7/Data 7. Then just run one more cable between GND and pin 18. You might want to also ground pins 19-25, because those should also be all grounds but only one of them might be connected on the Covox (if you can open it, try to have a look).
Re: Covox Speech Thing - parallel port adapter I think the simple resistor version will sound not good, the output of the 6529B is not symmetrical. (As MMS mentioned above.)
Re: Covox Speech Thing - parallel port adapter Yeah, linearity of the resistance ladder will be killed with the high spread of normal resistors. You may look for tighter spread 1% resistor types for a much higher price, or a time consuming way to sort out the best 10-20% from a batch with manual measurement (it has its own measurement variation too). I had a classmate who did this.
So doing with IC has a much more forecastable sound quality. But on linearity VS inner calculation to fit to TED volume levels is still better on 8 bit sound ladder than our current method.
With the 4 channel IC you can spare on CPU side a lot of calculations of the 4 channel MODs using 8bit samples. Very smart. The circuit will do the task without overstressing the CPU.
I remember Pigmy's 3 channel digi player had to switch off the screen to able to play the 4 bit samples (mixing of the three channels plus the conversion of the 4bit digis to fit TED volume output levels). Imagine just sending the raw channel data to user port. What a difference.
Re: Covox Speech Thing - parallel port adapter What @BSZ says is correct though: the MOS 6529 has open-collector-style output, so you might not get very good results. In that case some kind of buffer IC could be interposed. Maybe even a simple 74x244 or something like that.
0.25% and 0.1% are significantly more expensive, but still affordable. SMD stuff is probably even cheaper.
Anyway @Spektro here already has a Covox, he's just looking for a way to connect it . These considerations are more useful for the DIY projects I linked earlier.
Re: Covox Speech Thing - parallel port adapter OK, I have now all the parts for making the adapter cable.
What's the purpose of the nine parallel port connector pins (SELIN, INIT, ERROR, AUTOF, SEL, PE, BUSY, ACK, and STROBE) that will not be connected to the Plus4 user port? Could they actually be connected too?
Would connecting the pins make it possible to use any parallel device with Plus4 and not just Covox? If I remember correctly, there are CD-ROM-drives, ZIP-drives, gamepads, and joysticks that connect to the parallel port.
Re: Covox Speech Thing - parallel port adapter Those signals were designed for printers. As far as I know, the only useful "extra" you can do is connect userport pin H to /BUSY (DB25 pin 11) and userport pin D to /STROBE (DB25 pin 1) in order to actually connect a printer.
There aren't many more I/O pins on the userport, so there isn't much more you can do.
You could also make a Plus/4 & C64 Uploader cable but that would require a very different (and incompatible) wiring:
Re: Covox Speech Thing - parallel port adapter For Covox, as circuit diagram visible, for 8 bit data, 2-9 pins used on the PC Centronics port. You need Pin 25 for ground, and you need to get a 5V for the card. USB?
A similar smart design in the 90s could make the MOD playback on PC much easier and more available to the masses. I remember my 286/16Mhz machine was rather loaded with 4 channel MOD playback and the 8 channel was not possible at all. Because all the mixture and conversion into one single 8 bit stream requires a lot of CPU calculations. And that's why Amiga could easily do it, as it just uses the 4 independent HW channels, and mixing happened only in case of 8 channels Here you can see, how even a 4.77MHz XT struggles to play a 4 channel MOD: https://www.youtube.com/watch?v=nZX5NzSXUDc
The 4 independent 8 bit DAC channels seen in SoundMax, by the selection of A0 and A1 let the CPU just to send out the channel raw 8 bit data, without adding them together and then covert it back to a single 8 bit data. On PC this is the main reason (mixing) why an XT cannot handle it well, because they try to use the Soundblaster's single 8 buit DAC too (like an internal Covox). In case of Soundmax, all the mixing done by few passive components without the overhead on the CPU.
With SoundMax or Covox you do not need to convert samples to 4 bit (like on Pigmy's player), or do the conversion internally, just you can use the originals as they are made on Amiga. SoundMax makes the playback much less CPU intensive. A similar design to SoundMax on PC (via Centronics port) could make the MOD playback smooth even on IBM XT machines or even possible on original IBM PC 5150, I suppose. (original IBM PC 8088/4.77MHz is ~7x faster than a C64 in pure calculations, like PI, and had the half the calculation speed as an A500 at 7 MHz).
Re: Covox Speech Thing - parallel port adapter I tried to solder the adapter but it's hopeless. I can't do it Flat cable wires are too thin for my skills. I have no problem soldering the wires but they always break off (when I'm handling the connector) before I'm finished. Building the adapter is far from easy. If there was a circuit board where to solder the connectors, I could do it, but using wires, no.
Re: Covox Speech Thing - parallel port adapter Well, just use thicker wire .
I might have a PCB design that would work for you. It was designed for connecting printers to (the next revision of) my 16UP board (or the Userport of a standard +4) but as we have seen, it should work in your case too. Problem is I haven't got it manufactured yet, so I can send you the gerbers if you are willing to get them made yourself.
I can also try to squeeze in an (optional?) IC that turns open-collector outputs to push-pull ones but that would take some time.
These also have good temperature stability, for those who are really paranoid ;).
Of course we can just pick any value and use 2 resistors in parallel for getting half the resistance, but a board like this would already have quite a lot of resistors to solder, so I'm sure we'll be happier if we can avoid that... :)
(This is mostly a note to my future self, when I'll pick this project up ;) )
Re: Covox Speech Thing - parallel port adapter The actual problem may be that I don't have a proper tool and/or skill for peeling the flat cable wires. After removing the wires' insulators, the wires are probably half broken. I ordered a small v-shaped blade that could help remove the insulator without damaging the copper. One more try before I give up
I would certainly be interested in a Plus4 Covox or DigiMAX clone, if any of those came available.
Re: Covox Speech Thing - parallel port adapter After some thought, I had a go at a possible design, largely based on the one from Yeo Kheng Meng I linked above:
I decided to put it on the Expansion port so that it can also work with C16s and because it has an EXT_AUDIO pin, so that the output produced by this thing can just get mixed with the system audio (unless you plug something in the headphone socket).
Any hints at what address should this thing respond to? I was thinking about $FD5E, which is the address for the DIgiblaster on SIDcards.
It would be great is others could check my schematics and see if I made any mistakes or if something can be done better. I don't understand anything about the amplifier circuit, so I copied it exactly from the original project (Well, not exactly-exactly, I think it has at least one mistake wrt Scott Campbell's design they copied it from ) and any help in this regard is particularly appreciated .
Re: Covox Speech Thing - parallel port adapter Nice! It has gain and bass control vita potmeters, more than my pure covox thing had. Also nice to see you could find a properly priced resistors with 1% tolerance.
Since you are using an expansion port, I was wondering if ReVox could be made to play content of a fixed or seleced memory page (256 bytes) in an infinite loop at a given rate? Then the CPU would not be needed for playback - just for changing the playback rate and refilling or changing the memory page where the sample data is.
Re: Covox Speech Thing - parallel port adapter I don't think so. First I'm not sure it's possible at all, considering the 264 architecture, but even if it was, it'd surely take a loooooot more hardware to do so, which would make this project much more expensive (the current design can definitely be built with less than 10€, that's its main point) and would also require the corresponding firmware to be written.
... Not to mention that I would not be able to design such a thing .
Oh, BTW: when I get this made (it will take quite some time though, don't hold your breath), how can I test it? Do we already have +4 software that is able to produce sound through it? Which brings back the point: what address shall it use?
Re: Covox Speech Thing - parallel port adapter I think right now the closest thing to this is the Digiblaster cof SIDcard (address unknown) These are almost equivalent to each other, same bit size and features.
So I thing mapping it to the address of the Digibalster would be just fine.
Re: Covox Speech Thing - parallel port adapter I vote for the Digiblaster address, too.
@SukkoPera I guessed it would be very difficult, since no one has made such a thing so far, but I had to ask
If the costs are going to be less than €10, it's very tempting Personally I'm more interested in Covox-like audio expansions than SID ones. Somehow it feels wrong if Plus4 sounds like C64.
Re: Covox Speech Thing - parallel port adapter So! After settling down in France/Switzerland I've resumed work on my projects and the ReVox has finally seen the light of day:
Please ignore the wires and other oddities, they are all for testing! So far I have assembled the DAC circuit, written the GAL equations (address is $FD5E + $FD9E, as the SIDcard's DigiBlaster) and made sure the 74x273 buffer (well, actually it's a latch) works correctly. This is the result:
This is Second Mod, what you hear is the raw output right out of the R/2R DAC with no amplification, fed directly into EXT_AUDIO, so I had to pump up the volume to hear something, which explains the huge hiss/background noise. Even ignoring that, it might SEEM to sound like cr*p (and well, of course I captured the worst moment of the song), but indeed it sounds exactly the same as in VICE, so I'm assuming it's sounding correctly (for some reason my YapeSDL doesn't emit any sound, it never did), even more since standalone testing of the DAC has given perfect results. I can't test the other (few) demos that play samples since they all require 256 kB and at the moment I don't have any machine with that much memory.
Next I will assemble and test the amplifier circuit. This is the first time I work on an amplifier so it'll take some time.
But so far, so good!
PS: I will have quite a few audio-related news in the next few weeks, so stay tuned!
Re: Covox Speech Thing - parallel port adapter Holy cow! It was the music? Thanks for the updates it looks very promising. I agree, with the SoundMac approach the C-16s would be out of the fun...
Re: Covox Speech Thing - parallel port adapter Well, we might have a go at the TLC7226 in the future, it's the proper way to do it after all, but that chip alone costs 8.50€, which is probably twice the cost of the whole ReVox as it is now. Besides, I have been fascinated by R/2R DACs since I learned about them at university in... erm, 2002? So finally I couldn't miss the occasion of playing a bit with them .
In the meantime the price of those 11/22K 1% resistors has gone even lower, so I have bought 300 of each. Those should be enough for quite a few ReVox builds .
PS: Apparently the title of the song is "El Galinero", guess it makes sense!
Re: Covox Speech Thing - parallel port adapter If you feel like it, and you have the right hardware, try the WavePlay-SD! It will not automatically detect it, but you can manually select the DigiBlaster mode.
Re: Covox Speech Thing - parallel port adapter @BSZ, I don't have the right equipment right now but I will surely do!
Basic amplifier circuit assembled, things are starting to sound better:
I've been experimenting a bit with the demo in VICE: by configuring a 256kB Hannes expansion the song makes sense! The demo page says that "256K is supported, but not required.", but well, it will sound like my video without the expansion!
Also, this demo is supposed to showcase the SID filters (you can turn them on with F and tweak them with B, H, R, C), but it doesn't seem to use the SID at all, at least in VICE.
I'm puzzled, need to test a bit on a real machine...
UPDATE 3/9: OK, finally I managed to bring some stuff over to France and make some meaningful tests. Here's one of the first ones with the fully assembled board:
I have my opinion but I'm not commenting for the moment :). What d'ya all think instead?
Re: Covox Speech Thing - parallel port adapter Yeah, the 256kB RAM expansion makes the difference. I have now corrected the Second Mod page, adding that, while the demo will apparently load with just 64kB, 256kB are required for the music to play correctly.
I'm not sure how many physical machines exist today, that are able to play these demos! Not many, I guess!
The board already had a place for a low-pass-acting capacitor. I hadn't soldered it yet when I shot the video since I wanted to test different values for it. The original project had 10nF, I ultimately settled to 1.8nF, but I guess it goes down to taste, I will add a note about this.
So, my opinion is that this thing sounds GREAT! I'm not sure how usable it is beyond dedicated demos though, as pushing data to it fast enough is probably quite CPU-intensive, but it's very cheap and easy to build. We have to discuss what to do with it, there are a few options with it: 1. Keep it a standalone board 2. Make it a Digiblaster-like addon for ReSeed/SID cards 3. Merge it with another of the boards I will be announcing soon 4. Do any of the above with a real DAC chip
Due to option 3, I guess it's too early for a final decision .
What I'm not satisfied with is the amplifier circuit. I have used this LM386-based circuit because it is supposedly good-sounding, it has bass-boost, it was ready-made and I had no knowledge of amplifiers. The problem with it is that the MINIMUM gain is 20, and since the signal coming out of the resistor ladder is more than 1V peak-to-peak, it must be attenuated quite a bit or it will distort badly. Now, attenuating a signal just to amplify it again is plain silly IMHO (it kills the S/N ratio), and the bass boosting is not very effective either. I've studied a bit about opamps and I think I can now come up with an amplifier that is better suited for the job (forget about bass boost though). So, whatever option we choose, it will have a brand new amplifier circuit.
Re: Covox Speech Thing - parallel port adapter I suppose the Lotharek's 6502Plus4 CPU replacement fulfills the requirement to have Hannes compatible 256KB RAM. (although it is 512KB SRAM).
It is easy to swap and just need to solder one wire to the mobo. In this way at least some dozens of compatible machines may exist, including mine (if I am right with the compatibility, never tested the mentioned demos).
(OFF: integration of the modules... BTW few months back we have a discussion about how you can integrate more functions, and modules into the small computer. The memory expansion slot due to it's strange pitch is very hard to reproduce, so one of the reasons why Solder chose to make the memory expansion multiplexer with C64 expansion port connectors (widely available,but has less pins). I was just thinking, it such a standard modern connector may exist, that may provide the necessary number of pins (needed for the expansion port), but easy to buy and have a reliable connection. 50 pins of the 264 memory expansion is simply too much (C64 had 44 with more functions, as it can do NMI and real memory expansion with REU). In my mind I had originally the ZX Spectrum cute ROM Cards and a expansion module with 3 or 4 slots you can connect specific smaller cards with different function, and the expansion port extender may have it's own 5V DC power source. The 50 pins of the Expansion slot is a lot, but there is eg SCSI connectors and plugs with 50pin though hole pins, could have reliable connecton, not to mention the pretty cheap IDC 50 pin connectors and sockets)
Re: Covox Speech Thing - parallel port adapter @MMS: Yeah, of course the 6502Plus4 should do (well, some day we will need to resume talking about how >256kB expansions should be handled by software, there were issues, you might have heard in another thread), but you also need to have a Digiblaster or a ReVox, and we know the former is rare and the latter is currently literally unique . But hopefully we'll change that!
Regarding the expansion connector: yes, finding a solution for that will be the main discussion topic for the next version of my LittleSixteen board, as it's the only component that must currently be recovered from an original board (besides TED). The bad news is that no common 50 pin connector exists. The good news is that I have already done something in that regard and I have some boards here for testing, but they're in the queue, ReVox and other audio projects have precedence (and I'm sure you will *love* at least one of them ).
@Spektro: I agree it would be great but unfortunately that requires a lot of circuitry and a serious designer :/.
UPDATE 23/9: I finally had some time to understand how FlexSD works and so I was able to test WavePlay-SD, which works just great. Well done @BSZ!
The following video starts up in TED mode, then I switch to Digiblaster mode, play the wrong song and then get back to the same one first heard on TED ;). The quality improvement is definitely noticeable.
Re: Covox Speech Thing - parallel port adapter @Sukkopera: the sound quality improvement is like when I switched the MOD playback from the PC's internal speaker to my PC Covox Really huge improvement. Those bass sounds
OFF @BSZ It's a shame, but I completely missed the release of Wave Play 264 in 2022, life was simply too complex last year... What a fantastic piece of program! I am totally impressed. 10/10 !
Re: Covox Speech Thing - parallel port adapter Actually no difficulty on your side, I just tried to make a long story short .
The thing is I have two SD2IECs: one I bought from TFW8B at least 5 years ago, the other one I built myself after modifying the SD2IECpluggable design. I wanted to install FlexSD on the latter, since I have no idea about what hardware is in the former and it has a nice case I don't want to break apart (and Google didn't help). Besides, I also wanted to take the occasion to put the bootloader on the latter, as I used to flash the firmware straight into it, since bootloader instructions were unclear.
So it took me a while, but in the end I figured out that the bootloader to use is newboot from here AND that when using it on an ATmega644P, for instance, the high fuse MUST be set to 0x92 rather than to 0x91 as all guides around say. Then you can just put a firmware file in the root of the SD and it'll pick it up.
Oh, of course when I was done I forgot to delete the bin file from the SD and I put it in the other SD2IEC, which instantly flashed itself and got bricked . So I had to dig and finally found out that it is an SW2 architecture with an ATmega1284. This is actually the interesting piece of information that might be worth documenting .
Oh, one more thing: the installed version of SD2IEC can be discovered by reading the error channel right at power-on. That requires a short BASIC program that can easily be found around, or just enter "@" if you have JiffyDOS.
And let me tell you again that WavePlay-SD is some great work!
Re: Covox Speech Thing - parallel port adapter @SukkoPera: Thank you for the explanation. I couldn't find any information about the TFW8B version. But the linked "pluggable" version looks compatible with SW2 ("ShadoWolf2" r1.2.).
The configuration FUSE bits is not exactly overdocumented. There are several problems: the documentation of the chips is also quite chaotic, I think they often just copied from one chip's documentation to another. But the mix-up could also be because certain bits mean different things depending on how much program memory the chip has. I didn't want to write any document on this, because so far the topic hasn't been the construction itself. But it might be worth it, because you would have to make own hardware for it. There would be a lot more possibilities if a few details on the electronics were changed.
No program is needed to retrieve the version if the device is available on unit number 8. BASIC 3.5+ has this built in, type:
PRINT DS$
This command queries the status of the last used¹ drive. After RESET, if no drive has been used, will be unit 8.
(¹For completeness: the last used unitno of disk commands counts, e.g. DIRECTORY, DLOAD. Plain LOAD does not.)
Re: Covox Speech Thing - parallel port adapter Well, now you see what I mean, I couldn't figure out what's inside the TFW8B SD2IEC, so I had to do it through trial & error, but to be honest I just didn't want to touch it to start with, I flashed it with the wrong image by mistake (which actually shouldn't happen, as the bootloader is supposed to pick up only images which are "the right size", and that one wasn't)!
My other SD2IEC is definitely SW2, I only wanted to move the buttons to the front but to make space for that I basically had to touch up every single track and component, so I know it very well .
It's not your fault if the fuses aren't too well documented, unless you're one of the original developers of the SD2IEC firmware . I guess not many people build SD2IEC devices, and those who do probably find out the way I did. Anyway it's now documented here for eternity .
Thanks for the ?DS$ hint, I didn't know about that!
Re: Covox Speech Thing - parallel port adapter An extra addition to the DS$: With JiffyDOS you can also simply send a command to the drive. Send an "X?" command to SD2IEC, and it will return the "long" version string. This includes the information needed to identify the hardware.
(In BASIC you really need a program to do this, there is no simple command.)
Re: Covox Speech Thing - parallel port adapter I have received the new boards, assembled a couple and I'd say that this project is finally complete!
The new amplifier circuit works much better, it does not distort the sound. Actually not much amplification is needed with the 11/22K resistors but it still makes sense to have it, in case someone decides to assemble it with different resistors or just in case. Anyway, there is a jumper on the back of the board that allows to completely bypass the amplifier, for those who do not want to use it.
Unfortunately, the amplifier seems to start oscillating when the "Amplified" output is connected and I have no idea how to fix that, it's already quite a miracle that this thing did not explode . I'd just recommend taking the sound from the "Raw" output for those who desire to process it through external equipment. Since the project is going to be 100% open as usual, I hope someone will be able to fix that in the future, even though it's not really necessary (IMHO that jack could be removed altogether).
I need to write some docs and then I'll release the project. As usual, I'm offering PCBs (and resistors, this time!) to those who want to add support for this board to their programs, just drop me a PM!
EDIT: @Csabo, can you please add the "Digi-Blaster support" tag to WavePlay-SD?