FIRST, I was playing in AGD with sounds to figure how it works and it occurred to me that some noises are quite acceptable for robo/humaniod-speaking or even something better. Did anyone try it via AY sounds? Perhaps, recorded 'sounds' as WAV and restructured to some 4-bit output could give a hint about its params, yes?
SECOND, how I wish there were a library of sound effects, is there any) BTW, how difficult it would be to alter sounds on fly? For instance, I would like the SAME sound played a little different (pitch/volume/compression/etc) without having a dozen of variations as predefined sounds; possible? May be an external procedure?
as far as I recall when I looked at this a while ago, Currah speech only works in 48k mode, so wouldn't work in the editor, and it also uses some of the same memory addresses that AGD uses so would be very fiddly to implement.
I don't exactly know whether this could be useful to your request or not, but I hope it will be Like any other piece of external code, sound effects can be called from within the AGD script by using the ASM command. I did it for recalling sound effects and speech captions in Lost In My Spectrum and Apulija-13.
To do this you must type ASM 205 followed by two other ASMs pointing at the address of the routine to call in little-endian format (low byte first). E.g.:
ASM 205 ASM 48 ASM 117 will recall a M/C routine stored at 30000, because 117 * 256 + 48 = 30000.
I believe it depends on what you want to achieve. My advice is always the same - memory being scarce, it is always preferable to avoid doing in AGD what you can do outside AGD, e.g. redefinable keys routines, menus, end-of-game messages etc. Even sound effects are short, 40-50 bytes long usually, M/C routines, which can be recalled via the ASM commands. Here is an example: the jumping sound effect for Lost In My Spectrum 2.0. The routine is 44 bytes long and is located at 56800, hence it is recalled by the ASM 201 / ASM 224 / ASM 221 sequence from within AGD. However it is relocable and you can use it in your projects at a different address:
LD D, 13 LD E, 15 LD B, 132 L_7536: PUSH BC LD A, (23624) SRL A SRL A SRL A SET 4, A OUT (254), A LD B, D L_7545: NOP NOP NOP DJNZ L_7545 RES 4, A OUT (254), A LD B, E L_754F: NOP NOP NOP DJNZ L_754F INC E INC D NOP NOP POP BC DJNZ L_7536 RET
Today I was able to get the Currah Speech unit to play nicely with AGD. It was relatively straightforward, but I had to compile a special version of AGD with the block buffer moved down to 64512, to give the Currah the space it needs. Once that was done, it worked fine once the game was run in 48k mode.