Nathan, I am emailing you my list of all my MOD, MIDI, S3m, VOC and WAV files. If you want about 3 Mb Zipped, send me a list. My server gets a bit touchy if I send too much somtimes. I expect all the MODs do actually run OK

Thanks guys, I am an idiot I should have noticed it was linked into one specific file, but I thought it searched for any MOD like PLAYMP3.BAS looks for any MP3. So now just drag any MOD onto the FB compiled of below to see more patterms while playing. As my knowledge is mainly limited to BASIC, my next challenge is how to get patterns running likewise in PLAYMP3.BAS Gordon.

'Simple FMOD test for FB

'by Plasma [11-16-2004]

DefSng A-Z

'$Include: 'fmod.bi'

SCREEN 12

Declare Sub ErrorQuit (Message$)

Const FALSE = 0

Const MusicFile = "dne_trtn.mod"

Dim Shared Handle As Long

If FSOUND_GetVersion <= FMOD_VERSION Then

ErrorQuit "FMOD version " + STR$(FMOD_VERSION) + " or greater required"

End If

If FSOUND_Init(44100, 32, 0) = FALSE Then

ErrorQuit "Can't initialize FMOD"

End If

Handle = FMUSIC_LoadSong(Command$)

If Handle = FALSE Then

ErrorQuit "Can't load music file " + CHR$(34) + MusicFile + CHR$(34)

End if

FMUSIC_PlaySong(Handle)

Print "FMOD test for freeBASIC"

Print "Press any key to quit." : SLEEP 2000

REM KALIEDSCOPE originaly Written for the UK BBC Electron

DIM X(3, 3), Y(3, 3), XC%(7), YC%(7)

RANDOMIZE TIMER: RESTORE 500

FOR I% = 1 TO 7

READ XC%(I%), YC%(I%)

NEXT

SCALE1 = 250: SCALE2 = 400: WINDOW

FIN = 0: C = 1: C% = 0

WHILE FIN = 0: CLS

S$ = "A"

FOR P = 1 TO 2: CLS

IF P = 2 THEN S$ = "B"

C = C + 1: IF C = 4 THEN C = 1

FOR L% = 1 TO 6

GOSUB 300: REM CALCS

PC% = INT(RND * 15) + 1: COLOR PC%

IF S$ = "A" THEN K% = 1: GOTO 140

FOR K% = 1 TO 7

140 WINDOW (0 - XC%(K%), 0 - YC%(K%))-(1279 - XC%(K%), 1023 - YC%(K%))

GOSUB 410: REM TRIANGLES

IF S$ = "A" THEN GOTO 180

NEXT K%

180 NEXT L%

REM Attempts to avoid full screen color flood

ST = -600: EN = 600: IF S$ = "B" THEN ST = -50: EN = 1150

CX% = 0: SX% = 0

FOR TX% = ST TO EN STEP 20

SX% = SX% + POINT(TX%, 0)

CX% = CX% + 1

NEXT TX%: TX% = TX% - 20

IF SX% MOD CX% = 0 THEN GOTO 190

SLEEP 2000

190 NEXT P

WEND

300 REM CALCS

IF S$ = "A" THEN SCALE = SCALE2 ELSE SCALE = SCALE1

FOR J% = 1 TO 3

R = SCALE * RND: TH = 1.047 * (RND + .5)

X(1, J%) = R * COS(TH): Y(1, J%) = R * SIN(TH)

XH = X(1, J%) / 2: XV = X(1, J%) * .866

YH = Y(1, J%) * .866: YV = Y(1, J%) / 2

X(2, J%) = YH + XH: Y(2, J%) = -YV + XV

X(3, J%) = YH - XH: Y(3, J%) = -YV - XV

NEXT J%: RETURN

410 REM TRIANGLES

IF INKEY$<>"" THEN STOP

FOR I% = 1 TO 3

PSET (X(I%, 1), Y(I%, 1))

LINE -(X(I%, 2), Y(I%, 2))

LINE -(X(I%, 3), Y(I%, 3)): LINE -(X(I%, 1), Y(I%, 1))

PX% = (X(I%, 1) + X(I%, 2) + X(I%, 3)) / 3

PY% = (Y(I%, 1) + Y(I%, 2) + Y(I%, 3)) / 3

PAINT (PX%, PY%)

PSET (-X(I%, 1), Y(I%, 1))

LINE -(-X(I%, 2), Y(I%, 2))

LINE -(-X(I%, 3), Y(I%, 3)): LINE -(-X(I%, 1), Y(I%, 1))

PX = (-X(I%, 1) + -X(I%, 2) + -X(I%, 3)) / 3

PY = (Y(I%, 1) + Y(I%, 2) + Y(I%, 3)) / 3: PAINT (PX, PY)

NEXT I%: RETURN

FMUSIC_FreeSong(Handle)

FSOUND_Close

End

Sub ErrorQuit (Message$)

print "ERROR: "; Message$

FMUSIC_FreeSong(Handle)

FSOUND_Close

End 1

End Sub

500 DATA 640,514,370,994,910,994,1180,514,910,34,370,34,100,514