The sound effect thread - Printable Version

+- Forum (
+-- Forum: Compilers and Computer Languages (
+--- Forum: ZX Basic Compiler (
+---- Forum: How-To & Tutorials (
+---- Thread: The sound effect thread (/showthread.php?tid=1891)

The sound effect thread - worcestersource - 02-19-2022

Hello everyone,

I thought this would be a nifty place to pop some routines to make sound effects without resorting to asm.

sub soundBwop()

    dim x, y as uByte

    do until x = 255

        out 254, (y * 8)

        let y = x

        do until y > 239

            let y = y + 16


        let x = x + 1


end sub

Which makes a nice 'bwop' sound. it'll also change your border colour, so add the border value to the out statement to stop it changing colour. For example, for the a blue border:
out 254, (y * 8) + 1

You can play around with this, such as changing the 16 for an 8, or making y count down so the loop duration gets longer each time.


RE: The sound effect thread - boriel - 02-19-2022

A "classic" one made with beeps (will disrupt your interruptions a bit):

SUB explosion
    BEEP 0.01,24
    BEEP 0.01,0
    BEEP 0.01,-2
    BEEP 0.01,-3
    BEEP 0.01,-5


RE: The sound effect thread - Jbizzel - 02-20-2022

I use this white noise one all the time...

SUB noise ()

noise:    ld e,250          ; repeat 250 times.
        ld hl,0            ; start pointer in ROM.
noise2:    push de
        ld b,32          ; length of step.
noise0:     push bc
        ld a,(hl)       ; next "random" number.
        inc hl          ; pointer.
        and 248          ; we want a black border.
        out (254),a        ; write to speaker.
        ld a,e           ; as e gets smaller...
        cpl                ; ...we increase the delay.
noise1:    dec a              ; decrement loop counter.
        jr nz,noise1       ; delay loop.
        pop bc
        djnz noise0       ; next step.
        pop de
        ld a,e
        sub 24          ; size of step.
        cp 30             ; end of range.
        ret z
        ret c
        ld e,a
noise3:    ld b,40            ; silent period.
noise4:    djnz noise4
        dec a
        jr nz,noise3
        jr noise2

end asm

RE: The sound effect thread - worcestersource - 02-23-2022

Fantastic effect!