CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: PulkoMandy on 21:36, 12 November 20

Title: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 21:36, 12 November 20
Hello there!


Well, new project in progress in PulkoTronics laboratory!


"Willy" is an adapter to use Serdaco's OPL3LPT and S2P soundcards on Amstrad CPC and Amstrad Plus. It connects to the expansion port and allows you to play MIDI music (with S2P) or OPL3 music (with OPL3LPT).


I put some videos on Twitter (test with random notes for MIDI because there is no player yet, and SA2 player adapted from the CPC-ISA version written by Madram a long time ago): https://twitter.com/pulkomandy/status/1326984861442301962 (https://twitter.com/pulkomandy/status/1326984861442301962)


I will be writing documentation on the card and how to use it during the week-end on Shinra website (shinra.cpcscene.net).


For now there are 9 prototype boards available. I would prefer to give these to developers, music composers, or other people who want to support the device by creating something. Let me know if you think you are in this case. Later on I will make a larger batch of final boards (slightly smaller and simplified PCB as I can remove some useless things I put there to experiment with)


[edit]
More details available on Shinra website (https://pulkomandy.github.io/shinra.github.io/willy.html)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 21:58, 12 November 20
Attached a photo of the board in my setup
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: GUNHED on 22:15, 12 November 20
Great thing! Can you please explain how it works?

How does it compare to the LambdaSpeak III MIDI Interface?

I'm a MIDI novice, so please excuse my beginners questions.  :) :) :)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 08:12, 13 November 20
I have seen your videos on twitter, I am a music enthusiast at CPC,  I have hardware like lambaspeak 3 and Playcity, but I am not a developer, I would be interested in having a unit when you release this board to the general public.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 08:22, 13 November 20
I didn't know the LambdaSpeak did this many things, but from what I can see, it offers input and output to connect other MIDI devices.


The S2P is a bit different, it is a musinc synthetiser in itself. So, no input/output. But, it happens to accept MIDI commands for programming it.


For example, in the demo program I send "note on" commands, which are made of 3 bytes: the first ranges from 90 to 9F and tells which "channel" the note is played on. The second is the note number (0 to 127, covering a bit more than a standard piano range), and "velocity" (also from 0 to 127, controls the volume and possibly other parameters of the sound). By default all channels have a piano sound, but they can be reconfigured to any instrument from the "general midi" list (https://en.wikipedia.org/wiki/General_MIDI) with a "program change" command. There are also some special effects (reverb, chorus, ...) available.


With Willy, you need an S2P module: https://www.serdashop.com/S2P


To do the same with LambdaSpeak 3, you would need a Dreamblaster S2 with the traditional MIDI connectors: https://www.serdashop.com/Webwinkel-Product-198933047/Dreamblaster-S2-General-MIDI-Module-Bundle.html (same chip, different interfacing)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: TotO on 08:25, 13 November 20
The DreamBlaster 2 is a really expensive adapter for what it does. Probably better to release your own adapter or include it into your Willy Design as it is around 5€ parts to do it compared to 80€ + extra shipping fees.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 09:14, 13 November 20
Quote from: PulkoMandy on 08:22, 13 November 20I didn't know the LambdaSpeak did this many things, but from what I can see, it offers input and output to connect other MIDI devices.
There was also a simple MC program that plays the AY-3-8912 in the CPC via LambdaSpeak's MIDI IN.

And then there is Speak&SID, which allows you to play the on-board SID chip via MIDI IN (and the AY-3-8912 chip in the CPC). But the software is very primitive (even though it supports polyphonic NOTE ON / OFF messages).

https://youtu.be/4esnHlCg138 (https://youtu.be/4esnHlCg138)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 09:30, 13 November 20
Quote from: TotO on 08:25, 13 November 20
The DreamBlaster 2 is a really expensive adapter for what it does. Probably better to release your own adapter or include it into your Willy Design as it is around 5€ parts to do it compared to 80€ + extra shipping fees.


I am not using the Dreamblaster X2 (which costs 80€) but the S2P. It costs only 35€: https://www.serdashop.com/S2P


And, no, I am not trying to solder QFN chips like this by hand. If you think it's a better option, you can do it. As usual I'll publish the schematics and you can reuse the same IO ports for compatibility. You know it well, the problem is not the price of the components but the time spent assembling and debugging the hardware... I think 35€ is acceptable.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 09:36, 13 November 20
Just to suggest a few other options for MIDI synthesizers to be controlled via CPC:

- any CPC Serial Interface / UART that can do MIDI BAUD RATE @ 8N1 - 31250 bps (USIfAC, ...) can do MIDI OUT (i.e., send MIDI commands to a MIDI instrument from the CPC).

- if you want to connect the CPC to a standard MIDI instrument with DIN MIDI, you only need an additional MIDI breakout board, for example

https://www.tindie.com/products/ubldit/midi-breakout-board-ez/ (https://www.tindie.com/products/ubldit/midi-breakout-board-ez/)

- even without MIDI DIN breakout board, there are a few inexpensive boards that can be controlled directly via UART TTL / TX line, for example, you could connect this one directly to TX of USIfAC (or LambdaSpeak 3 or Speak&SID or ...)

https://www.adafruit.com/product/1381?gclid=Cj0KCQiA-rj9BRCAARIsANB_4ABUSDITsW6lihukWx3lqL6oWVfHyB0aLxGxLRyEnH1ZwfS_K4cJmrUaAo2FEALw_wcB (https://www.adafruit.com/product/1381?gclid=Cj0KCQiA-rj9BRCAARIsANB_4ABUSDITsW6lihukWx3lqL6oWVfHyB0aLxGxLRyEnH1ZwfS_K4cJmrUaAo2FEALw_wcB)

64 polyphonic GM MIDI

- there is also the SAM chip which comes on a breakout board as well, with and without MIDI DIN socket

So, MIDI OUT from the CPC is possible with a number of options. MIDI IN (into the CPC) is much harder.

IMHO, the cheapest option to realize a 64 polyphonic GM MIDI synthesizer for the CPC is hence to use USIfAC (the old one) and the Adafruit board above for 25 $. That's all you need. And Software to be written on the CPC....
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 10:14, 13 November 20
This video, I think I have already shared it on more occasions, I recorded it a long time ago, using the Symbiface III Hardware, you can play midi files of type 0:

https://vimeo.com/478823877
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: TotO on 10:17, 13 November 20
Quote from: PulkoMandy on 09:30, 13 November 20You know it well, the problem is not the price of the components but the time spent assembling and debugging the hardware... I think 35€ is acceptable.
I'm mainly speaking about the fact that your board could include the MIDI interface to not use extra hardware, considering that you are using the S2P to prototype your own sound card around the OPL3.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: TotO on 10:25, 13 November 20
Quote from: PulkoMandy on 09:30, 13 November 20I am not trying to solder QFN chips like this by hand. If you think it's a better option, you can do it.
Yes, there is a better option and I have already done it: Adding a Wave Blaster connector to your OPL3 sound board to allow peoples to add an optional Dream Blaster wavetable on it if they want.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 10:32, 13 November 20
I am using the S2P because it has a parallel interface. The Willy is 3 74HCTxx chips for address decoding and that's it. For a waveblaster interface I would first need to have a serial port, then send its output to the waveblaster device. And on the other side I would need to get the audio out of it and provide some analog stuff to route it to a jack connector. Here, none of this is needed. You just get direct access to the chips (the S2 or the OPL3, depending on what you connect).


The S2P is not used in OPL3 mode. You get an OPL3LPT from Serdaco, connect it to Willy, and that's it. Again, just 3 74HCTxx chips to provide address decoding, and I can reuse all the work of Serdaco to connect the OPL3, the DAC, the analog stage for audio output (which I have no knowledge about and don't want to dig into). So I have a solution that is simple and quick to assemble.


It makes my job very simple here. Maybe you should give me some time to write and publish the documentation before commenting about the design of the card and how to improve it?



Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: TotO on 10:50, 13 November 20
OK, I though the "parallel to expansion address decoder" was only for the prototyping purpose and not the final product.
Sure, if you do not have the MIDI signal, you can't do more than using the S2P board for what it is. I understand.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 17:18, 13 November 20
Quote from: PulkoMandy on 10:32, 13 November 20
I am using the S2P because it has a parallel interface.
Why would you do that? All that is required, really, is a TTL Rx-Tx (UART Send/Receive) line. Why not do it with a proper serial interface and standard MIDI? I understand that the device you are using has a parallel port... but is there an advantage to using a parallel port rather than the $ 25 GM MIDI synthesizer via UART from Adafruit above? That one could be hooked up directly to USIfAC.

EDIT: I will post a video of my USIfAC +

https://learn.adafruit.com/adafruit-music-maker-featherwing/midi-synth
CPCGM Midi Synty (~ 30 $ costs). 
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 17:32, 13 November 20
If you use standard MIDI baudrate of 31520 baud you may be limited in how fast you can push the data to the device (it depends if your serial interface has a buffer to make up for it). With a parallel interface there is no such limitation, you can just send the datas as fast as the z80 is able to. I think it is also a little easier to program this way.


The other thing is my interface can be used with both the S2M (for MIDI) or the OPL3LPT (for OPL3 / Adlib music). For the latter there is no serial port option and that is what I was initially interested in. It just happens that an extra jumper to change a setting made the same interface usable for both OPL3 and S2P, so, I just added it.


It is also a lot more compact, no extra wires and interfaces with separate power supplies on my desk. Everythink seats neatly on the MotherX4 board.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 17:37, 13 November 20
Another thing to point out for folks who like to use the Serial Interface to the SAM2695 (which is the chip used by PulkoMandy) here:

There are SAM2695 boards that have a MIDI DIN on board such as the

https://www.profusionplc.com/parts/sam2695-ek (https://www.profusionplc.com/parts/sam2695-ek)

Or

https://moderndevice.com/product/fluxamasynth-shield/ (https://moderndevice.com/product/fluxamasynth-shield/)
https://www.serdashop.com/waveblaster (https://www.serdashop.com/waveblaster)

These don't require a parallel port and can be directly connected already to any existing CPC serial interface that does MIDI baud rate.



Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 17:40, 13 November 20
Quote from: PulkoMandy on 17:32, 13 November 20If you use standard MIDI baudrate of 31520 baud you may be limited in how fast you can push the data to the device (it depends if your serial interface has a buffer to make up for it). With a parallel interface there is no such limitation, you can just send the datas as fast as the z80 is able to. I think it is also a little easier to program this way.

Yes, but Standard MIDI should be fast enough for anything MIDI ... I am only commenting on the MIDI aspect. Are you also sending audio / MP3 / OGG samples as well?  So I doubt that you need anything faster than standard MIDI. (That's not a mass storage device, is it?)

Wrt 5V power supply, you should be able to power USIfAC + soundboard from the CPC 5V.
Quote
It is also a lot more compact, no extra wires and interfaces with separate power supplies on my desk. Everythink seats neatly on the MotherX4 board.
I doubt that this is the case - parallel interface is kind of bulky... serial only require 1 wire / line ;-)

So if you want the SAM2695, then the
https://www.serdashop.com/waveblaster (https://www.serdashop.com/waveblaster)
would do + USIfAC one TX -> RX wire + 5V... I don't think you can get more minimal than that.

The SAM2695 is the better choice, but for cheap CPC GM MIDI only, the VS1053 + USIfAC is also a good choice, I only wanted to mention it for folks that don't want to wait ;-)

I do think that your project is interesting though (see my like above), don't get me wrong! I only wanted to point out some other options as well. And I would have chosen other "components", but it's your project, not mine :-)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 18:58, 13 November 20
Quote from: VintageAdvantage on 17:40, 13 November 20
Yes, but Standard MIDI should be fast enough for anything MIDI ... I am only commenting on the MIDI aspect. Are you also sending audio / MP3 / OGG samples as well?  So I doubt that you need anything faster than standard MIDI. (That's not a mass storage device, is it?)


It depends what you want to do. If the goal is just to play MIDI files and do nothing else, yes, fine. If the goal is, for example, to use this in a game, you want the sound player code to be quite fast and able to send a complete MIDI frame in a time as short as possible when it is called. And in a complex MIDI file there can be a few dozen bytes to send in some frames, at 3 bytes per note without having any program changes or other special effects it goes up quite fast.


So it depends on the buffers available in the usifac, can it store all these bytes so that the Z80 can continue and do something else? Or will the Z80 be desperately waiting for space in the serial port buffer?


Also I'm reading the USIFAC forum thread and I see that it puts the CPC into wait while doing things. So, OUT instructions to send data there will already take more time than usual. This interface doesn't, so your Z80 keeps running at full speed while you use it.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 19:21, 13 November 20
Quote from: PulkoMandy on 18:58, 13 November 20

It depends what you want to do. If the goal is just to play MIDI files and do nothing else, yes, fine. If the goal is, for example, to use this in a game, you want the sound player code to be quite fast and able to send a complete MIDI frame in a time as short as possible when it is called. And in a complex MIDI file there can be a few dozen bytes to send in some frames, at 3 bytes per note without having any program changes or other special effects it goes up quite fast.


So it depends on the buffers available in the usifac, can it store all these bytes so that the Z80 can continue and do something else? Or will the Z80 be desperately waiting for space in the serial port buffer?


Also I'm reading the USIFAC forum thread and I see that it puts the CPC into wait while doing things. So, OUT instructions to send data there will already take more time than usual. This interface doesn't, so your Z80 keeps running at full speed while you use it.
MIDI doesn't require that much bandwith... the MIDI standard and baud rate was established in 1983. It is and was fast enough for MIDI note data, otherwise we would have seen a successor much sooner ;-)

I mean, we had all this before - remember Doom and GM adapters? In 1994, I had a Yamaha TG 33 GM MIDI Module connected to my PC via SoundBlaster MIDI Out.   YOu can play whole polyphonic 64 channel symphonies with that standard MIDI bandwidth.

Not my video, but this is how it sounded for MIDI Doom PC in 1993 ;-)

https://youtu.be/tT_dUpSYwZU (https://youtu.be/tT_dUpSYwZU)

I doubt that CPC games will need something better. This is what you can and could do with standard GM MIDI.

I think its great if the CPC adopts GM for MIDI . Like the PCs did in the 90s.

And if you don't like USIfAC for waitstates, then use Speak&SID or LambdaSpeak 3 that doesn't need waitstates for serial... it doesn't really matter which of the dozend CPC serial interface cards you are using as long as they are doing 31250 bps.

Here is an example: MIDI IN via LambdaSpeak 3 from the Microkorg keyboard (no sound from there, only for MIDI input), then sound from the CPC via AY-3-8912, and then also MIDI OUT of the MIDI IN notes (= MIDI THROUGH) via LambdaSpeak 3 to the Yamaha QY100 sound module. So this is MIDI OUT to a GM module via LambdaSpeak 3. Of course MIDI OUT could also be programmed (even from BASIC) to play the Yamaha QY100. In fact, the MIDI IN -> MIDI OUT is performed by the CPC MC program, not by the hardware.

https://youtu.be/6QqvawZSxjA (https://youtu.be/6QqvawZSxjA)

I must say, given the availability of these old "90s GM expanders" (for 50 $ on Ebay), I would probably just get one of these instead of a modern "mini MIDI GM breakout card". But then you need proper MIDI DIN.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 19:38, 13 November 20
And, btw, the BAUD rate of the SAM2695 is 31250 BPS TTL MIDI max anyhow, so you can't go faster than this no matter if you are using a serial or parallel interface to the CPC.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 19:46, 13 November 20
I am not using the serial mode but the parallel mode of the SAM. That's the point, there is no baudrate involved here. I can send bytes as fast as I want with OUT instructions and don't need to wait between each byte to make sure I don't overflow a slow serial link.


It's not a matter of the number of bytes you can send, but of sending them quite fast in a single burst, and then use the remaining CPU time to do other things. Yes, it will not allow me to play better music, in most cases. It will allow me to play the same music, using less CPU time so I can do something else at the same time.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 19:53, 13 November 20
Quote from: PulkoMandy on 19:46, 13 November 20I am not using the serial mode but the parallel mode of the SAM. That's the point, there is no baudrate involved here. I can send bytes as fast as I want with OUT instructions and don't need to wait between each byte to make sure I don't overflow a slow serial link.

So you are saying that you need to send MIDI message with more than 31250 BPS ~ 3.8 KB/second because standard MIDI is not fast enough for your applications... hmm... Curious to see games taking advantage of that. Need a big memory expansion then for that "HighDef" sound.

Sorry, I don't buy that argument. The CPC interface to the serial card is also parallel. Buffer overflow (in the serial card) shouldn't even happen with standard MIDI...
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Skunkfish on 19:56, 13 November 20
Does WILLY stand for anything?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 20:09, 13 November 20
After all, it doesn't really matter if parallel or serial... I was just curious about the rationale.
Fine.

If you can get software devlopers lined up to support the product, I will buy one for sure! I'd love to have a GM MIDI sound module for the CPC :)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: genesis8 on 20:12, 13 November 20
Quote from: Skunkfish on 19:56, 13 November 20
Does WILLY stand for anything?
WILL You like MIDI and OPL3 on Amstrad CPC ? Just a proposal !
By the way, you dont mention the Covox4 also by Serdashop, but it should also be used with WILLY, except using more CPU to send the data ?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 20:18, 13 November 20
Quote from: genesis8 on 20:12, 13 November 20
WILL You like MIDI and OPL3 on Amstrad CPC ? Just a proposal !
By the way, you dont mention the Covox4 also by Serdashop, but it should also be used with WILLY, except using more CPU to send the data ?
Is there anything different in a Covox4 than a DigiBlaster? I thought we had all this "poor mans" parallel-port->DAC conversion stuff for the CPC already...
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: genesis8 on 20:24, 13 November 20
Quote from: VintageAdvantage on 20:18, 13 November 20
Is there anything different in a Covox4 than a DigiBlaster? I thought we had all this "poor mans" parallel-port->DAC conversion stuff for the CPC already...
Directly quoted from Serdashop page for the Covox 4 (https://www.serdashop.com/CVX4 (https://www.serdashop.com/CVX4)) : CVX4 uses very high precision 0.1% all same value resistors, and a reverse engineered schematic (based on a real original covox) for excellent 8 bit sound. Other DIY clones use 1% or 5% resistors, different schematic, ...you can compare... CVX4 sounds way better...For an example of the Covox 4 sound card, look the video I did of it on my Amstrad PPC 640 : https://youtu.be/vPtikDYTh5E (https://youtu.be/vPtikDYTh5E) Beware I think I was using old PC speakers in this video and it is taken with my phone, so quality with good speakers and captured directly should be even better.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: VintageAdvantage on 20:27, 13 November 20
Thanks, and it does have a reasonable price.
Seems they went to great lengths to hand select the precision resistors... I am wondering if a real DAC chip would have also been an option here, like in the Amdrum.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 20:53, 13 November 20
Quote from: Skunkfish on 19:56, 13 November 20
Does WILLY stand for anything?


Not exactly. There is a very silly naming system for my interfaces and I guess it makes sense only to me.


FlashGordon (https://en.wikipedia.org/wiki/Flash_Gordon) is inspired by Silver Surfer (http://wiki.icomp.de/wiki/Silversurfer)
Albireo (https://en.wikipedia.org/wiki/Albireo) is inspired by Deneb (https://www.vesalia.de/e_deneb.htm)
And now Willy (https://en.wikipedia.org/wiki/Free_Willy) is named after Flipper (http://amiga.resource.cx/exp/delfinaflipper)


Well, now you know, but I guess it isn't particularly helpful.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 21:02, 13 November 20
Quote from: genesis8 on 20:12, 13 November 20
WILL You like MIDI and OPL3 on Amstrad CPC ? Just a proposal !
By the way, you dont mention the Covox4 also by Serdashop, but it should also be used with WILLY, except using more CPU to send the data ?


No, the Covox one won't work with this interface, it would need one more chip. It is indeed similar to the digiblaster, and if you get the SoundPlayer NG from Futurs', it has an integrated resistor network which should give quite good quality (unlike the previous versions using separate resistors). I think there is no need for a more complex interface here?


I think the TND2LPT will work, and the CMS2LPT will partially work (only one of the two SAA1099 chips can be addressed, it would also need an extra chip). But I don't own these to test and check, and I think they are not extremely useful (quite similar to what the CPC can already do)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 21:28, 13 November 20
I have now put an information page on Shinra website  (https://pulkomandy.github.io/shinra.github.io/willy.html)with better pictures of the board, programming information, and other details. I will continue updating it as software becomes available.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 21:54, 06 June 21
Hi!


No one wanted to do something with this hardware. So, finally I wrote some code myself.


Here is a player for uncompressed VGM files: https://framagit.org/shinra/vgmplay


It can play files using the OPL2 and OPL3 chips for now (so mostly PC and some Arcade games). It can only play uncompressed files, so the memory is rather quickly filled up with sound data (these are like YM files, register dumps to write to the chip). Timings in VGM files are at 44100Hz resolution but I'm converting them to 50Hz or 300Hz and it seems to sound similar enough to the original music.


Here is a little demo: https://twitter.com/pulkomandy/status/1401634143881121798


I think this means the interface is now ready for buying since it is actually useful. So let me know if you want one :)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 11:40, 07 June 21
I would love a unit.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: kawickboy on 15:11, 07 June 21
All CPC/CPC+ compatible ?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 15:39, 07 June 21
Yes (except the GX4000 because there is no expansion port, of course)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: genesis8 on 19:43, 07 June 21
Doh, I thought I had already wrote about willy on my web site, and in fact not really.
There are so many things in my queue of things to be written...
Well in a few minutes.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: hsimpson on 15:19, 08 June 21
Quote from: PulkoMandy on 21:54, 06 June 21I think this means the interface is now ready for buying since it is actually useful. So let me know if you want one

I would love to buy one :). What would it cost with shipping (Poland)?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 15:24, 08 June 21
The cost is 10€ and it includes shipping.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: hsimpson on 15:41, 08 June 21
In that case, one piece, please :).
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Nitro on 16:00, 08 June 21
I would be interested in one as well. Could you count me in?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 16:33, 08 June 21
Yes.


Last one for this first batch.


I will take preorders from now on for a second batch (I will wait a few days to know how many boards I should order).
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: genesis8 on 20:41, 08 June 21
One for me on the next batch if possible, and dont say to me that you didnt think about Arnold and Willy !
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: kawickboy on 10:45, 09 June 21
2 for the new batch please. Is it possible to choose between edge or centronics plug ?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 10:56, 09 June 21
The connector is "Mother X4 compatible" HE10. I do not provide any cable or Mother X4 board currently, you have to get one separately.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: GUNHED on 15:08, 09 June 21
Quote from: PulkoMandy on 15:24, 08 June 21
The cost is 10€ and it includes shipping.
Awesome price!!! Please two for me too (next batch).
Would be nice if I can support them with some software, even if I'm having much to do at the moment.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: SkulleateR on 15:20, 09 June 21
Would the M4 (or other Mass Storage Solution) be fast enough to deliver the data fast enough for streaming so bigger files than 64k "could" be played as well??
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 15:31, 09 June 21
Probably. I could make some tests with UniDOS which provides an API for loading data from files in a modern and efficient way.


But the files should also compress very well and that's the typical thing to do (for example with YM / AYC files). This works because the data is very repetitive. There is also some CPU usage and size gains possible by optimizing the files before even compressing them. The files I'm testing with were generated from running games in emulators and capturing the register writes, and they tend to have very precise timing matching exactly what the game did. I don't really use this timing so I could remove most of the "wait" instructions (in some files that will be 25 to 50% of the data...). It would also simplify the player if all timings are expressed in 50Hz frames, and that would also probably help with the compression strategy.


About the price: an important reminder that this is only an adapter board. You need to buy the OPL3 or MIDI module separately from Serdaco. This is why this interface is cheap: there is only some address decoding logic and some connectors on it.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: RockRiver on 14:50, 15 June 21
Quote from: PulkoMandy on 21:54, 06 June 21
Here is a player for uncompressed VGM files: https://framagit.org/shinra/vgmplay (https://framagit.org/shinra/vgmplay)
Hi PulkoMandy !!!
Do you think that VGMplay would works with AMSDAP ? (msx cartridge adaptor for cpc) and MoonSound (OPL3) ???
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 15:47, 15 June 21
It could be adjusted to use different IO ports to work there, I think
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: RockRiver on 16:39, 15 June 21
(maybe then through MSXVR/moonsound "emulated" and CPC "virtualized"  :o 8) )


on real hard world:
TMT LOGIC, Prodatron and crossover MSX-CPC moonsound owners will be very happy...

I know it's crazy. But I will like it a lot.
;)
thanks for your work, hardware, software and time. Mate!!


I'll try and check CPC + vgmplay + AMSDAP + MoonSound and report you...
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: HAL6128 on 19:36, 15 June 21
Every MSX cartridge should work with AMSDAP apart from memory mapped cartridges. The MSX ports are translated into &FFxx whereas xx is the MSX port address.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: TotO on 01:01, 16 June 21
Quote from: HAL 6128 on 19:36, 15 June 21
The MSX ports are translated into &FFxx whereas xx is the MSX port address.
Exactly.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 07:14, 16 June 21
Quote from: RockRiver on 16:39, 15 June 21
(maybe then through MSXVR/moonsound "emulated" and CPC "virtualized"  :o 8) )


on real hard world:
TMT LOGIC, Prodatron and crossover MSX-CPC moonsound owners will be very happy...

I know it's crazy. But I will like it a lot.
;)
thanks for your work, hardware, software and time. Mate!!


I'll try and check CPC + vgmplay + AMSDAP + MoonSound and report you...
I also have an AMSDAP in the CPC, with the Symbiface III, I also have the MSX cartridge Monster Sound FM Blaster ( compatible Moonsound ), what you are saying is could it work on the CPC? playing music files? .... i'm waiting for the willy adapter to arrive, by the way  :D
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: deepfb on 07:17, 16 June 21
Quote from: PulkoMandy on 16:33, 08 June 21Last one for this first batch.

I will take preorders from now on for a second batch (I will wait a few days to know how many boards I should order).
Hi, PulkoMandy. I would buy two units from the second batch, if possible. Thank you!
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: RockRiver on 10:02, 18 June 21
Quote from: PulkoMandy on 15:47, 15 June 21
It could be adjusted to use different IO ports to work there, I think

- #FF7E - #FF7F

http://map.grauw.nl/resources/msx_io_ports.php (http://map.grauw.nl/resources/msx_io_ports.php)


Then,  this is same ports on VGMplay ?
:)
I will check PulkoMandy's VGMplay CPC with AMSDAP/MoonSound OPL4 Cartridge; and MSXVR coder would implement MoonSound device emu on CPC "virtual machine"
8)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 12:42, 18 June 21
VGMPlay uses the Willy ports: FEBC, [/size]FEBD, and [/size]FEBE. But it can be recompiled to use different ports.
[/size]
[/size]Note that for OPL3/OPL4, at least 3 ports are needed, this is because there are more than 256 registers, so an address bit is used to extend the register selection port.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: RockRiver on 13:02, 18 June 21
Quote from: PulkoMandy on 12:42, 18 June 21
VGMPlay it can be recompiled to use different ports.
thanks!!!
special VGMplay CPC version for AMSDAP/MoonSound and MSXVR users...
please!!

Alberto from Vikalb/MSXVR coders can implement and is interested in Moonsound emu to MSXVR CPC VirtualMachine


great!!!
more users for your software and our loved system
CPC for ever!!!


chiptune for the people!!!
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 13:17, 18 June 21
Preorders updates: currently I received preorders for 13 adapters. So I can plan for a batch of 20, unless I receive a lot more orders.


Summary of planned changes since the first version: only small changes, I had put some config jumpers on the first board that were in fact not needed. So I have soldered them in fixed positions. On the new version these are removed and I managed to make the board a little bit smaller again.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: RockRiver on 15:05, 19 June 21
@Pulko, nowadays trying to mod your VGMplayer to AMSDAP/MoonSound ports... if i cannot, I'm bad with assembler, I will cry to you ha ha ha
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 15:18, 19 June 21
I think you need to change:


Line 7: replace FE with FF (it is the high byte of the port)
Lines 59 and 73: replace BC and BE with the low byte of the register select addresses for OPL3 bank 1 and bank 2

Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Joseman on 22:11, 22 June 21
Quote from: PulkoMandy on 13:17, 18 June 21
Preorders updates: currently I received preorders for 13 adapters. So I can plan for a batch of 20, unless I receive a lot more orders.


Summary of planned changes since the first version: only small changes, I had put some config jumpers on the first board that were in fact not needed. So I have soldered them in fixed positions. On the new version these are removed and I managed to make the board a little bit smaller again.
Hi
I would like to have 1 adapter too!
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: hsimpson on 17:38, 23 June 21
@PulkoMandy (https://www.cpcwiki.eu/forum/index.php?action=profile;u=26), Package arrived safely. Thanks a lot :).
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Nitro on 20:04, 23 June 21
@PulkoMandy (https://www.cpcwiki.eu/forum/profile/?u=26): Mine arrived too! Thanks for the quick dispatch!Now I need to grab an OPL3LPT...
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 07:37, 25 June 21
I have also received my unit and now also have to purchase the other necessary hardware, but are you going to share your player to play VGM music? @PulkoMandy (https://www.cpcwiki.eu/forum/index.php?action=profile;u=26)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 07:48, 25 June 21
The player is available here: https://framagit.org/shinra/vgmplay
There is a link from the Willy page on http://shinra.cpcscene.net but no one reads user manuals, right?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: GUNHED on 14:32, 26 June 21
Quote from: PulkoMandy on 07:48, 25 June 21
... but no one reads user manuals, right?
Absolutely no one, my experience too.  :-\ :-X
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 13:59, 29 June 21
Current preorder list:


- Genesis8 (x1)
- Abraxas_Clone (x3)
- kawickboy (x2)
- GUNHED (x2)
- Proteus (x3)
- deepfb (x2)
- Rambler (x1)
- Joseman (x1)


I have ordered the PCBs today, usually it takes about 3 weeks for them to be produced and shipped. Then I will start assembling and shipping the devices.


I have ordered 30 PCBs so I will have some stock left. This means you can continue to place orders if you want to.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 17:32, 29 July 21
Hello,


Everyone who preordered a board should have a message with payment instructions now.


If you want to order a Willy adapter, I have several more left, let me know!
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: GUNHED on 20:02, 04 August 21
Thanks for the Willys... Looking great!!! Now waiting for modules...

Meanwhile some questions...
- On the PC printer port, which signals are there at which pins?
- Can the port be used for other LPT expansions too?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 20:23, 04 August 21

Following standard parallel port numbering:Pin 14 is active (low) when:
Pin 16 is active when:
Pin 17 is configured with a jumper:
This may work for some other parallel port expansions as well, but not all of them (they don't always use the control pins in the same layout, sadly). It will probably not really work for printers (no BUSY signal, and a few other things are missing)


The available addresses on the jumper setting. By moving the jumper you can decide at which address you want to map the Willy device:
The range FEB4 to FEB7 is not available because it is used by the UART chip in Albireo and that would result in a conflict if both cards are  used together.


Maybe I will make other hardware using this port, it is quite generic if you need:
- No more than 4 writable registers
- No more than 2 readable registers
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: GUNHED on 15:10, 05 August 21
Thank you very much!!!
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: OffseT on 08:47, 13 September 21
I added a video on http://amsnet.chez.com which demontrates several things:

On the video, border color illustrates CPU usage:

Of course VGM format is not that good (huge and overkill), but we can see how low is the CPU usage to handle the OPL.
Now, that's true that just playing old OPL musics is not that intesresting, but good trackers exist for this chip...
With a proper player and good artists we could have funny things in next CPC games and demos. 8)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 11:02, 13 September 21
Quote from: OffseT on 08:47, 13 September 21OPL3LPT

That VGM player will it work with an OPL2PLT card?
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 12:30, 13 September 21
It should, yes (for OPL2 files).
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 14:53, 29 January 22
Hello,


With help from LambdaMikel (well, more than help, he wrote all the code and I just had to change the OUT address to adapt it to my hardware), we now have a way to play MIDI music on Willy+S2P!


https://twitter.com/i/status/1487378687242690561
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 15:51, 29 January 22
Good news 👏👏👍👍
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: GUNHED on 22:30, 30 January 22
Yes, he's a very nice and supportive guy.  :) :) :)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Prodatron on 22:27, 04 February 22
I am currently porting the SA2 player to SymAmp, and I can already play some songs, which is cool, thanks, PulkoMandy :)
I have one question: the SA2 player by Madram is working nice, but most commands don't seem to be implemented? It doesn't seem to be a problem with most of the SA2 modules, but e.g. the BPM works bad (like "dear rob")Anyway, it's a very cool hardware project! :)
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: PulkoMandy on 09:53, 05 February 22
Yes, unfortunately the SA2 player does not implement all commands. The BPM is maybe not so easy (or at least it will not be completely accurate) with only the 300Hz ticker of the CPC. Initially I wanted to use the OPL3 timer, but it turns out this is in fact not accessible on the OPL3LPT card.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Prodatron on 17:05, 05 February 22
https://www.youtube.com/watch?v=r1iELdN3H0I
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Prodatron on 18:05, 05 February 22
Here you can see the SA2 plugin for SymAmp in action. I already added the speed command (F), I just use the simple formular
ticks=750/BPM
With the exception of pattern break no other commands are implemented yet, so it's quite interesting, that many modules already sound good. I will probably implement some of the commands as soon as I find out how exactly to manipulate the frequencies and the volumes.
The source code of an x86 DOS player for the Surprise! Adlib Tracker 2 is included here...
https://adplug.github.io/library/files/SurpriseAdlibTracker2.zip
...so it should be quite easy to add the other commands.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: XeNoMoRPH on 20:39, 05 February 22
SymAmp, the ultimate player for Amstrad CPC !!!
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Prodatron on 22:51, 14 February 22
Here is a new video:


https://youtu.be/jOsQIzqdpRs

Most effects are now implemented:
- arpeggios
- slide up
- slide down

- portamento
- portamento + volume slide

- volume slide
- set volume

- pattern break
- speed

"vibrato" and "release" are missing, as well as these special arpeggio instruments, no idea about them currently.

It always seems to be a good idea to take an existing code and port/use it. This is probably what MadRam thought when porting the x86-based "QDPlayer" (yes, "quick and dirty", at least the austrian guy kept the humor :) ) for the SA2 format (Surprise! Adlib Tracker 2) in 2000-something. He was able to play SA2 files (Adlib = OPL2) on the CPC via the CPC-ISA project, which was great!
Anyway I think it would be better to recode everything, as the original x86 code is IMHO shit. I tried to remove most of the original stuff and it's quite ok now.
Title: Re: WILLY - Soundcard adapter (MIDI and OPL3)
Post by: Matej on 23:05, 11 October 22
@PulkoMandy - can I buy 2x adapter 
Powered by SMFPacks Menu Editor Mod