as released 2002-12-25
This commit is contained in:
commit
5b05925be2
506 changed files with 175402 additions and 0 deletions
187
audiolib/AUDIO.MAK
Normal file
187
audiolib/AUDIO.MAK
Normal file
|
@ -0,0 +1,187 @@
|
|||
.OPTIMIZE
|
||||
|
||||
version = production
|
||||
#version = debugging
|
||||
|
||||
timbre_file = gmtimbre
|
||||
#timbre_file = leetimbr
|
||||
|
||||
prg_dir = .
|
||||
obj_debugging = $(prg_dir)\objdb
|
||||
obj_production = $(prg_dir)\obj
|
||||
obj_dir = $(obj_$(version))
|
||||
lib_dir = $(prg_dir)\lib
|
||||
output_dir = $(prg_dir)
|
||||
main_dir = $(prg_dir)\source
|
||||
header_dir = $(main_dir)
|
||||
tasm_include_dir = /i$(main_dir)
|
||||
|
||||
model = f
|
||||
compiler = w
|
||||
lib_filename = audio_$(compiler)$(model).lib
|
||||
lib_name = $(obj_dir)\$(lib_filename)
|
||||
final_lib = $(output_dir)\$(lib_filename)
|
||||
|
||||
.h : $(header_dir)
|
||||
.c : $(header_dir)
|
||||
.asm : $(header_dir)
|
||||
.obj : $(obj_dir)
|
||||
|
||||
offlib_files = gf1_osf.lib
|
||||
lib_files = gf1_osf.lib &
|
||||
pawe32.lib
|
||||
|
||||
#object_files = &
|
||||
object_files = $(timbre_file).obj &
|
||||
al_midi.obj &
|
||||
awe32.obj &
|
||||
blaster.obj &
|
||||
debugio.obj &
|
||||
dma.obj &
|
||||
dpmi.obj &
|
||||
fx_man.obj &
|
||||
gus.obj &
|
||||
gusmidi.obj &
|
||||
guswave.obj &
|
||||
irq.obj &
|
||||
ll_man.obj &
|
||||
midi.obj &
|
||||
mpu401.obj &
|
||||
multivoc.obj &
|
||||
mv_mix.obj &
|
||||
mv_mix16.obj &
|
||||
mvreverb.obj &
|
||||
music.obj &
|
||||
pas16.obj &
|
||||
pitch.obj &
|
||||
sndscape.obj &
|
||||
sndsrc.obj &
|
||||
task_man.obj &
|
||||
user.obj
|
||||
|
||||
offobject_files = blaster.obj &
|
||||
debugio.obj &
|
||||
dma.obj &
|
||||
dpmi.obj &
|
||||
fx_man.obj &
|
||||
gus.obj &
|
||||
guswave.obj &
|
||||
irq.obj &
|
||||
ll_man.obj &
|
||||
multivoc.obj &
|
||||
mv_mix.obj &
|
||||
pas16.obj &
|
||||
pitch.obj &
|
||||
sndscape.obj &
|
||||
sndsrc.obj &
|
||||
task_man.obj &
|
||||
user.obj
|
||||
|
||||
|
||||
msg_debugging = Creating debugging library...
|
||||
tasm_debugging = /t /zi /p /mx /w2 $(tasm_include_dir)
|
||||
wcc_debugging = /zq /w4 /d2 /i=$(header_dir)
|
||||
wlink_debugging =
|
||||
|
||||
gus_debugging = /zq /w4 /d2 /i=$(header_dir)
|
||||
gusmidi_debugging = /zq /w4 /d2 /i=$(header_dir)
|
||||
multivoc_debugging = /zq /w4 /d1 /omaxne /zp4 /5r /zu /d2 /i=$(header_dir)
|
||||
pas16_debugging = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
task_man_debugging = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
midi_debugging = /zq /w4 /d2 /zu /i=$(header_dir)
|
||||
al_midi_debugging = /zq /w4 /d2 /zu /i=$(header_dir)
|
||||
|
||||
msg_production = Creating production library...
|
||||
tasm_production = /t /zi /p /mx /w2 $(tasm_include_dir)
|
||||
#tasm_production = /m /oi /zi $(tasm_include_dir)
|
||||
wcc_production = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
wlink_production =
|
||||
|
||||
gus_production = /zq /w4 /d2 /i=$(header_dir)
|
||||
gusmidi_production = /zq /w4 /d2 /i=$(header_dir)
|
||||
multivoc_production = /zq /w4 /d1 /omaxne /zp4 /5r /zu /i=$(header_dir)
|
||||
music_production = /zq /w4 /d1 /omaxne /zp4 /5r /zu /i=$(header_dir)
|
||||
pas16_production = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
task_man_production = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
midi_production = /zq /w4 /d1 /omaxnet /zp4 /5r /zu /i=$(header_dir)
|
||||
al_midi_production = /zq /w4 /d1 /omaxnet /zp4 /5r /zu /i=$(header_dir)
|
||||
|
||||
$(final_lib) : $(lib_name)
|
||||
copy $(lib_name) $(final_lib)
|
||||
|
||||
$(lib_name) : $(object_files) audio.mak
|
||||
@echo $(msg_$(version))
|
||||
%create temp.lnk
|
||||
for %i in ($(object_files)) do %append temp.lnk -+$(obj_dir)\%i
|
||||
for %i in ($(lib_files)) do %append temp.lnk -+$(lib_dir)\%i
|
||||
wlib $^@ /n /b @temp.lnk
|
||||
del temp.lnk
|
||||
|
||||
.asm.obj :
|
||||
tasm $(tasm_$(version)) $[* $(obj_dir)\$^&
|
||||
|
||||
.c.obj :
|
||||
wcc386 $(wcc_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
|
||||
al_midi.obj : al_midi.c dpmi.h interrupt.h sndcards.h blaster.h user.h al_midi.h _al_midi.h ll_man.h
|
||||
wcc386 $(al_midi_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
awe32.obj : awe32.c dpmi.h blaster.h ctaweapi.h awe32.h
|
||||
|
||||
blaster.obj : blaster.c dpmi.h dma.h irq.h blaster.h _blaster.h
|
||||
|
||||
debugio.obj : debugio.c debugio.h
|
||||
|
||||
dma.obj : dma.c dma.h
|
||||
|
||||
dpmi.obj : dpmi.c dpmi.h
|
||||
|
||||
fx_man.obj : fx_man.c ll_man.h sndcards.h multivoc.h blaster.h pas16.h &
|
||||
sndscape.h guswave.h sndsrc.h user.h fx_man.h
|
||||
|
||||
$(timbre_file).obj : $(timbre_file).c
|
||||
|
||||
gus.obj : gus.c usrhooks.h interrupt.h gusmidi.h guswave.h _guswave.h newgf1.h
|
||||
wcc386 $(gus_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
gusmidi.obj : gusmidi.c usrhooks.h interrupt.h gusmidi.h newgf1.h
|
||||
wcc386 $(gusmidi_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
guswave.obj : guswave.c debugio.h interrupt.h ll_man.h pitch.h user.h _guswave.h guswave.h newgf1.h multivoc.h
|
||||
|
||||
irq.obj : irq.c irq.h
|
||||
|
||||
ll_man.obj : ll_man.c dpmi.h ll_man.h
|
||||
|
||||
midi.obj : midi.c interrupt.h dpmi.h standard.h task_man.h ll_man.h usrhooks.h music.h _midi.h midi.h sndcards.h
|
||||
wcc386 $(midi_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
mpu401.obj : mpu401.c dpmi.h user.h mpu401.h
|
||||
|
||||
multivoc.obj : multivoc.c usrhooks.h interrupt.h dpmi.h ll_man.h sndcards.h &
|
||||
blaster.h sndscape.h pas16.h sndsrc.h pitch.h multivoc.h _multivc.h dma.h
|
||||
wcc386 $(multivoc_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
mv_mix.obj : mv_mix.asm
|
||||
mv_mix16.obj : mv_mix16.asm
|
||||
mvreverb.obj : mvreverb.asm
|
||||
|
||||
music.obj : music.c ll_man.h task_man.h sndcards.h midi.h al_midi.h pas16.h blaster.h gusmidi.h mpu401.h awe32.h sndscape.h user.h music.h
|
||||
wcc386 $(music_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
pas16.obj : pas16.c dpmi.h dma.h interrupt.h irq.h pas16.h _pas16.h
|
||||
wcc386 $(pas16_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
pitch.obj : pitch.c dpmi.h standard.h pitch.h
|
||||
|
||||
sndscape.obj : sndscape.c interrupt.h dpmi.h dma.h irq.h sndscape.h _sndscap.h
|
||||
|
||||
sndsrc.obj : sndsrc.c dpmi.h task_man.h sndcards.h user.h sndsrc.h
|
||||
|
||||
task_man.obj : task_man.c dpmi.h interrupt.h linklist.h usrhooks.h task_man.h
|
||||
wcc386 $(task_man_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
user.obj : user.c user.h
|
||||
|
||||
#myprint.obj : myprint.c myprint.h
|
192
audiolib/AUDIO2.MAK
Normal file
192
audiolib/AUDIO2.MAK
Normal file
|
@ -0,0 +1,192 @@
|
|||
.OPTIMIZE
|
||||
|
||||
version = production
|
||||
#version = debugging
|
||||
|
||||
timbre_file = gmtimbre
|
||||
#timbre_file = leetimbr
|
||||
|
||||
prg_dir = .
|
||||
obj_debugging = $(prg_dir)\objdb
|
||||
obj_production = $(prg_dir)\obj
|
||||
obj_dir = $(obj_$(version))
|
||||
lib_dir = $(prg_dir)\lib
|
||||
output_dir = $(prg_dir)
|
||||
main_dir = $(prg_dir)\source
|
||||
header_dir = $(main_dir)
|
||||
tasm_include_dir = /i$(main_dir)
|
||||
|
||||
model = f
|
||||
compiler = w
|
||||
lib_filename = audio_$(compiler)$(model).lib
|
||||
lib_name = $(obj_dir)\$(lib_filename)
|
||||
final_lib = $(output_dir)\$(lib_filename)
|
||||
|
||||
.h : $(header_dir)
|
||||
.c : $(header_dir)
|
||||
.asm : $(header_dir)
|
||||
.obj : $(obj_dir)
|
||||
|
||||
offlib_files = gf1_osf.lib
|
||||
lib_files = gf1_osf.lib &
|
||||
pawe32.lib
|
||||
|
||||
#object_files = &
|
||||
object_files = $(timbre_file).obj &
|
||||
adlibfx.obj &
|
||||
al_midi.obj &
|
||||
awe32.obj &
|
||||
blaster.obj &
|
||||
debugio.obj &
|
||||
dma.obj &
|
||||
dpmi.obj &
|
||||
fx_man.obj &
|
||||
gus.obj &
|
||||
gusmidi.obj &
|
||||
guswave.obj &
|
||||
irq.obj &
|
||||
ll_man.obj &
|
||||
midi.obj &
|
||||
mpu401.obj &
|
||||
multivoc.obj &
|
||||
mv_mix.obj &
|
||||
music.obj &
|
||||
pas16.obj &
|
||||
pcfx.obj &
|
||||
pitch.obj &
|
||||
sndscape.obj &
|
||||
sndsrc.obj &
|
||||
task_man.obj &
|
||||
user.obj
|
||||
|
||||
offobject_files = adlibfx.obj &
|
||||
blaster.obj &
|
||||
debugio.obj &
|
||||
dma.obj &
|
||||
dpmi.obj &
|
||||
fx_man.obj &
|
||||
gus.obj &
|
||||
guswave.obj &
|
||||
irq.obj &
|
||||
ll_man.obj &
|
||||
multivoc.obj &
|
||||
mv_mix.obj &
|
||||
pas16.obj &
|
||||
pcfx.obj &
|
||||
pitch.obj &
|
||||
sndscape.obj &
|
||||
sndsrc.obj &
|
||||
task_man.obj &
|
||||
user.obj
|
||||
|
||||
|
||||
msg_debugging = Creating debugging library...
|
||||
tasm_debugging = /t /zi /p /mx /w2 $(tasm_include_dir)
|
||||
wcc_debugging = /zq /w4 /d2 /i=$(header_dir)
|
||||
wlink_debugging =
|
||||
|
||||
gus_debugging = /zq /w4 /d2 /i=$(header_dir)
|
||||
gusmidi_debugging = /zq /w4 /d2 /i=$(header_dir)
|
||||
multivoc_debugging = /zq /w4 /d1 /omaxne /zp4 /5r /zu /d2 /i=$(header_dir)
|
||||
pas16_debugging = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
task_man_debugging = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
midi_debugging = /zq /w4 /d2 /zu /i=$(header_dir)
|
||||
al_midi_debugging = /zq /w4 /d2 /zu /i=$(header_dir)
|
||||
|
||||
msg_production = Creating production library...
|
||||
tasm_production = /t /zi /p /mx /w2 $(tasm_include_dir)
|
||||
wcc_production = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
wlink_production =
|
||||
|
||||
gus_production = /zq /w4 /d2 /i=$(header_dir)
|
||||
gusmidi_production = /zq /w4 /d2 /i=$(header_dir)
|
||||
multivoc_production = /zq /w4 /d1 /omaxne /zp4 /5r /zu /i=$(header_dir)
|
||||
pas16_production = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
task_man_production = /zq /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
midi_production = /zq /w4 /d1 /omaxnet /zp4 /5r /zu /i=$(header_dir)
|
||||
al_midi_production = /zq /w4 /d1 /omaxnet /zp4 /5r /zu /i=$(header_dir)
|
||||
|
||||
$(final_lib) : $(lib_name)
|
||||
copy $(lib_name) $(final_lib)
|
||||
|
||||
$(lib_name) : $(object_files) audio.mak
|
||||
echo ******************************************************************
|
||||
echo
|
||||
echo $(msg_$(version))
|
||||
echo
|
||||
echo ******************************************************************
|
||||
%create temp.lnk
|
||||
for %i in ($(object_files)) do %append temp.lnk -+$(obj_dir)\%i
|
||||
for %i in ($(lib_files)) do %append temp.lnk -+$(lib_dir)\%i
|
||||
wlib $^@ /n /b @temp.lnk
|
||||
del temp.lnk
|
||||
|
||||
.asm.obj :
|
||||
tasm $(tasm_$(version)) $[* $(obj_dir)\$^&
|
||||
|
||||
.c.obj :
|
||||
wcc386 $(wcc_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
|
||||
adlibfx.obj : adlibfx.c dpmi.h task_man.h interrupt.h al_midi.h adlibfx.h
|
||||
|
||||
al_midi.obj : al_midi.c dpmi.h interrupt.h sndcards.h blaster.h user.h al_midi.h _al_midi.h ll_man.h
|
||||
wcc386 $(al_midi_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
awe32.obj : awe32.c dpmi.h blaster.h ctaweapi.h awe32.h
|
||||
|
||||
blaster.obj : blaster.c dpmi.h dma.h irq.h blaster.h _blaster.h
|
||||
|
||||
debugio.obj : debugio.c debugio.h
|
||||
|
||||
dma.obj : dma.c dma.h
|
||||
|
||||
dpmi.obj : dpmi.c dpmi.h
|
||||
|
||||
fx_man.obj : fx_man.c ll_man.h sndcards.h multivoc.h blaster.h pas16.h &
|
||||
sndscape.h guswave.h sndsrc.h adlibfx.h pcfx.h user.h fx_man.h
|
||||
|
||||
$(timbre_file).obj : $(timbre_file).c
|
||||
|
||||
gus.obj : gus.c usrhooks.h interrupt.h gusmidi.h guswave.h _guswave.h newgf1.h
|
||||
wcc386 $(gus_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
gusmidi.obj : gusmidi.c usrhooks.h interrupt.h gusmidi.h newgf1.h
|
||||
wcc386 $(gusmidi_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
guswave.obj : guswave.c debugio.h interrupt.h ll_man.h pitch.h user.h _guswave.h guswave.h newgf1.h multivoc.h
|
||||
|
||||
irq.obj : irq.c irq.h
|
||||
|
||||
ll_man.obj : ll_man.c dpmi.h ll_man.h
|
||||
|
||||
midi.obj : midi.c interrupt.h dpmi.h standard.h task_man.h ll_man.h usrhooks.h _midi.h midi.h
|
||||
wcc386 $(midi_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
mpu401.obj : mpu401.c dpmi.h user.h mpu401.h
|
||||
|
||||
multivoc.obj : multivoc.c usrhooks.h interrupt.h dpmi.h ll_man.h sndcards.h &
|
||||
blaster.h sndscape.h pas16.h sndsrc.h pitch.h multivoc.h _multivc.h dma.h
|
||||
wcc386 $(multivoc_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
mv_mix.obj : mv_mix.asm
|
||||
|
||||
music.obj : music.c ll_man.h task_man.h sndcards.h midi.h al_midi.h pas16.h blaster.h gusmidi.h mpu401.h awe32.h sndscape.h user.h music.h
|
||||
|
||||
pas16.obj : pas16.c dpmi.h dma.h interrupt.h irq.h pas16.h _pas16.h
|
||||
wcc386 $(pas16_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
pcfx.obj : pcfx.c dpmi.h task_man.h interrupt.h pcfx.h
|
||||
|
||||
pitch.obj : pitch.c dpmi.h standard.h pitch.h
|
||||
|
||||
sndscape.obj : sndscape.c interrupt.h dpmi.h dma.h irq.h sndscape.h _sndscap.h
|
||||
|
||||
sndsrc.obj : sndsrc.c dpmi.h task_man.h sndcards.h user.h sndsrc.h
|
||||
|
||||
task_man.obj : task_man.c dpmi.h interrupt.h linklist.h usrhooks.h task_man.h
|
||||
wcc386 $(task_man_$(version)) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
user.obj : user.c user.h
|
||||
|
||||
#myprint.obj : myprint.c myprint.h
|
BIN
audiolib/AUDIO_WF.LIB
Normal file
BIN
audiolib/AUDIO_WF.LIB
Normal file
Binary file not shown.
17
audiolib/DOPUBLIC.BAT
Normal file
17
audiolib/DOPUBLIC.BAT
Normal file
|
@ -0,0 +1,17 @@
|
|||
call wmake.bat
|
||||
copy audio_wf.lib public
|
||||
copy notes.txt public
|
||||
copy midi.txt public
|
||||
copy notes.txt public
|
||||
copy audio_wf.lib public\include
|
||||
copy source\fx_man.h public\include
|
||||
copy source\music.h public\include
|
||||
copy source\sndcards.h public\include
|
||||
copy source\task_man.h public\include
|
||||
cd public\timer
|
||||
wmake
|
||||
cd ..\..\public\ps
|
||||
wmake
|
||||
cd ..\..\public\pm
|
||||
wmake
|
||||
cd ..\..
|
205
audiolib/GUS/GUSROTT.INI
Normal file
205
audiolib/GUS/GUSROTT.INI
Normal file
|
@ -0,0 +1,205 @@
|
|||
#
|
||||
# GUSROTT.INI - Gravis Ultrasound<TM> .INI file for use with
|
||||
# Rise of the Triad<TM> by Apogee Software, Ltd.
|
||||
# Patch data configured by Lee Jackson.
|
||||
#
|
||||
# *** WARNING - DO NOT EDIT OR IN ANY WAY CHANGE THIS FILE!!! ***
|
||||
#
|
||||
# Ultrasound<TM> is a trademark of Advanced Gravis Computer
|
||||
# Technology, Ltd.
|
||||
#
|
||||
# Rise of the Triad<TM> is a trademark of Apogee Software, Ltd.
|
||||
#
|
||||
#
|
||||
#Explanation of Columns: Patch # 256K 512K 768K 1024K Patch Name
|
||||
#
|
||||
0, 2, 2, 1, 0, acpiano
|
||||
1, 2, 2, 1, 1, britepno
|
||||
2, 128, 128, 128, 128, synpiano
|
||||
3, 128, 128, 128, 128, honky
|
||||
4, 2, 2, 4, 4, epiano1
|
||||
5, 128, 128, 128, 128, epiano2
|
||||
6, 128, 128, 128, 128, hrpschrd
|
||||
7, 128, 128, 128, 128, clavinet
|
||||
8, 128, 128, 128, 128, celeste
|
||||
9, 128, 128, 128, 128, glocken
|
||||
10, 128, 128, 128, 128, musicbox
|
||||
11, 2, 11, 11, 11, vibes
|
||||
12, 128, 128, 128, 128, marimba
|
||||
13, 128, 128, 128, 128, xylophon
|
||||
14, 2, 14, 14, 14, tubebell
|
||||
15, 128, 128, 128, 128, santur
|
||||
16, 128, 128, 128, 128, homeorg
|
||||
17, 20, 17, 17, 17, percorg
|
||||
18, 128, 128, 128, 128, rockorg
|
||||
19, 20, 19, 19, 19, church
|
||||
20, 20, 20, 20, 20, reedorg
|
||||
21, 2, 21, 21, 21, accordn
|
||||
22, 128, 128, 128, 128, harmonca
|
||||
23, 128, 128, 128, 128, concrtna
|
||||
24, 128, 128, 128, 128, nyguitar
|
||||
25, 128, 128, 128, 128, acguitar
|
||||
26, 128, 128, 128, 128, jazzgtr
|
||||
27, 24, 27, 27, 27, cleangtr
|
||||
28, 24, 28, 28, 28, mutegtr
|
||||
29, 29, 29, 29, 29, odguitar
|
||||
30, 29, 30, 30, 30, distgtr
|
||||
31, 29, 29, 30, 31, gtrharm
|
||||
32, 128, 128, 128, 128, acbass
|
||||
33, 39, 33, 33, 33, fngrbass
|
||||
34, 39, 33, 34, 34, pickbass
|
||||
35, 39, 33, 33, 35, fretless
|
||||
36, 39, 36, 36, 36, slapbas1
|
||||
37, 39, 36, 36, 37, slapbas2
|
||||
38, 39, 38, 38, 38, synbass1
|
||||
39, 39, 38, 38, 39, synbass2
|
||||
40, 128, 128, 128, 128, violin
|
||||
41, 128, 128, 128, 128, viola
|
||||
42, 128, 128, 128, 128, cello
|
||||
43, 128, 128, 128, 128, contraba
|
||||
44, 128, 128, 128, 128, tremstr
|
||||
45, 2, 46, 45, 45, pizzcato
|
||||
46, 2, 46, 46, 46, harp
|
||||
47, 47, 47, 47, 47, timpani
|
||||
48, 51, 51, 48, 48, marcato
|
||||
49, 128, 128, 128, 128, slowstr
|
||||
50, 128, 128, 128, 128, synstr1
|
||||
51, 51, 51, 51, 51, synstr2
|
||||
52, 52, 52, 52, 52, choir
|
||||
53, 128, 128, 128, 128, doo
|
||||
54, 128, 128, 128, 128, voices
|
||||
55, 128, 128, 128, 128, orchhit
|
||||
56, 56, 56, 56, 56, trumpet
|
||||
57, 56, 56, 56, 57, trombone
|
||||
58, 56, 56, 58, 58, tuba
|
||||
59, 128, 128, 128, 128, mutetrum
|
||||
60, 56, 60, 60, 60, frenchrn
|
||||
61, 56, 61, 61, 61, hitbrass
|
||||
62, 56, 56, 62, 62, synbras1
|
||||
63, 56, 56, 62, 62, synbras2
|
||||
64, 128, 128, 128, 128, sprnosax
|
||||
65, 65, 65, 65, 65, altosax
|
||||
66, 65, 65, 65, 66, tenorsax
|
||||
67, 128, 128, 128, 128, barisax
|
||||
68, 65, 65, 68, 68, oboe
|
||||
69, 128, 128, 128, 128, englhorn
|
||||
70, 128, 128, 128, 128, bassoon
|
||||
71, 65, 71, 71, 71, clarinet
|
||||
72, 128, 128, 128, 128, piccolo
|
||||
73, 73, 73, 73, 73, flute
|
||||
74, 128, 128, 128, 128, recorder
|
||||
75, 128, 128, 128, 128, woodflut
|
||||
76, 128, 128, 128, 128, bottle
|
||||
77, 128, 128, 128, 128, shakazul
|
||||
78, 73, 73, 73, 73, whistle
|
||||
79, 73, 73, 73, 79, ocarina
|
||||
80, 81, 80, 80, 80, sqrwave
|
||||
81, 81, 81, 81, 81, sawwave
|
||||
82, 20, 20, 20, 20, calliope
|
||||
83, 128, 128, 128, 128, chiflead
|
||||
84, 128, 128, 128, 128, charang
|
||||
85, 128, 128, 128, 128, voxlead
|
||||
86, 52, 52, 29, 29, lead5th
|
||||
87, 128, 128, 128, 128, basslead
|
||||
88, 128, 128, 128, 128, fantasia
|
||||
89, 128, 128, 128, 128, warmpad
|
||||
90, 128, 128, 128, 128, polysyn
|
||||
91, 81, 81, 81, 81, ghostie
|
||||
92, 128, 128, 128, 128, bowglass
|
||||
93, 52, 52, 52, 103, metalpad
|
||||
94, 19, 19, 19, 19, halopad
|
||||
95, 52, 52, 52, 95, sweeper
|
||||
96, 128, 128, 128, 128, aurora
|
||||
97, 128, 128, 128, 128, soundtrk
|
||||
98, 128, 128, 128, 128, crystal
|
||||
99, 128, 128, 128, 128, atmosphr
|
||||
100, 128, 128, 128, 128, freshair
|
||||
101, 128, 128, 128, 128, unicorn
|
||||
102, 128, 128, 128, 128, echovox
|
||||
103, 52, 52, 103, 103, startrak
|
||||
104, 128, 128, 128, 128, sitar
|
||||
105, 128, 128, 128, 128, banjo
|
||||
106, 128, 128, 128, 128, shamisen
|
||||
107, 128, 128, 128, 128, koto
|
||||
108, 128, 128, 128, 128, kalimba
|
||||
109, 128, 128, 128, 128, bagpipes
|
||||
110, 128, 128, 128, 128, fiddle
|
||||
111, 128, 128, 128, 128, shannai
|
||||
112, 128, 128, 128, 128, carillon
|
||||
113, 128, 128, 128, 128, agogo
|
||||
114, 128, 128, 128, 128, steeldrm
|
||||
115, 128, 128, 128, 128, woodblk
|
||||
116, 128, 128, 128, 128, taiko
|
||||
117, 47, 117, 117, 117, toms
|
||||
118, 128, 128, 128, 128, syntom
|
||||
119, 128, 128, 128, 119, revcym
|
||||
120, 128, 128, 128, 128, fx-fret
|
||||
121, 128, 128, 128, 128, fx-blow
|
||||
122, 128, 128, 128, 128, seashore
|
||||
123, 128, 128, 128, 128, jungle
|
||||
124, 128, 128, 128, 128, telephon
|
||||
125, 128, 128, 128, 128, helicptr
|
||||
126, 128, 128, 128, 128, applause
|
||||
127, 128, 128, 128, 128, pistol
|
||||
128, 128, 128, 128, 128, blank
|
||||
155, 128, 128, 128, 128, highq
|
||||
156, 128, 128, 128, 128, slap
|
||||
157, 128, 128, 128, 128, scratch1
|
||||
158, 128, 128, 128, 128, scratch2
|
||||
159, 128, 128, 128, 128, sticks
|
||||
160, 128, 128, 128, 128, sqrclick
|
||||
161, 128, 128, 128, 128, metclick
|
||||
162, 128, 128, 128, 128, metbell
|
||||
163, 164, 164, 163, 163, kick1
|
||||
164, 164, 164, 164, 164, kick2
|
||||
165, 165, 165, 165, 165, stickrim
|
||||
166, 168, 168, 166, 166, snare1
|
||||
167, 165, 167, 167, 167, claps
|
||||
168, 168, 168, 168, 168, snare2
|
||||
169, 175, 171, 169, 169, tomlo2
|
||||
170, 170, 170, 170, 170, hihatcl
|
||||
171, 175, 171, 171, 171, tomlo1
|
||||
172, 172, 172, 172, 172, hihatpd
|
||||
173, 175, 175, 173, 173, tommid2
|
||||
174, 174, 174, 174, 174, hihatop
|
||||
175, 178, 175, 175, 175, tommid1
|
||||
176, 178, 178, 176, 176, tomhi2
|
||||
177, 185, 177, 177, 177, cymcrsh1
|
||||
178, 178, 178, 178, 178, tomhi1
|
||||
179, 179, 179, 179, 179, cymride1
|
||||
180, 185, 177, 177, 180, cymchina
|
||||
181, 179, 179, 179, 181, cymbell
|
||||
182, 170, 182, 182, 182, tamborin
|
||||
183, 185, 177, 177, 183, cymsplsh
|
||||
184, 205, 205, 205, 184, cowbell
|
||||
185, 185, 177, 177, 185, cymcrsh2
|
||||
186, 128, 186, 186, 186, vibslap
|
||||
187, 179, 179, 179, 187, cymride2
|
||||
188, 128, 128, 128, 128, bongohi
|
||||
189, 128, 128, 128, 128, bongolo
|
||||
190, 190, 190, 190, 190, congahi1
|
||||
191, 190, 191, 191, 191, congahi2
|
||||
192, 192, 192, 192, 192, congalo
|
||||
193, 190, 191, 193, 193, timbaleh
|
||||
194, 192, 192, 194, 194, timbalel
|
||||
195, 128, 128, 128, 128, agogohi
|
||||
196, 128, 128, 128, 128, agogolo
|
||||
197, 170, 170, 170, 210, cabasa
|
||||
198, 128, 128, 128, 128, maracas
|
||||
199, 128, 128, 128, 128, whistle1
|
||||
200, 128, 128, 128, 128, whistle2
|
||||
201, 128, 201, 201, 201, guiro1
|
||||
202, 128, 202, 202, 202, guiro2
|
||||
203, 205, 205, 203, 203, clave
|
||||
204, 205, 205, 204, 204, woodblk1
|
||||
205, 205, 205, 205, 205, woodblk2
|
||||
206, 128, 206, 206, 206, cuica1
|
||||
207, 128, 128, 128, 128, cuica2
|
||||
208, 128, 128, 128, 128, triangl1
|
||||
209, 179, 179, 179, 181, triangl2
|
||||
210, 170, 170, 170, 210, shaker
|
||||
211, 170, 182, 182, 182, jingles
|
||||
212, 128, 128, 128, 128, belltree
|
||||
213, 128, 128, 128, 128, castinet
|
||||
214, 128, 128, 128, 128, surdo1
|
||||
215, 128, 128, 128, 128, surdo2
|
BIN
audiolib/GUS/UCALC.EXE
Normal file
BIN
audiolib/GUS/UCALC.EXE
Normal file
Binary file not shown.
200
audiolib/GUS/ULTRAMID.INI
Normal file
200
audiolib/GUS/ULTRAMID.INI
Normal file
|
@ -0,0 +1,200 @@
|
|||
#Purpose: Different size patch libraries for different memory sizes.
|
||||
# The libraries are built in such a way as to leave 8K+32bytes
|
||||
# after the patches are loaded for digital audio.
|
||||
#
|
||||
#Revision History: 06/22/93 - Fixed problem with 512K patch library
|
||||
# 07/26/93 - patch names changed in various releases
|
||||
#
|
||||
#
|
||||
#Explanation of Columns: Patch # 256K 512K 768K 1024K Patch Name
|
||||
#
|
||||
0, 2, 1, 1, 1, acpiano
|
||||
1, 2, 1, 1, 1, britepno
|
||||
2, 2, 1, 1, 1, synpiano
|
||||
3, 2, 1, 1, 1, honktonk
|
||||
4, 2, 1, 1, 4, epiano1
|
||||
5, 2, 1, 1, 4, epiano2
|
||||
6, 2, 1, 1, 1, hrpschrd
|
||||
7, 2, 1, 1, 1, clavinet
|
||||
8, 12, 12, 12, 12, celeste
|
||||
9, 12, 12, 12, 12, glocken
|
||||
10, 12, 12, 12, 12, musicbox
|
||||
11, 12, 12, 12, 12, vibes
|
||||
12, 12, 12, 12, 12, marimba
|
||||
13, 12, 12, 12, 12, xylophon
|
||||
14, 12, 12, 12, 12, tubebell
|
||||
15, 12, 12, 12, 12, santur
|
||||
16, 2, 16, 16, 19, homeorg
|
||||
17, 2, 16, 16, 19, percorg
|
||||
18, 2, 16, 16, 19, rockorg
|
||||
19, 2, 16, 16, 19, church
|
||||
20, 2, 16, 16, 19, reedorg
|
||||
21, 2, 16, 16, 19, accordn
|
||||
22, 2, 16, 16, 19, harmonca
|
||||
23, 2, 16, 16, 19, concrtna
|
||||
24, 24, 24, 24, 24, nyguitar
|
||||
25, 24, 24, 24, 24, acguitar
|
||||
26, 24, 24, 24, 24, jazzgtr
|
||||
27, 24, 24, 24, 27, cleangtr
|
||||
28, 24, 24, 24, 24, mutegtr
|
||||
29, 29, 29, 29, 29, odguitar
|
||||
30, 29, 30, 30, 30, distgtr
|
||||
31, 29, 30, 30, 31, gtrharm
|
||||
32, 39, 32, 32, 32, acbass
|
||||
33, 39, 32, 32, 32, fngrbass
|
||||
34, 39, 32, 32, 34, pickbass
|
||||
35, 39, 32, 32, 32, fretless
|
||||
36, 39, 36, 36, 36, slapbas1
|
||||
37, 39, 36, 36, 36, slapbas2
|
||||
38, 39, 36, 36, 32, synbass1
|
||||
39, 39, 36, 36, 32, synbass2
|
||||
40, 40, 40, 40, 40, violin
|
||||
41, 40, 40, 40, 40, viola
|
||||
42, 40, 42, 42, 42, cello
|
||||
43, 40, 40, 40, 40, contraba
|
||||
44, 40, 40, 40, 40, marcato
|
||||
45, 40, 40, 40, 45, pizzcato
|
||||
46, 24, 24, 46, 46, harp
|
||||
47, 47, 47, 47, 47, timpani
|
||||
48, 51, 51, 48, 48, marcato
|
||||
49, 51, 51, 49, 48, slowstr
|
||||
50, 51, 51, 48, 48, synstr1
|
||||
51, 51, 51, 48, 48, synstr2
|
||||
52, 52, 52, 52, 52, choir
|
||||
53, 52, 52, 52, 52, doo
|
||||
54, 52, 52, 52, 54, voices
|
||||
55, 128, 128, 55, 55, orchhit
|
||||
56, 56, 56, 56, 56, trumpet
|
||||
57, 56, 56, 56, 56, trombone
|
||||
58, 56, 56, 56, 58, tuba
|
||||
59, 56, 56, 56, 56, mutetrum
|
||||
60, 56, 56, 56, 56, frenchrn
|
||||
61, 56, 56, 56, 56, hitbrass
|
||||
62, 56, 56, 56, 56, synbras1
|
||||
63, 56, 56, 56, 56, synbras2
|
||||
64, 66, 66, 64, 64, sprnosax
|
||||
65, 66, 66, 66, 66, altosax
|
||||
66, 66, 66, 66, 66, tenorsax
|
||||
67, 66, 66, 66, 66, barisax
|
||||
68, 68, 69, 69, 69, oboe
|
||||
69, 68, 69, 69, 69, englhorn
|
||||
70, 68, 69, 69, 70, bassoon
|
||||
71, 68, 69, 69, 71, clarinet
|
||||
72, 73, 73, 73, 73, piccolo
|
||||
73, 73, 73, 73, 73, flute
|
||||
74, 73, 73, 73, 73, recorder
|
||||
75, 73, 73, 73, 75, woodflut
|
||||
76, 73, 73, 73, 75, bottle
|
||||
77, 73, 77, 77, 77, shakazul
|
||||
78, 73, 73, 73, 73, whistle
|
||||
79, 73, 73, 73, 73, ocarina
|
||||
80, 29, 29, 29, 29, sqrwave
|
||||
81, 29, 29, 29, 29, sawwave
|
||||
82, 73, 73, 29, 82, calliope
|
||||
83, 73, 73, 29, 29, chiflead
|
||||
84, 29, 29, 29, 29, voxlead
|
||||
85, 52, 52, 29, 85, voxlead
|
||||
86, 52, 52, 29, 86, lead5th
|
||||
87, 52, 52, 29, 34, basslead
|
||||
88, 52, 52, 88, 88, fantasia
|
||||
89, 52, 52, 29, 89, warmpad
|
||||
90, 52, 52, 29, 89, polysyn
|
||||
91, 52, 52, 29, 89, ghostie
|
||||
92, 52, 52, 29, 89, bowglass
|
||||
93, 52, 52, 29, 89, metalpad
|
||||
94, 52, 52, 29, 89, halopad
|
||||
95, 52, 52, 29, 89, sweeper
|
||||
96, 52, 52, 96, 89, aurora
|
||||
97, 52, 52, 52, 89, soundtrk
|
||||
98, 52, 52, 52, 89, crystal
|
||||
99, 52, 52, 52, 89, atmosphr
|
||||
100, 52, 52, 52, 89, freshair
|
||||
101, 52, 52, 52, 89, unicorn
|
||||
102, 52, 102, 102, 89, ghostie
|
||||
103, 52, 102, 102, 89, startrak
|
||||
104, 24, 102, 102, 104, sitar
|
||||
105, 24, 105, 105, 105, banjo
|
||||
106, 24, 105, 105, 105, shamisen
|
||||
107, 24, 105, 105, 105, koto
|
||||
108, 115, 115, 115, 115, kalimba
|
||||
109, 24, 69, 105, 109, bagpipes
|
||||
110, 24, 42, 42, 42, fiddle
|
||||
111, 24, 105, 105, 105, shannai
|
||||
112, 114, 114, 112, 112, carillon
|
||||
113, 114, 114, 112, 112, agogo
|
||||
114, 114, 114, 114, 114, steeldrm
|
||||
115, 115, 115, 115, 115, woodblk
|
||||
116, 115, 117, 117, 117, taiko
|
||||
117, 115, 117, 117, 117, toms
|
||||
118, 115, 117, 117, 117, syntom
|
||||
119, 128, 128, 128, 128, revcym
|
||||
120, 128, 128, 128, 128, fx-fret
|
||||
121, 128, 128, 128, 128, fx-blow
|
||||
122, 128, 128, 128, 122, seashore
|
||||
123, 128, 128, 128, 128, jungle
|
||||
124, 128, 128, 128, 128, telephon
|
||||
125, 128, 128, 128, 128, helicptr
|
||||
126, 128, 128, 126, 126, applause
|
||||
127, 128, 128, 128, 128, ringwhsl
|
||||
128, 128, 128, 128, 128, blank
|
||||
155, 128, 128, 128, 128, highq
|
||||
156, 128, 128, 128, 128, slap
|
||||
157, 128, 128, 128, 157, scratch1
|
||||
158, 128, 128, 128, 158, scratch2
|
||||
159, 159, 159, 159, 159, sticks
|
||||
160, 128, 128, 128, 160, sqrclick
|
||||
161, 128, 128, 128, 160, metclick
|
||||
162, 128, 128, 128, 128, metbell
|
||||
163, 163, 163, 163, 163, kick1
|
||||
164, 164, 164, 164, 164, kick2
|
||||
165, 165, 165, 165, 165, stickrim
|
||||
166, 166, 166, 166, 166, snare1
|
||||
167, 167, 167, 167, 167, claps
|
||||
168, 168, 168, 168, 168, snare2
|
||||
169, 171, 169, 169, 169, tomlo2
|
||||
170, 170, 170, 170, 170, hihatcl
|
||||
171, 171, 171, 171, 171, tomlo1
|
||||
172, 172, 172, 172, 172, hihatpd
|
||||
173, 175, 173, 173, 173, tommid2
|
||||
174, 174, 174, 174, 174, hihatop
|
||||
175, 175, 175, 175, 175, tommid1
|
||||
176, 178, 176, 176, 176, tomhi2
|
||||
177, 181, 177, 177, 177, cymcrsh1
|
||||
178, 178, 178, 178, 178, tomhi1
|
||||
179, 181, 177, 177, 177, cymride1
|
||||
180, 181, 177, 177, 180, cymchina
|
||||
181, 181, 177, 177, 181, cymbell
|
||||
182, 182, 182, 182, 182, tamborin
|
||||
183, 181, 177, 177, 177, cymsplsh
|
||||
184, 128, 128, 128, 128, cowbell
|
||||
185, 181, 177, 177, 177, cymcrsh2
|
||||
186, 128, 128, 128, 128, vibslap
|
||||
187, 181, 177, 177, 177, cymride2
|
||||
188, 178, 188, 188, 188, bongohi
|
||||
189, 175, 189, 189, 189, bongolo
|
||||
190, 175, 190, 190, 190, congahi1
|
||||
191, 175, 191, 191, 191, congahi2
|
||||
192, 171, 191, 191, 192, congalo
|
||||
193, 128, 128, 128, 193, timbaleh
|
||||
194, 128, 128, 128, 194, timbalel
|
||||
195, 128, 128, 128, 195, agogohi
|
||||
196, 128, 128, 128, 196, agogolo
|
||||
197, 128, 128, 128, 128, cabasa
|
||||
198, 128, 198, 198, 198, maracas
|
||||
199, 128, 128, 128, 128, whistle1
|
||||
200, 128, 128, 128, 128, whistle2
|
||||
201, 128, 128, 128, 128, guiro1
|
||||
202, 128, 128, 128, 128, guiro2
|
||||
203, 128, 128, 128, 128, clave
|
||||
204, 128, 204, 204, 204, woodblk1
|
||||
205, 128, 205, 205, 205, woodblk2
|
||||
206, 128, 128, 128, 206, cuica1
|
||||
207, 128, 128, 128, 207, cuica2
|
||||
208, 128, 128, 128, 208, triangl1
|
||||
209, 128, 128, 128, 209, triangl2
|
||||
210, 128, 128, 128, 128, shaker
|
||||
211, 128, 128, 128, 128, jingles
|
||||
212, 128, 128, 128, 128, belltree
|
||||
213, 128, 128, 128, 128, castinet
|
||||
214, 128, 128, 128, 128, surdo1
|
||||
215, 128, 128, 128, 128, surdo2
|
BIN
audiolib/LIB/GF1_OSF.LB2
Normal file
BIN
audiolib/LIB/GF1_OSF.LB2
Normal file
Binary file not shown.
BIN
audiolib/LIB/GF1_OSF.LBK
Normal file
BIN
audiolib/LIB/GF1_OSF.LBK
Normal file
Binary file not shown.
BIN
audiolib/LIB/GF1_OSF.LIB
Normal file
BIN
audiolib/LIB/GF1_OSF.LIB
Normal file
Binary file not shown.
BIN
audiolib/LIB/PAWE32.LIB
Normal file
BIN
audiolib/LIB/PAWE32.LIB
Normal file
Binary file not shown.
2
audiolib/MAKEDB.BAT
Normal file
2
audiolib/MAKEDB.BAT
Normal file
|
@ -0,0 +1,2 @@
|
|||
del audio_wf.lib
|
||||
wmake.exe -f audio.mak "version = debugging" %1 %2 %3 %4 %5
|
BIN
audiolib/OBJ/ADLIBFX.OBJ
Normal file
BIN
audiolib/OBJ/ADLIBFX.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/AL_MIDI.OBJ
Normal file
BIN
audiolib/OBJ/AL_MIDI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/AUDIO_WF.LIB
Normal file
BIN
audiolib/OBJ/AUDIO_WF.LIB
Normal file
Binary file not shown.
BIN
audiolib/OBJ/AWE32.OBJ
Normal file
BIN
audiolib/OBJ/AWE32.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/BLASTER.OBJ
Normal file
BIN
audiolib/OBJ/BLASTER.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/DEBUGIO.OBJ
Normal file
BIN
audiolib/OBJ/DEBUGIO.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/DMA.OBJ
Normal file
BIN
audiolib/OBJ/DMA.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/DPMI.OBJ
Normal file
BIN
audiolib/OBJ/DPMI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/FX_MAN.OBJ
Normal file
BIN
audiolib/OBJ/FX_MAN.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/GMTIMBRE.OBJ
Normal file
BIN
audiolib/OBJ/GMTIMBRE.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/GUS.OBJ
Normal file
BIN
audiolib/OBJ/GUS.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/GUSMIDI.OBJ
Normal file
BIN
audiolib/OBJ/GUSMIDI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/GUSWAVE.OBJ
Normal file
BIN
audiolib/OBJ/GUSWAVE.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/IRQ.OBJ
Normal file
BIN
audiolib/OBJ/IRQ.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/LL_MAN.OBJ
Normal file
BIN
audiolib/OBJ/LL_MAN.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MIDI.OBJ
Normal file
BIN
audiolib/OBJ/MIDI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MPU401.OBJ
Normal file
BIN
audiolib/OBJ/MPU401.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MULTIVOC.OBJ
Normal file
BIN
audiolib/OBJ/MULTIVOC.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MUSIC.OBJ
Normal file
BIN
audiolib/OBJ/MUSIC.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MVREVERB.OBJ
Normal file
BIN
audiolib/OBJ/MVREVERB.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MV_MIX.OBJ
Normal file
BIN
audiolib/OBJ/MV_MIX.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/MV_MIX16.OBJ
Normal file
BIN
audiolib/OBJ/MV_MIX16.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/PAS16.OBJ
Normal file
BIN
audiolib/OBJ/PAS16.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/PCFX.OBJ
Normal file
BIN
audiolib/OBJ/PCFX.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/PITCH.OBJ
Normal file
BIN
audiolib/OBJ/PITCH.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/SNDSCAPE.OBJ
Normal file
BIN
audiolib/OBJ/SNDSCAPE.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/SNDSRC.OBJ
Normal file
BIN
audiolib/OBJ/SNDSRC.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/TASK_MAN.OBJ
Normal file
BIN
audiolib/OBJ/TASK_MAN.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJ/USER.OBJ
Normal file
BIN
audiolib/OBJ/USER.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/AL_MIDI.OBJ
Normal file
BIN
audiolib/OBJDB/AL_MIDI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/AUDIO_WF.LIB
Normal file
BIN
audiolib/OBJDB/AUDIO_WF.LIB
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/AWE32.OBJ
Normal file
BIN
audiolib/OBJDB/AWE32.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/BLASTER.OBJ
Normal file
BIN
audiolib/OBJDB/BLASTER.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/DEBUGIO.OBJ
Normal file
BIN
audiolib/OBJDB/DEBUGIO.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/DMA.OBJ
Normal file
BIN
audiolib/OBJDB/DMA.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/DPMI.OBJ
Normal file
BIN
audiolib/OBJDB/DPMI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/FX_MAN.OBJ
Normal file
BIN
audiolib/OBJDB/FX_MAN.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/GMTIMBRE.OBJ
Normal file
BIN
audiolib/OBJDB/GMTIMBRE.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/GUS.OBJ
Normal file
BIN
audiolib/OBJDB/GUS.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/GUSMIDI.OBJ
Normal file
BIN
audiolib/OBJDB/GUSMIDI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/GUSWAVE.OBJ
Normal file
BIN
audiolib/OBJDB/GUSWAVE.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/IRQ.OBJ
Normal file
BIN
audiolib/OBJDB/IRQ.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/LL_MAN.OBJ
Normal file
BIN
audiolib/OBJDB/LL_MAN.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MIDI.OBJ
Normal file
BIN
audiolib/OBJDB/MIDI.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MPU401.OBJ
Normal file
BIN
audiolib/OBJDB/MPU401.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MULTIVOC.OBJ
Normal file
BIN
audiolib/OBJDB/MULTIVOC.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MUSIC.OBJ
Normal file
BIN
audiolib/OBJDB/MUSIC.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MVREVERB.OBJ
Normal file
BIN
audiolib/OBJDB/MVREVERB.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MV_MIX.OBJ
Normal file
BIN
audiolib/OBJDB/MV_MIX.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/MV_MIX16.OBJ
Normal file
BIN
audiolib/OBJDB/MV_MIX16.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/PAS16.OBJ
Normal file
BIN
audiolib/OBJDB/PAS16.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/PITCH.OBJ
Normal file
BIN
audiolib/OBJDB/PITCH.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/SNDSCAPE.OBJ
Normal file
BIN
audiolib/OBJDB/SNDSCAPE.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/SNDSRC.OBJ
Normal file
BIN
audiolib/OBJDB/SNDSRC.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/TASK_MAN.OBJ
Normal file
BIN
audiolib/OBJDB/TASK_MAN.OBJ
Normal file
Binary file not shown.
BIN
audiolib/OBJDB/USER.OBJ
Normal file
BIN
audiolib/OBJDB/USER.OBJ
Normal file
Binary file not shown.
BIN
audiolib/PUBLIC/AUDIO_WF.LIB
Normal file
BIN
audiolib/PUBLIC/AUDIO_WF.LIB
Normal file
Binary file not shown.
224
audiolib/PUBLIC/EMIDIAPI.TXT
Normal file
224
audiolib/PUBLIC/EMIDIAPI.TXT
Normal file
|
@ -0,0 +1,224 @@
|
|||
=============================================================
|
||||
| Apogee Expanded MIDI (EMIDI) API v1.0 |
|
||||
=============================================================
|
||||
|
||||
Specifications created by Lee Jackson and Jim DosŠ
|
||||
Support coded by Jim DosŠ
|
||||
|
||||
|
||||
FOR INTERNAL USE ONLY. ACCESS OR USE WITHOUT EXPRESS WRITTEN
|
||||
PERMISSION FROM APOGEE SOFTWARE, LTD., 3D REALMS ENTERTAINMENT, OR
|
||||
ACTION ENTERTAINMENT, INC., IS STRICTLY PROHIBITED.
|
||||
|
||||
|
||||
Copyright (c) 1995 Apogee Software Ltd. All Rights Reserved.
|
||||
|
||||
|
||||
=============================================================
|
||||
| Contents |
|
||||
=============================================================
|
||||
|
||||
I. Instrument Definitions
|
||||
II. Controller Definitions
|
||||
III. InitBeat Format
|
||||
|
||||
|
||||
=============================================================
|
||||
| I. Instrument Definitions |
|
||||
=============================================================
|
||||
|
||||
The following instruments are currently defined as valid for data
|
||||
entry events:
|
||||
|
||||
0 - General MIDI
|
||||
1 - Roland Sound Canvas (GM and GS)
|
||||
2 - Sound Blaster AWE32
|
||||
3 - Wave Blaster and Compatibles (SCD-10, etc.)
|
||||
4 - Sound Blaster and Compatibles (OPL-2 and OPL-3)
|
||||
5 - Media Vision Pro Audio series
|
||||
6 - Logitech Sound Man 16
|
||||
7 - Adlib and Compatibles
|
||||
8 - Ensoniq Soundscape
|
||||
9 - Gravis Ultrasound, Ultrasound Max, Ultrasound ACE
|
||||
127 - All (see Controller Definitions)
|
||||
|
||||
|
||||
=============================================================
|
||||
| II. Controller Definitions |
|
||||
=============================================================
|
||||
|
||||
The following controllers are currently defined as valid:
|
||||
|
||||
110 - Track Designation
|
||||
Required: Yes
|
||||
Multiples allowed: Yes
|
||||
Format: 110 nn
|
||||
(where nn is a defined instrument)
|
||||
|
||||
Controller 110 determines which instruments will receive data for
|
||||
this track. Multiple instances may be used to designate multiple
|
||||
instruments. If the track is designated for all instruments,
|
||||
Instrument 127 may be used. This instrument may also be used in
|
||||
conjunction with Controller 111 to exclude a single instrument or
|
||||
group of instruments.
|
||||
|
||||
|
||||
111 - Track Exclusion
|
||||
Required: No
|
||||
Multiples allowed: Yes
|
||||
Format: 111 nn
|
||||
(where nn is a defined instrument -
|
||||
instrument 127 is invalid)
|
||||
|
||||
Controller 111 excludes an instrument from receiving the data for
|
||||
this track. Multiple instances may be used to exclude multiple
|
||||
instruments. Instrument 127 is not valid for this controller.
|
||||
|
||||
|
||||
112 - Program Change
|
||||
Required: No
|
||||
Multiples allowed: Yes
|
||||
Format: 112 nn
|
||||
(where nn is a GM program change)
|
||||
|
||||
Controller 112 is the same as the standard MIDI program change
|
||||
event. It may be inserted at any point a program change is
|
||||
required. If it does not exist, standard MIDI program change events
|
||||
will be recognized for this track. If it does exist, standard MIDI
|
||||
program change events will not be recognized for this track, and all
|
||||
program changes for the track must be entered using Controller 112.
|
||||
|
||||
|
||||
113 - Volume
|
||||
Required: No
|
||||
Multiples allowed: Yes
|
||||
Format: 113 nn
|
||||
(where nn is between 0 and 127)
|
||||
|
||||
Controller 113 allows different volumes to be inserted in the same
|
||||
manner as Controller 7. It should be used only if
|
||||
designation/exclusion groups exist on the same MIDI channel. If
|
||||
Controller 113 does not exist at the beginning of the track,
|
||||
Controller 7 events will be recognized. If Controller 113 does
|
||||
exist at the beginning of the track, Controller 7 events will be
|
||||
ignored.
|
||||
|
||||
|
||||
116 - Loop Begin
|
||||
Required: Yes
|
||||
Multiples allowed: Yes (see below)
|
||||
Format: 116 nn
|
||||
(see below for definition)
|
||||
|
||||
Controller 116 indicates the beginning of a sequence to be looped.
|
||||
Values for this controller are as follows:
|
||||
|
||||
0 - infinite loop
|
||||
1 - loop once
|
||||
2 - loop twice
|
||||
x - loop x times
|
||||
|
||||
A song should have a Master Start point and a Master End point. The
|
||||
start point should occur after the InitBeat (see section III) and
|
||||
after any introduction you wish to have played only once. Any
|
||||
controller information (patch changes, pitch bend info, etc.)
|
||||
required for the loop should be entered and/or repeated after the
|
||||
loop's Master Start event (see also Section III, "InitBeat", below).
|
||||
Likewise, any "reset" events required should be entered either just
|
||||
after the loop's Master Start event or just before the loop's Master
|
||||
End event.
|
||||
|
||||
Multiple non-infinite loop start/end pairs (see Controller 117
|
||||
below) may occur at any point inside the Master Loop. Only one
|
||||
infinite loop may be defined per song. Nested loops are not yet
|
||||
supported.
|
||||
|
||||
IMPORTANT: Any event to be included within the loop must fall after
|
||||
the Loop Begin point and end before the Loop End point.
|
||||
If you are using Cakewalk Pro for Windows, you can
|
||||
verify this by looking at the Event List view.
|
||||
SIMULTANEOUS TIMES FOR LOOP POINTS AND EVENT DATA DO NOT
|
||||
GUARANTEE THAT AN EVENT IS INSIDE THE LOOP. If in
|
||||
doubt, set the event one tick after the Loop Begin or
|
||||
have it end one tick before the Loop End.
|
||||
|
||||
|
||||
117 - Loop End
|
||||
Required: Yes
|
||||
Multiples allowed: Yes (see below)
|
||||
Format: 117 127
|
||||
|
||||
Controller 117 indicates the end of a looped segment of a song, or
|
||||
in the case of a Master Loop, the end of the entire song. This
|
||||
controller signals that the Apogee Sound System should immediately
|
||||
loop back to the nearest non-resolved loop begin event (i.e., the
|
||||
nearest Controller 116 event that does not have a matching
|
||||
Controller 117 event).
|
||||
|
||||
Loop End events should not occur at the exact time of a Loop Begin
|
||||
event.
|
||||
|
||||
Note: Loop Begin/End pairs only affect the track they are placed
|
||||
on. If an entire song is to be looped through a segment, all
|
||||
tracks must contain Loop Begin events and Loop End events
|
||||
which occur on the same tick across all tracks. Be careful
|
||||
how you use non-synchronous single track loops - the composer
|
||||
is responsible for making sure that everything stays in sync.
|
||||
|
||||
See Controller 116 above for important information regarding
|
||||
placements of events to be included within loops.
|
||||
|
||||
|
||||
=============================================================
|
||||
| III. InitBeat Format |
|
||||
=============================================================
|
||||
|
||||
Each song should begin with an InitBeat. In terms of standard
|
||||
musical notation, an example of this would be a single 1/4 measure
|
||||
where the rest of the song is in 4/4, or a single 1/8 measure when
|
||||
the rest of the song is in 6/8. In MIDI terms, this is equivalent
|
||||
to one full cycle of the current timebase (e.g., for timebase 120, a
|
||||
single beat, 120 ticks long). Each track used should have its own
|
||||
InitBeat. This beat should not contain any note on/off data, sysex
|
||||
dump data, Loop Begin/End events (Controllers 116 and/or 117), or
|
||||
other non-Controller events. It may, however, contain MetaEvents
|
||||
such as text, copyrights, markers, program changes (normal or
|
||||
Controller 112), and the like.
|
||||
|
||||
The InitBeat should contain any needed Controller 110, 111, 112, or
|
||||
113 events needed to set up each track for the song. It may also
|
||||
contain other Controllers (pitch wheel, modulation, RPN/NRPN data,
|
||||
etc.) as desired. Keep in mind that you will need to repeat these
|
||||
controller values at some point within the Master Loop if you change
|
||||
them at any point in the song (and you rely on the original values
|
||||
when the song goes back to the Master Start point).
|
||||
|
||||
If no special handling is required for a track (i.e., the track is
|
||||
to be played by all instruments and no Controller resets/setups are
|
||||
desired), the InitBeat for that track may be left blank. It is
|
||||
advisable, however, to at least insert a single Controller 110 event
|
||||
with value 127, indicating that the track is to be played by all
|
||||
instruments. This is more a matter of personal preference, but it
|
||||
can come in handy for setting up templates with Cakewalk Pro for
|
||||
Windows and other programs that support default song templates.
|
||||
|
||||
If none of the tracks in a song require any special handling, all
|
||||
InitBeats may be left blank. Do not delete the InitBeat measure -
|
||||
just leave it blank.
|
||||
|
||||
Controller events may be spread throughout the InitBeat as desired.
|
||||
You may place them all on a single tick, or on separate ticks. Some
|
||||
instruments will behave unpredictably if all events for a track are
|
||||
placed on the same tick (e.g., the 5-6 events needed to adjust pitch
|
||||
bend parameters, especially if controllers 100 and 101 are set with
|
||||
value 0 and then reset with value 127 as recommended by Roland), so
|
||||
composer discretion is advised. At this time, simultaneous events
|
||||
across multiple tracks are not known to cause a problem.
|
||||
|
||||
The InitBeat may be inserted in any way desired. If you are using
|
||||
Cakewalk Pro for Windows, it is simplest to make the first measure a
|
||||
1/4 measure (one beat @ 4 per measure) and then switch the meter to
|
||||
whatever you want to use for the remainder of the song right at
|
||||
measure 2. Meter changes within the song are not affected by this,
|
||||
of course.
|
||||
|
BIN
audiolib/PUBLIC/INCLUDE/AUDIO_WF.LIB
Normal file
BIN
audiolib/PUBLIC/INCLUDE/AUDIO_WF.LIB
Normal file
Binary file not shown.
135
audiolib/PUBLIC/INCLUDE/FX_MAN.H
Normal file
135
audiolib/PUBLIC/INCLUDE/FX_MAN.H
Normal file
|
@ -0,0 +1,135 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: FX_MAN.H
|
||||
|
||||
author: James R. Dose
|
||||
date: March 17, 1994
|
||||
|
||||
Public header for FX_MAN.C
|
||||
|
||||
(c) Copyright 1994 James R. Dose. All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __FX_MAN_H
|
||||
#define __FX_MAN_H
|
||||
|
||||
#include "sndcards.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int MaxVoices;
|
||||
int MaxSampleBits;
|
||||
int MaxChannels;
|
||||
} fx_device;
|
||||
|
||||
#define MonoFx 1
|
||||
#define StereoFx 2
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned long Address;
|
||||
unsigned long Type;
|
||||
unsigned long Interrupt;
|
||||
unsigned long Dma8;
|
||||
unsigned long Dma16;
|
||||
unsigned long Midi;
|
||||
unsigned long Emu;
|
||||
} fx_blaster_config;
|
||||
|
||||
enum FX_ERRORS
|
||||
{
|
||||
FX_Warning = -2,
|
||||
FX_Error = -1,
|
||||
FX_Ok = 0,
|
||||
FX_ASSVersion,
|
||||
FX_BlasterError,
|
||||
FX_SoundCardError,
|
||||
FX_InvalidCard,
|
||||
FX_MultiVocError,
|
||||
FX_DPMI_Error
|
||||
};
|
||||
|
||||
enum fx_BLASTER_Types
|
||||
{
|
||||
fx_SB = 1,
|
||||
fx_SBPro = 2,
|
||||
fx_SB20 = 3,
|
||||
fx_SBPro2 = 4,
|
||||
fx_SB16 = 6
|
||||
};
|
||||
|
||||
|
||||
char *FX_ErrorString( int ErrorNumber );
|
||||
int FX_SetupCard( int SoundCard, fx_device *device );
|
||||
int FX_GetBlasterSettings( fx_blaster_config *blaster );
|
||||
int FX_SetupSoundBlaster( fx_blaster_config blaster, int *MaxVoices, int *MaxSampleBits, int *MaxChannels );
|
||||
int FX_Init( int SoundCard, int numvoices, int numchannels, int samplebits, unsigned mixrate );
|
||||
int FX_Shutdown( void );
|
||||
int FX_SetCallBack( void ( *function )( unsigned long ) );
|
||||
void FX_SetVolume( int volume );
|
||||
int FX_GetVolume( void );
|
||||
|
||||
void FX_SetReverseStereo( int setting );
|
||||
int FX_GetReverseStereo( void );
|
||||
void FX_SetReverb( int reverb );
|
||||
void FX_SetFastReverb( int reverb );
|
||||
int FX_GetMaxReverbDelay( void );
|
||||
int FX_GetReverbDelay( void );
|
||||
void FX_SetReverbDelay( int delay );
|
||||
|
||||
int FX_VoiceAvailable( int priority );
|
||||
int FX_EndLooping( int handle );
|
||||
int FX_SetPan( int handle, int vol, int left, int right );
|
||||
int FX_SetPitch( int handle, int pitchoffset );
|
||||
int FX_SetFrequency( int handle, int frequency );
|
||||
|
||||
int FX_PlayVOC( char *ptr, int pitchoffset, int vol, int left, int right,
|
||||
int priority, unsigned long callbackval );
|
||||
int FX_PlayLoopedVOC( char *ptr, long loopstart, long loopend,
|
||||
int pitchoffset, int vol, int left, int right, int priority,
|
||||
unsigned long callbackval );
|
||||
int FX_PlayWAV( char *ptr, int pitchoffset, int vol, int left, int right,
|
||||
int priority, unsigned long callbackval );
|
||||
int FX_PlayLoopedWAV( char *ptr, long loopstart, long loopend,
|
||||
int pitchoffset, int vol, int left, int right, int priority,
|
||||
unsigned long callbackval );
|
||||
int FX_PlayVOC3D( char *ptr, int pitchoffset, int angle, int distance,
|
||||
int priority, unsigned long callbackval );
|
||||
int FX_PlayWAV3D( char *ptr, int pitchoffset, int angle, int distance,
|
||||
int priority, unsigned long callbackval );
|
||||
int FX_PlayRaw( char *ptr, unsigned long length, unsigned rate,
|
||||
int pitchoffset, int vol, int left, int right, int priority,
|
||||
unsigned long callbackval );
|
||||
int FX_PlayLoopedRaw( char *ptr, unsigned long length, char *loopstart,
|
||||
char *loopend, unsigned rate, int pitchoffset, int vol, int left,
|
||||
int right, int priority, unsigned long callbackval );
|
||||
int FX_Pan3D( int handle, int angle, int distance );
|
||||
int FX_SoundActive( int handle );
|
||||
int FX_SoundsPlaying( void );
|
||||
int FX_StopSound( int handle );
|
||||
int FX_StopAllSounds( void );
|
||||
int FX_StartDemandFeedPlayback( void ( *function )( char **ptr, unsigned long *length ),
|
||||
int rate, int pitchoffset, int vol, int left, int right,
|
||||
int priority, unsigned long callbackval );
|
||||
int FX_StartRecording( int MixRate, void ( *function )( char *ptr, int length ) );
|
||||
void FX_StopRecord( void );
|
||||
|
||||
#endif
|
92
audiolib/PUBLIC/INCLUDE/MUSIC.H
Normal file
92
audiolib/PUBLIC/INCLUDE/MUSIC.H
Normal file
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: MUSIC.H
|
||||
|
||||
author: James R. Dose
|
||||
date: March 25, 1994
|
||||
|
||||
Public header for MUSIC.C
|
||||
|
||||
(c) Copyright 1994 James R. Dose. All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __MUSIC_H
|
||||
#define __MUSIC_H
|
||||
|
||||
#include "sndcards.h"
|
||||
|
||||
extern int MUSIC_ErrorCode;
|
||||
|
||||
enum MUSIC_ERRORS
|
||||
{
|
||||
MUSIC_Warning = -2,
|
||||
MUSIC_Error = -1,
|
||||
MUSIC_Ok = 0,
|
||||
MUSIC_ASSVersion,
|
||||
MUSIC_SoundCardError,
|
||||
MUSIC_MPU401Error,
|
||||
MUSIC_InvalidCard,
|
||||
MUSIC_MidiError,
|
||||
MUSIC_TaskManError,
|
||||
MUSIC_FMNotDetected,
|
||||
MUSIC_DPMI_Error
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned long tickposition;
|
||||
unsigned long milliseconds;
|
||||
unsigned int measure;
|
||||
unsigned int beat;
|
||||
unsigned int tick;
|
||||
} songposition;
|
||||
|
||||
#define MUSIC_LoopSong ( 1 == 1 )
|
||||
#define MUSIC_PlayOnce ( !MUSIC_LoopSong )
|
||||
|
||||
char *MUSIC_ErrorString( int ErrorNumber );
|
||||
int MUSIC_Init( int SoundCard, int Address );
|
||||
int MUSIC_Shutdown( void );
|
||||
void MUSIC_SetMaxFMMidiChannel( int channel );
|
||||
void MUSIC_SetVolume( int volume );
|
||||
void MUSIC_SetMidiChannelVolume( int channel, int volume );
|
||||
void MUSIC_ResetMidiChannelVolumes( void );
|
||||
int MUSIC_GetVolume( void );
|
||||
void MUSIC_SetLoopFlag( int loopflag );
|
||||
int MUSIC_SongPlaying( void );
|
||||
void MUSIC_Continue( void );
|
||||
void MUSIC_Pause( void );
|
||||
int MUSIC_StopSong( void );
|
||||
int MUSIC_PlaySong( unsigned char *song, int loopflag );
|
||||
void MUSIC_SetContext( int context );
|
||||
int MUSIC_GetContext( void );
|
||||
void MUSIC_SetSongTick( unsigned long PositionInTicks );
|
||||
void MUSIC_SetSongTime( unsigned long milliseconds );
|
||||
void MUSIC_SetSongPosition( int measure, int beat, int tick );
|
||||
void MUSIC_GetSongPosition( songposition *pos );
|
||||
void MUSIC_GetSongLength( songposition *pos );
|
||||
int MUSIC_FadeVolume( int tovolume, int milliseconds );
|
||||
int MUSIC_FadeActive( void );
|
||||
void MUSIC_StopFade( void );
|
||||
void MUSIC_RerouteMidiChannel( int channel, int cdecl ( *function )( int event, int c1, int c2 ) );
|
||||
void MUSIC_RegisterTimbreBank( unsigned char *timbres );
|
||||
|
||||
#endif
|
55
audiolib/PUBLIC/INCLUDE/SNDCARDS.H
Normal file
55
audiolib/PUBLIC/INCLUDE/SNDCARDS.H
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: SNDCARDS.H
|
||||
|
||||
author: James R. Dose
|
||||
date: March 31, 1994
|
||||
|
||||
Contains enumerated type definitions for sound cards.
|
||||
|
||||
(c) Copyright 1994 James R. Dose. All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __SNDCARDS_H
|
||||
#define __SNDCARDS_H
|
||||
|
||||
#define ASS_VERSION_STRING "1.12"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
// ASS_NoSound,
|
||||
SoundBlaster,
|
||||
ProAudioSpectrum,
|
||||
SoundMan16,
|
||||
Adlib,
|
||||
GenMidi,
|
||||
SoundCanvas,
|
||||
Awe32,
|
||||
WaveBlaster,
|
||||
SoundScape,
|
||||
UltraSound,
|
||||
SoundSource,
|
||||
TandySoundSource,
|
||||
PC,
|
||||
NumSoundCards
|
||||
} soundcardnames;
|
||||
|
||||
#endif
|
68
audiolib/PUBLIC/INCLUDE/TASK_MAN.H
Normal file
68
audiolib/PUBLIC/INCLUDE/TASK_MAN.H
Normal file
|
@ -0,0 +1,68 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: TASK_MAN.C
|
||||
|
||||
author: James R. Dose
|
||||
date: July 25, 1994
|
||||
|
||||
Public header for TASK_MAN.C, a low level timer task scheduler.
|
||||
|
||||
(c) Copyright 1994 James R. Dose. All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __TASK_MAN_H
|
||||
#define __TASK_MAN_H
|
||||
|
||||
enum TASK_ERRORS
|
||||
{
|
||||
TASK_Warning = -2,
|
||||
TASK_Error = -1,
|
||||
TASK_Ok = 0
|
||||
};
|
||||
|
||||
typedef struct task
|
||||
{
|
||||
struct task *next;
|
||||
struct task *prev;
|
||||
void ( *TaskService )( struct task * );
|
||||
void *data;
|
||||
long rate;
|
||||
volatile long count;
|
||||
int priority;
|
||||
int active;
|
||||
} task;
|
||||
|
||||
// TS_InInterrupt is TRUE during a taskman interrupt.
|
||||
// Use this if you have code that may be used both outside
|
||||
// and within interrupts.
|
||||
|
||||
extern volatile int TS_InInterrupt;
|
||||
|
||||
void TS_Shutdown( void );
|
||||
task *TS_ScheduleTask( void ( *Function )( task * ), int rate,
|
||||
int priority, void *data );
|
||||
int TS_Terminate( task *ptr );
|
||||
void TS_Dispatch( void );
|
||||
void TS_SetTaskRate( task *Task, int rate );
|
||||
void TS_UnlockMemory( void );
|
||||
int TS_LockMemory( void );
|
||||
|
||||
#endif
|
84
audiolib/PUBLIC/INCLUDE/USRHOOKS.C
Normal file
84
audiolib/PUBLIC/INCLUDE/USRHOOKS.C
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: USRHOOKS.C
|
||||
|
||||
author: James R. Dose
|
||||
date: July 26, 1994
|
||||
|
||||
This module contains cover functions for operations the library
|
||||
needs that may be restricted by the calling program. This code
|
||||
is left public for you to modify.
|
||||
**********************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "usrhooks.h"
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: USRHOOKS_GetMem
|
||||
|
||||
Allocates the requested amount of memory and returns a pointer to
|
||||
its location, or NULL if an error occurs. NOTE: pointer is assumed
|
||||
to be dword aligned.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_GetMem
|
||||
(
|
||||
void **ptr,
|
||||
unsigned long size
|
||||
)
|
||||
|
||||
{
|
||||
void *memory;
|
||||
|
||||
memory = malloc( size );
|
||||
if ( memory == NULL )
|
||||
{
|
||||
return( USRHOOKS_Error );
|
||||
}
|
||||
|
||||
*ptr = memory;
|
||||
|
||||
return( USRHOOKS_Ok );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: USRHOOKS_FreeMem
|
||||
|
||||
Deallocates the memory associated with the specified pointer.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_FreeMem
|
||||
(
|
||||
void *ptr
|
||||
)
|
||||
|
||||
{
|
||||
if ( ptr == NULL )
|
||||
{
|
||||
return( USRHOOKS_Error );
|
||||
}
|
||||
|
||||
free( ptr );
|
||||
|
||||
return( USRHOOKS_Ok );
|
||||
}
|
55
audiolib/PUBLIC/INCLUDE/USRHOOKS.H
Normal file
55
audiolib/PUBLIC/INCLUDE/USRHOOKS.H
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: USRHOOKS.H
|
||||
|
||||
author: James R. Dose
|
||||
date: July 26, 1994
|
||||
|
||||
Public header file for USRHOOKS.C.
|
||||
|
||||
This module contains cover functions for operations the library
|
||||
needs that may be restricted by the calling program. The function
|
||||
prototypes in this header should not be modified.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __USRHOOKS_H
|
||||
#define __USRHOOKS_H
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Error definitions
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
enum USRHOOKS_Errors
|
||||
{
|
||||
USRHOOKS_Warning = -2,
|
||||
USRHOOKS_Error = -1,
|
||||
USRHOOKS_Ok = 0
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function Prototypes
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_GetMem( void **ptr, unsigned long size );
|
||||
int USRHOOKS_FreeMem( void *ptr );
|
||||
|
||||
#endif
|
60
audiolib/PUBLIC/MIDI.TXT
Normal file
60
audiolib/PUBLIC/MIDI.TXT
Normal file
|
@ -0,0 +1,60 @@
|
|||
|
||||
Apogee Sound System MIDI notes:
|
||||
-------------------------------
|
||||
|
||||
FM Midi :
|
||||
|
||||
On OPL2 cards 9 voices are available. OPL3 cards have 18 voices. Melodic
|
||||
mode is used for music. For percussion (channel 10), each key is assigned
|
||||
a timbre to play at a pitch specified by the patch. This method was chosen
|
||||
based on the advice of Bobby Prince, Rob Wallace, George Sanger, and Lee
|
||||
Jackson, all of whom felt the 11 voice mode was too restricting for
|
||||
musicians.
|
||||
|
||||
Channels 1-16 are now supported.
|
||||
|
||||
Controllers supported
|
||||
|
||||
6 data entry msb |
|
||||
38 data entry lsb | - Only on Set Pitch Bend Range (RPN 0, 0)
|
||||
96 data increment |
|
||||
97 data decrement |
|
||||
7 channel volume
|
||||
10 pan (balance)
|
||||
121 reset all controllers
|
||||
123 all notes off
|
||||
|
||||
|
||||
AWE32 :
|
||||
|
||||
All controllers supported by API.
|
||||
|
||||
|
||||
Gravis Ultrasound:
|
||||
|
||||
1 modulation wheel
|
||||
6 data entry msb |
|
||||
38 data entry lsb | - Only on Set Pitch Bend Range (RPN 0, 0)
|
||||
96 data increment |
|
||||
97 data decrement |
|
||||
7 channel volume
|
||||
39 volume lsb ignored
|
||||
10 pan (balance)
|
||||
11 channel expression (volume)
|
||||
43 expression lsb ignored
|
||||
64 sustain (damper pedal)
|
||||
100 set registered parameter number
|
||||
101 set registered parameter number
|
||||
121 reset all controllers
|
||||
|
||||
120 all sounds off |
|
||||
123 all notes off |
|
||||
124 omni off | - Perform all notes off
|
||||
125 omni on |
|
||||
126 mono |
|
||||
127 mono |
|
||||
|
||||
|
||||
General MIDI (all other cards):
|
||||
|
||||
All controllers sent. Support depends on the card.
|
1713
audiolib/PUBLIC/NOTES.TXT
Normal file
1713
audiolib/PUBLIC/NOTES.TXT
Normal file
File diff suppressed because it is too large
Load diff
BIN
audiolib/PUBLIC/PM/GMTIMBRE.TMB
Normal file
BIN
audiolib/PUBLIC/PM/GMTIMBRE.TMB
Normal file
Binary file not shown.
45
audiolib/PUBLIC/PM/MAKEFILE
Normal file
45
audiolib/PUBLIC/PM/MAKEFILE
Normal file
|
@ -0,0 +1,45 @@
|
|||
.OPTIMIZE
|
||||
|
||||
lib_dir = ..
|
||||
prg_dir = .
|
||||
obj_dir = $(prg_dir)\obj
|
||||
main_dir = $(prg_dir)\source
|
||||
header_dir = $(main_dir);$(lib_dir)\INCLUDE
|
||||
tasm_include_dir = /i$(main_dir) /i$(lib_dir)\source
|
||||
|
||||
lib_files = $(lib_dir)\audio_wf.lib
|
||||
|
||||
.h : $(header_dir)
|
||||
.c : $(header_dir)
|
||||
.asm : $(header_dir)
|
||||
.obj : $(obj_dir)
|
||||
|
||||
object_files = pm.obj usrhooks.obj
|
||||
|
||||
tasm_options = /zi /p $(tasm_include_dir)
|
||||
#wcc_options = /w4 /d2 /i=$(header_dir)
|
||||
wcc_options = /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
wlink_options =
|
||||
|
||||
pm.exe: $(object_files) $(lib_files) makefile
|
||||
%create temp.lnk
|
||||
%append temp.lnk option quiet
|
||||
%append temp.lnk option stack=128k
|
||||
%append temp.lnk system dos4g
|
||||
%append temp.lnk name $^&
|
||||
%append temp.lnk debug all
|
||||
%append temp.lnk libfile $(lib_files)
|
||||
for %i in ($(object_files)) do %append temp.lnk file $(obj_dir)\%i
|
||||
wlink $(wlink_options) @temp.lnk
|
||||
#wc2dbg pm.exe
|
||||
del temp.lnk
|
||||
|
||||
.asm.obj :
|
||||
tasm $(tasm_options) $[* $(obj_dir)\$^&
|
||||
|
||||
.c.obj :
|
||||
wcc386 $(wcc_options) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
pm.obj : pm.c music.h sndcards.h
|
||||
|
||||
usrhooks.obj : usrhooks.c usrhooks.h
|
BIN
audiolib/PUBLIC/PM/MAKETMB.EXE
Normal file
BIN
audiolib/PUBLIC/PM/MAKETMB.EXE
Normal file
Binary file not shown.
BIN
audiolib/PUBLIC/PM/OBJ/PM.OBJ
Normal file
BIN
audiolib/PUBLIC/PM/OBJ/PM.OBJ
Normal file
Binary file not shown.
BIN
audiolib/PUBLIC/PM/OBJ/USRHOOKS.OBJ
Normal file
BIN
audiolib/PUBLIC/PM/OBJ/USRHOOKS.OBJ
Normal file
Binary file not shown.
BIN
audiolib/PUBLIC/PM/PM.EXE
Normal file
BIN
audiolib/PUBLIC/PM/PM.EXE
Normal file
Binary file not shown.
37
audiolib/PUBLIC/PM/PM.TXT
Normal file
37
audiolib/PUBLIC/PM/PM.TXT
Normal file
|
@ -0,0 +1,37 @@
|
|||
PM is a quick and dirty file player for DOS using the Apogee Sound System.
|
||||
|
||||
If you type PM with no arguments you'll get the following information:
|
||||
|
||||
PM Version 1.10 by Jim Dos‚
|
||||
Usage: PM [ midifile ] CARD=[ card number ] MPU=[ port address in hex ]
|
||||
TIMBRE=[ timbre file ]
|
||||
|
||||
card number =
|
||||
0 : General Midi
|
||||
1 : Sound Canvas
|
||||
2 : Awe 32
|
||||
3 : WaveBlaster
|
||||
4 : SoundBlaster
|
||||
5 : Pro AudioSpectrum
|
||||
6 : Sound Man 16
|
||||
7 : Adlib
|
||||
8 : Ensoniq SoundScape
|
||||
9 : Gravis UltraSound
|
||||
|
||||
So, if you want to play FANFARE.MID on a Sound Canvas at port 330h, type:
|
||||
PM Fanfare.mid card=1 mpu=330
|
||||
|
||||
The TIMBRE parameter tells PM to use the MAKETMB generated timbre file
|
||||
specified. This is useful when you're testing new timbres and want to
|
||||
see how they sound.
|
||||
|
||||
You can also set an environment variable that has the card settings you
|
||||
want to use by default and PM will use it. Just type "SET PM=<card>,<mpu>"
|
||||
where <card> is the card number and <mpu> is the address of the MIDI card
|
||||
(if any). So for a Sound Canvas at port 330h, you would use "SET PM=1,330".
|
||||
Then you can just type "PM Fanfare.mid" on the command line to play your
|
||||
song without worrying about the card and mpu parameters.
|
||||
|
||||
If you have any problems or questions, call me at (214)-271-1365 ext. 221.
|
||||
|
||||
Jim Dos‚
|
31
audiolib/PUBLIC/PM/README.TXT
Normal file
31
audiolib/PUBLIC/PM/README.TXT
Normal file
|
@ -0,0 +1,31 @@
|
|||
|
||||
Here's a quick explanation of the files included in this zip file:
|
||||
|
||||
README.TXT : This file
|
||||
PM.TXT : A quick explanation of the PM.EXE midi player
|
||||
PM.EXE : PM - a command line midi file player
|
||||
MAKETMB.EXE : this generates TMB files for use by PM. Read GMTIMBRE.INI
|
||||
GMTIMBRE.TMB : A timbre file generated by MAKETMB
|
||||
GMTIMBRE.INI : An example timbre script for MAKETMB. Generates GMTIMBRE.TMB
|
||||
PERCUS.IBK : General MIDI percussion instruments. Used by GMTIMBRE.INI
|
||||
GENMIDI.IBK : General MIDI percussion instruments. Used by GMTIMBRE.INI
|
||||
TIMBRES.ZIP : A couple sets of instrument banks that can be used as
|
||||
source material for fm instruments.
|
||||
|
||||
|
||||
MAKETMB is a simple utility to allow developers to develop and use their
|
||||
own FM instrument banks with the Apogee Sound System. It can generate
|
||||
either a data file or source code (ask me if you'd prefer to use this
|
||||
feature) containing the instruments and usable by the sound system.
|
||||
|
||||
The benefit of having the instruments in a data file is that multiple files
|
||||
could be made, each with instruments specific to a particular song or set
|
||||
of songs. It also allows you to make quick changes to the instruments and
|
||||
hear them in a song (using PM) very quickly, without having to recompile
|
||||
the code (very useful for musicians).
|
||||
|
||||
I know I'm terrible at writing documentation, so if these files are a little
|
||||
vague, give me a call and I'll walk you through it.
|
||||
|
||||
Jim Dosé‚
|
||||
(214)-271-1365 Ext. 221
|
537
audiolib/PUBLIC/PM/SOURCE/PM.C
Normal file
537
audiolib/PUBLIC/PM/SOURCE/PM.C
Normal file
|
@ -0,0 +1,537 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: PM.C
|
||||
|
||||
author: James R. Dose
|
||||
date: January 16, 1994
|
||||
|
||||
Simple music player.
|
||||
|
||||
(c) Copyright 1994 James R. Dose. All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#include <conio.h>
|
||||
#include <dos.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "music.h"
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function prototypes
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void LoadTimbres( char *timbrefile );
|
||||
char *LoadMidi( char *filename );
|
||||
char *GetUserText( const char *parameter );
|
||||
int CheckUserParm( const char *parameter );
|
||||
void DefaultExtension( char *path, char *extension );
|
||||
void TurnOffTextCursor( void );
|
||||
void TurnOnTextCursor( void );
|
||||
|
||||
#define TRUE ( 1 == 1 )
|
||||
#define FALSE ( !TRUE )
|
||||
|
||||
#define NUMCARDS 10
|
||||
|
||||
char *SoundCardNames[] =
|
||||
{
|
||||
"General Midi", "Sound Canvas", "Awe 32", "WaveBlaster",
|
||||
"SoundBlaster", "Pro AudioSpectrum", "Sound Man 16", "Adlib",
|
||||
"Ensoniq SoundScape", "Gravis UltraSound"
|
||||
};
|
||||
|
||||
int SoundCardNums[] =
|
||||
{
|
||||
GenMidi, SoundCanvas, Awe32, WaveBlaster,
|
||||
SoundBlaster, ProAudioSpectrum, SoundMan16,
|
||||
Adlib, SoundScape, UltraSound
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: main
|
||||
|
||||
Sets up sound cards, calls the demo, and then cleans up.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void main
|
||||
(
|
||||
int argc,
|
||||
char *argv[]
|
||||
)
|
||||
|
||||
{
|
||||
int card;
|
||||
int address;
|
||||
int status;
|
||||
char *SongPtr = NULL;
|
||||
char *ptr;
|
||||
char filename[ 128 ];
|
||||
char timbrefile[ 128 ];
|
||||
int gotopos = 0;
|
||||
int measure = 0;
|
||||
int beat = 0;
|
||||
int tick = 0;
|
||||
int time = 0;
|
||||
|
||||
printf( "\nPM EMIDI Music Player Version 1.21 Copyright (c) 1996 by Jim Dose\n" );
|
||||
|
||||
if ( ( CheckUserParm( "?" ) ) || ( argc < 2 ) )
|
||||
{
|
||||
int index;
|
||||
|
||||
printf(
|
||||
"Usage: PM [ midifile ] CARD=[ card number ] MPU=[ port address in hex ]\n"
|
||||
" TIMBRE=[ timbre file ] TIME=[minutes:seconds:milliseconds]\n"
|
||||
" POSITION=[measure:beat:tick]\n\n"
|
||||
" card number = \n" );
|
||||
for( index = 0; index < NUMCARDS; index++ )
|
||||
{
|
||||
printf( " %d : %s\n", index, SoundCardNames[ index ] );
|
||||
}
|
||||
|
||||
printf( "\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
|
||||
// Default is GenMidi
|
||||
card = 0;
|
||||
address = 0x330;
|
||||
|
||||
ptr = getenv( "PM" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d,%x", &card, &address );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "MPU" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%x", &address );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "TIMBRE" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%s", timbrefile );
|
||||
LoadTimbres( timbrefile );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "POSITION" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
gotopos = 1;
|
||||
sscanf( ptr, "%d:%d:%d", &measure, &beat, &tick );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "TIME" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
int minutes = 0;
|
||||
int seconds = 0;
|
||||
int milli = 0;
|
||||
|
||||
gotopos = 2;
|
||||
sscanf( ptr, "%d:%d:%d", &minutes, &seconds, &milli );
|
||||
time = minutes * ( 60 * 1000 ) + seconds * 1000 + milli;
|
||||
}
|
||||
|
||||
ptr = GetUserText( "CARD" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d", &card );
|
||||
}
|
||||
|
||||
if ( ( card < 0 ) || ( card >= NUMCARDS ) )
|
||||
{
|
||||
printf( "Value out of range for CARD: %d\n", card );
|
||||
}
|
||||
|
||||
status = MUSIC_Init( SoundCardNums[ card ], address );
|
||||
if ( status != MUSIC_Ok )
|
||||
{
|
||||
printf( "Error - %s\n", MUSIC_ErrorString( status ) );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
strcpy( filename, argv[ 1 ] );
|
||||
DefaultExtension( filename, ".mid" );
|
||||
|
||||
SongPtr = LoadMidi( filename );
|
||||
|
||||
MUSIC_SetVolume( 255 );
|
||||
|
||||
status = MUSIC_PlaySong( SongPtr, MUSIC_LoopSong );
|
||||
if ( status != MUSIC_Ok )
|
||||
{
|
||||
printf( "Error - %s\n", MUSIC_ErrorString( status ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
char ch;
|
||||
songposition pos;
|
||||
|
||||
if ( gotopos == 1 )
|
||||
{
|
||||
MUSIC_SetSongPosition( measure, beat, tick );
|
||||
}
|
||||
else if ( gotopos == 2 )
|
||||
{
|
||||
MUSIC_SetSongTime( time );
|
||||
}
|
||||
|
||||
printf( "Playing file '%s'.\n\n", filename );
|
||||
printf( "Press F to advance one measure.\n"
|
||||
"Press R to rewind one measure.\n"
|
||||
"Press G to go to the selected position.\n"
|
||||
"Press ESCape to end.\n\n" );
|
||||
|
||||
MUSIC_GetSongLength( &pos );
|
||||
printf( "Song length: time (m:s:ms) = %d:%d:%d, "
|
||||
"(measure:beat:tick) = %d:%d:%d\n\n",
|
||||
pos.milliseconds / (60*1000),
|
||||
( pos.milliseconds / 1000 ) % 60,
|
||||
pos.milliseconds % 1000,
|
||||
pos.measure, pos.beat, pos.tick );
|
||||
ch = 0;
|
||||
|
||||
TurnOffTextCursor();
|
||||
while( ch != 27 )
|
||||
{
|
||||
MUSIC_GetSongPosition( &pos );
|
||||
printf( "time (m:s:ms) = %d:%d:%d \t(measure:beat:tick) = %d:%d:%d \r",
|
||||
pos.milliseconds / (60*1000),
|
||||
( pos.milliseconds / 1000 ) % 60,
|
||||
pos.milliseconds % 1000,
|
||||
pos.measure, pos.beat, pos.tick );
|
||||
fflush( stdout );
|
||||
|
||||
if ( kbhit() )
|
||||
{
|
||||
ch = getch();
|
||||
|
||||
if ( ( ch == 'G' ) || ( ch == 'g' ) )
|
||||
{
|
||||
if ( gotopos == 1 )
|
||||
{
|
||||
MUSIC_SetSongPosition( measure, beat, tick );
|
||||
}
|
||||
else
|
||||
{
|
||||
MUSIC_SetSongTime( time );
|
||||
}
|
||||
|
||||
ch = 0;
|
||||
while( kbhit() )
|
||||
{
|
||||
getch();
|
||||
}
|
||||
}
|
||||
if ( ( ch == 'F' ) || ( ch == 'f' ) )
|
||||
{
|
||||
MUSIC_SetSongPosition( pos.measure + 1, 1, 0 );
|
||||
ch = 0;
|
||||
while( kbhit() )
|
||||
{
|
||||
getch();
|
||||
}
|
||||
}
|
||||
if ( ( ch == 'R' ) || ( ch == 'r' ) )
|
||||
{
|
||||
MUSIC_SetSongPosition( pos.measure - 1, 1, 0 );
|
||||
ch = 0;
|
||||
while( kbhit() )
|
||||
{
|
||||
getch();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TurnOnTextCursor();
|
||||
MUSIC_StopSong();
|
||||
}
|
||||
|
||||
free( SongPtr );
|
||||
MUSIC_Shutdown();
|
||||
printf( "\n" );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: LoadTimbres
|
||||
|
||||
Loads the instruments from disk
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void LoadTimbres
|
||||
(
|
||||
char *timbrefile
|
||||
)
|
||||
|
||||
{
|
||||
FILE *in;
|
||||
long size;
|
||||
char *TimbrePtr;
|
||||
|
||||
if ( ( in = fopen( timbrefile, "rb" ) ) == NULL )
|
||||
{
|
||||
printf( "Cannot open '%s' for read.\n", timbrefile );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
fseek( in, 0, SEEK_END );
|
||||
size = ftell( in );
|
||||
fseek( in, 0, SEEK_SET );
|
||||
|
||||
TimbrePtr = ( char * )malloc( size );
|
||||
if ( TimbrePtr == NULL )
|
||||
{
|
||||
printf( "Out of memory while reading '%s'.\n", timbrefile );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
if ( fread( TimbrePtr, size, 1, in ) != 1 )
|
||||
{
|
||||
printf( "Unexpected end of file while reading '%s'.\n", timbrefile );
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fclose( in );
|
||||
|
||||
MUSIC_RegisterTimbreBank( TimbrePtr );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: LoadMidi
|
||||
|
||||
Loads the midi file from disk.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
char *LoadMidi
|
||||
(
|
||||
char *filename
|
||||
)
|
||||
|
||||
{
|
||||
FILE *in;
|
||||
long size;
|
||||
char *MidiPtr;
|
||||
|
||||
if ( ( in = fopen( filename, "rb" ) ) == NULL )
|
||||
{
|
||||
printf( "Cannot open '%s' for read.\n", filename );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
fseek( in, 0, SEEK_END );
|
||||
size = ftell( in );
|
||||
fseek( in, 0, SEEK_SET );
|
||||
|
||||
MidiPtr = ( char * )malloc( size );
|
||||
if ( MidiPtr == NULL )
|
||||
{
|
||||
printf( "Out of memory while reading '%s'.\n", filename );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
if ( fread( MidiPtr, size, 1, in ) != 1 )
|
||||
{
|
||||
printf( "Unexpected end of file while reading '%s'.\n", filename );
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fclose( in );
|
||||
|
||||
return( MidiPtr );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: GetUserText
|
||||
|
||||
Checks if the specified string is present in the command line
|
||||
and returns a pointer to the text following it.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
char *GetUserText
|
||||
(
|
||||
const char *parameter
|
||||
)
|
||||
|
||||
{
|
||||
int i;
|
||||
int length;
|
||||
char *text;
|
||||
char *ptr;
|
||||
|
||||
extern int _argc;
|
||||
extern char **_argv;
|
||||
|
||||
text = NULL;
|
||||
length = strlen( parameter );
|
||||
i = 1;
|
||||
while( i < _argc )
|
||||
{
|
||||
ptr = _argv[ i ];
|
||||
|
||||
if ( ( strnicmp( parameter, ptr, length ) == 0 ) &&
|
||||
( *( ptr + length ) == '=' ) )
|
||||
{
|
||||
text = ptr + length + 1;
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return( text );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: CheckUserParm
|
||||
|
||||
Checks if the specified string is present in the command line.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int CheckUserParm
|
||||
(
|
||||
const char *parameter
|
||||
)
|
||||
|
||||
{
|
||||
int i;
|
||||
int found;
|
||||
char *ptr;
|
||||
|
||||
extern int _argc;
|
||||
extern char **_argv;
|
||||
|
||||
found = FALSE;
|
||||
i = 1;
|
||||
while( i < _argc )
|
||||
{
|
||||
ptr = _argv[ i ];
|
||||
|
||||
// Only check parameters preceded by - or /
|
||||
if ( ( *ptr == '-' ) || ( *ptr == '/' ) )
|
||||
{
|
||||
ptr++;
|
||||
if ( stricmp( parameter, ptr ) == 0 )
|
||||
{
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return( found );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: DefaultExtension
|
||||
|
||||
Checks if the specified filename contains an extension and adds
|
||||
one if it doesn't.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void DefaultExtension
|
||||
(
|
||||
char *path,
|
||||
char *extension
|
||||
)
|
||||
|
||||
{
|
||||
char *src;
|
||||
|
||||
//
|
||||
// if path doesn't have a .EXT, append extension
|
||||
// (extension should include the .)
|
||||
//
|
||||
src = path + strlen( path ) - 1;
|
||||
|
||||
while( ( *src != '\\' ) && ( src != path ) )
|
||||
{
|
||||
if ( *src == '.' )
|
||||
{
|
||||
// it has an extension
|
||||
return;
|
||||
}
|
||||
src--;
|
||||
}
|
||||
|
||||
strcat( path, extension );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: TurnOffTextCursor
|
||||
|
||||
Turns the cursor off.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void TurnOffTextCursor
|
||||
(
|
||||
void
|
||||
)
|
||||
|
||||
{
|
||||
union REGS regs;
|
||||
|
||||
regs.w.ax = 0x0100;
|
||||
regs.w.cx = 0x2000;
|
||||
#ifdef __FLAT__
|
||||
int386(0x10,®s,®s);
|
||||
#else
|
||||
int86(0x10,®s,®s);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: TurnOnTextCursor
|
||||
|
||||
Turns the cursor on.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void TurnOnTextCursor
|
||||
(
|
||||
void
|
||||
)
|
||||
|
||||
{
|
||||
union REGS regs;
|
||||
|
||||
regs.w.ax = 0x0100;
|
||||
regs.w.cx = 0x0708;
|
||||
#ifdef __FLAT__
|
||||
int386(0x10,®s,®s);
|
||||
#else
|
||||
int86(0x10,®s,®s);
|
||||
#endif
|
||||
}
|
84
audiolib/PUBLIC/PM/SOURCE/USRHOOKS.C
Normal file
84
audiolib/PUBLIC/PM/SOURCE/USRHOOKS.C
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: USRHOOKS.C
|
||||
|
||||
author: James R. Dose
|
||||
date: July 26, 1994
|
||||
|
||||
This module contains cover functions for operations the library
|
||||
needs that may be restricted by the calling program. This code
|
||||
is left public for you to modify.
|
||||
**********************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "usrhooks.h"
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: USRHOOKS_GetMem
|
||||
|
||||
Allocates the requested amount of memory and returns a pointer to
|
||||
its location, or NULL if an error occurs. NOTE: pointer is assumed
|
||||
to be dword aligned.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_GetMem
|
||||
(
|
||||
void **ptr,
|
||||
unsigned long size
|
||||
)
|
||||
|
||||
{
|
||||
void *memory;
|
||||
|
||||
memory = malloc( size );
|
||||
if ( memory == NULL )
|
||||
{
|
||||
return( USRHOOKS_Error );
|
||||
}
|
||||
|
||||
*ptr = memory;
|
||||
|
||||
return( USRHOOKS_Ok );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: USRHOOKS_FreeMem
|
||||
|
||||
Deallocates the memory associated with the specified pointer.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_FreeMem
|
||||
(
|
||||
void *ptr
|
||||
)
|
||||
|
||||
{
|
||||
if ( ptr == NULL )
|
||||
{
|
||||
return( USRHOOKS_Error );
|
||||
}
|
||||
|
||||
free( ptr );
|
||||
|
||||
return( USRHOOKS_Ok );
|
||||
}
|
55
audiolib/PUBLIC/PM/SOURCE/USRHOOKS.H
Normal file
55
audiolib/PUBLIC/PM/SOURCE/USRHOOKS.H
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: USRHOOKS.H
|
||||
|
||||
author: James R. Dose
|
||||
date: July 26, 1994
|
||||
|
||||
Public header file for USRHOOKS.C.
|
||||
|
||||
This module contains cover functions for operations the library
|
||||
needs that may be restricted by the calling program. The function
|
||||
prototypes in this header should not be modified.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __USRHOOKS_H
|
||||
#define __USRHOOKS_H
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Error definitions
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
enum USRHOOKS_Errors
|
||||
{
|
||||
USRHOOKS_Warning = -2,
|
||||
USRHOOKS_Error = -1,
|
||||
USRHOOKS_Ok = 0
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function Prototypes
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_GetMem( void **ptr, unsigned long size );
|
||||
int USRHOOKS_FreeMem( void *ptr );
|
||||
|
||||
#endif
|
BIN
audiolib/PUBLIC/PM/TIMBRES.ZIP
Normal file
BIN
audiolib/PUBLIC/PM/TIMBRES.ZIP
Normal file
Binary file not shown.
3
audiolib/PUBLIC/PS/BINDPS.BAT
Normal file
3
audiolib/PUBLIC/PS/BINDPS.BAT
Normal file
|
@ -0,0 +1,3 @@
|
|||
ren ps.exe ps2.exe
|
||||
call bind ps2 ps
|
||||
del ps2.exe
|
45
audiolib/PUBLIC/PS/MAKEFILE
Normal file
45
audiolib/PUBLIC/PS/MAKEFILE
Normal file
|
@ -0,0 +1,45 @@
|
|||
.OPTIMIZE
|
||||
|
||||
lib_dir = ..
|
||||
prg_dir = .
|
||||
obj_dir = $(prg_dir)\
|
||||
main_dir = $(prg_dir)\
|
||||
header_dir = $(main_dir);$(lib_dir)\INCLUDE
|
||||
tasm_include_dir = /i$(main_dir) /i$(lib_dir)\source
|
||||
|
||||
lib_files = $(lib_dir)\audio_wf.lib
|
||||
|
||||
.h : $(header_dir)
|
||||
.c : $(header_dir)
|
||||
.asm : $(header_dir)
|
||||
.obj : $(obj_dir)
|
||||
|
||||
object_files = ps.obj usrhooks.obj
|
||||
|
||||
tasm_options = /zi /p $(tasm_include_dir)
|
||||
#wcc_options = /w4 /d2 /i=$(header_dir)
|
||||
wcc_options = /w4 /d1 /omaxnet /zp4 /5r /i=$(header_dir)
|
||||
wlink_options =
|
||||
|
||||
ps.exe: $(object_files) $(lib_files) makefile
|
||||
%create temp.lnk
|
||||
%append temp.lnk option quiet
|
||||
%append temp.lnk option stack=128k
|
||||
%append temp.lnk system dos4g
|
||||
%append temp.lnk name $^&
|
||||
%append temp.lnk debug all
|
||||
%append temp.lnk libfile $(lib_files)
|
||||
for %i in ($(object_files)) do %append temp.lnk file $(obj_dir)\%i
|
||||
wlink $(wlink_options) @temp.lnk
|
||||
#wc2dbg ps.exe
|
||||
del temp.lnk
|
||||
|
||||
.asm.obj :
|
||||
tasm $(tasm_options) $[* $(obj_dir)\$^&
|
||||
|
||||
.c.obj :
|
||||
wcc386 $(wcc_options) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
ps.obj : ps.c fx_man.h sndcards.h
|
||||
|
||||
usrhooks.obj : usrhooks.c usrhooks.h
|
410
audiolib/PUBLIC/PS/PS.C
Normal file
410
audiolib/PUBLIC/PS/PS.C
Normal file
|
@ -0,0 +1,410 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: PS.C
|
||||
|
||||
author: James R. Dose
|
||||
date: December 12, 1995
|
||||
|
||||
Simple sound player.
|
||||
|
||||
(c) Copyright 1995 James R. Dose. All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#include <conio.h>
|
||||
#include <dos.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "fx_man.h"
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function prototypes
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
char *LoadFile( char *filename, int *length );
|
||||
char *GetUserText( const char *parameter );
|
||||
int CheckUserParm( const char *parameter );
|
||||
void DefaultExtension( char *path, char *extension );
|
||||
|
||||
#define TRUE ( 1 == 1 )
|
||||
#define FALSE ( !TRUE )
|
||||
|
||||
#define NUMCARDS 8
|
||||
|
||||
char *SoundCardNames[] =
|
||||
{
|
||||
"Sound Blaster", "Awe 32", "Pro AudioSpectrum",
|
||||
"Sound Man 16", "Ensoniq SoundScape", "Gravis UltraSound",
|
||||
"Disney SoundSource", "Tandy SoundSource"
|
||||
};
|
||||
|
||||
int SoundCardNums[] =
|
||||
{
|
||||
SoundBlaster, Awe32, ProAudioSpectrum, SoundMan16,
|
||||
SoundScape, UltraSound, SoundSource, TandySoundSource
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: main
|
||||
|
||||
Sets up sound cards, calls the demo, and then cleans up.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void main
|
||||
(
|
||||
int argc,
|
||||
char *argv[]
|
||||
)
|
||||
|
||||
{
|
||||
int card;
|
||||
int voices;
|
||||
int rate;
|
||||
int bits;
|
||||
int channels;
|
||||
int reverb;
|
||||
int status;
|
||||
int length;
|
||||
int voice;
|
||||
fx_device device;
|
||||
char *SoundPtr = NULL;
|
||||
char *ptr;
|
||||
char filename[ 128 ];
|
||||
char ch;
|
||||
|
||||
printf( "\nPS Version 1.0 by Jim Dose\n" );
|
||||
|
||||
if ( ( CheckUserParm( "?" ) ) || ( argc < 2 ) )
|
||||
{
|
||||
int index;
|
||||
|
||||
printf(
|
||||
"Usage: PS [ soundfile ] CARD=[ card # ] VOICES=[ # of voices ]\n"
|
||||
" BITS=[ 8 or 16 ] [MONO/STEREO] RATE=[ mixing rate ]\n"
|
||||
" REVERB=[ reverb amount]\n\n"
|
||||
" sound card # = \n" );
|
||||
for( index = 0; index < NUMCARDS; index++ )
|
||||
{
|
||||
printf( " %d : %s\n", index, SoundCardNames[ index ] );
|
||||
}
|
||||
|
||||
printf( "\nDefault: PS [ soundfile ] CARD=0 VOICES=4 "
|
||||
"BITS=8 MONO RATE=11000\n\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
|
||||
// Default is Sound Blaster
|
||||
card = 0;
|
||||
voices = 4;
|
||||
bits = 8;
|
||||
channels = 1;
|
||||
reverb = 0;
|
||||
rate = 11000;
|
||||
|
||||
ptr = GetUserText( "VOICES" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d", &voices );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "BITS" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d", &bits );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "RATE" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d", &rate );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "REVERB" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d", &reverb );
|
||||
}
|
||||
|
||||
ptr = GetUserText( "MONO" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
channels = 1;
|
||||
}
|
||||
|
||||
ptr = GetUserText( "STEREO" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
channels = 2;
|
||||
}
|
||||
|
||||
ptr = GetUserText( "CARD" );
|
||||
if ( ptr != NULL )
|
||||
{
|
||||
sscanf( ptr, "%d", &card );
|
||||
}
|
||||
|
||||
if ( ( card < 0 ) || ( card >= NUMCARDS ) )
|
||||
{
|
||||
printf( "Value out of range for sound card #: %d\n", card );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
strcpy( filename, argv[ 1 ] );
|
||||
DefaultExtension( filename, ".wav" );
|
||||
SoundPtr = LoadFile( filename, &length );
|
||||
if ( !SoundPtr )
|
||||
{
|
||||
strcpy( filename, argv[ 1 ] );
|
||||
DefaultExtension( filename, ".voc" );
|
||||
SoundPtr = LoadFile( filename, &length );
|
||||
if ( !SoundPtr )
|
||||
{
|
||||
strcpy( filename, argv[ 1 ] );
|
||||
SoundPtr = LoadFile( filename, &length );
|
||||
if ( !SoundPtr )
|
||||
{
|
||||
printf( "Cannot open '%s' for read.\n", argv[ 1 ] );
|
||||
exit( 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
status = FX_SetupCard( card, &device );
|
||||
if ( status != FX_Ok )
|
||||
{
|
||||
printf( "%s\n", FX_ErrorString( status ) );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
status = FX_Init( card, voices, channels, bits, rate );
|
||||
if ( status != FX_Ok )
|
||||
{
|
||||
printf( "%s\n", FX_ErrorString( status ) );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
FX_SetReverb( reverb );
|
||||
|
||||
FX_SetVolume( 255 );
|
||||
|
||||
printf( "Playing file '%s'.\n\n", filename );
|
||||
printf( "Press any key to play the sound.\n"
|
||||
"Press ESCape to end.\n\n" );
|
||||
|
||||
ch = 0;
|
||||
while( ch != 27 )
|
||||
{
|
||||
if ( stricmp( &filename[ strlen( filename ) - 3 ], "WAV" ) == 0 )
|
||||
{
|
||||
voice = FX_PlayWAV( SoundPtr, 0, 255, 255, 255, 0, 0 );
|
||||
}
|
||||
else if ( stricmp( &filename[ strlen( filename ) - 3 ], "VOC" ) == 0 )
|
||||
{
|
||||
voice = FX_PlayVOC( SoundPtr, 0, 255, 255, 255, 0, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
voice = FX_PlayRaw( SoundPtr, length, rate, 0, 255, 255, 255, 0, 0 );
|
||||
}
|
||||
|
||||
if ( voice < FX_Ok )
|
||||
{
|
||||
printf( "Sound error - %s\n", FX_ErrorString( status ) );
|
||||
}
|
||||
|
||||
ch = getch();
|
||||
}
|
||||
|
||||
FX_StopAllSounds();
|
||||
free( SoundPtr );
|
||||
FX_Shutdown();
|
||||
|
||||
printf( "\n" );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: LoadFile
|
||||
|
||||
Loads a file from disk.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
char *LoadFile
|
||||
(
|
||||
char *filename,
|
||||
int *length
|
||||
)
|
||||
|
||||
{
|
||||
FILE *in;
|
||||
long size;
|
||||
char *ptr;
|
||||
|
||||
if ( ( in = fopen( filename, "rb" ) ) == NULL )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
fseek( in, 0, SEEK_END );
|
||||
size = ftell( in );
|
||||
fseek( in, 0, SEEK_SET );
|
||||
|
||||
ptr = ( char * )malloc( size );
|
||||
if ( ptr == NULL )
|
||||
{
|
||||
printf( "Out of memory while reading '%s'.\n", filename );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
if ( fread( ptr, size, 1, in ) != 1 )
|
||||
{
|
||||
printf( "Unexpected end of file while reading '%s'.\n", filename );
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fclose( in );
|
||||
|
||||
*length = size;
|
||||
|
||||
return( ptr );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: GetUserText
|
||||
|
||||
Checks if the specified string is present in the command line
|
||||
and returns a pointer to the text following it.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
char *GetUserText
|
||||
(
|
||||
const char *parameter
|
||||
)
|
||||
|
||||
{
|
||||
int i;
|
||||
int length;
|
||||
char *text;
|
||||
char *ptr;
|
||||
|
||||
extern int _argc;
|
||||
extern char **_argv;
|
||||
|
||||
text = NULL;
|
||||
length = strlen( parameter );
|
||||
i = 1;
|
||||
while( i < _argc )
|
||||
{
|
||||
ptr = _argv[ i ];
|
||||
|
||||
if ( ( strnicmp( parameter, ptr, length ) == 0 ) &&
|
||||
( *( ptr + length ) == '=' ) )
|
||||
{
|
||||
text = ptr + length + 1;
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return( text );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: CheckUserParm
|
||||
|
||||
Checks if the specified string is present in the command line.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int CheckUserParm
|
||||
(
|
||||
const char *parameter
|
||||
)
|
||||
|
||||
{
|
||||
int i;
|
||||
int found;
|
||||
char *ptr;
|
||||
|
||||
extern int _argc;
|
||||
extern char **_argv;
|
||||
|
||||
found = FALSE;
|
||||
i = 1;
|
||||
while( i < _argc )
|
||||
{
|
||||
ptr = _argv[ i ];
|
||||
|
||||
// Only check parameters preceded by - or /
|
||||
if ( ( *ptr == '-' ) || ( *ptr == '/' ) )
|
||||
{
|
||||
ptr++;
|
||||
if ( stricmp( parameter, ptr ) == 0 )
|
||||
{
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return( found );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: DefaultExtension
|
||||
|
||||
Checks if the specified filename contains an extension and adds
|
||||
one if it doesn't.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void DefaultExtension
|
||||
(
|
||||
char *path,
|
||||
char *extension
|
||||
)
|
||||
|
||||
{
|
||||
char *src;
|
||||
|
||||
//
|
||||
// if path doesn't have a .EXT, append extension
|
||||
// (extension should include the .)
|
||||
//
|
||||
src = path + strlen( path ) - 1;
|
||||
|
||||
while( ( *src != '\\' ) && ( src != path ) )
|
||||
{
|
||||
if ( *src == '.' )
|
||||
{
|
||||
// it has an extension
|
||||
return;
|
||||
}
|
||||
src--;
|
||||
}
|
||||
|
||||
strcat( path, extension );
|
||||
}
|
BIN
audiolib/PUBLIC/PS/PS.EXE
Normal file
BIN
audiolib/PUBLIC/PS/PS.EXE
Normal file
Binary file not shown.
BIN
audiolib/PUBLIC/PS/PS.OBJ
Normal file
BIN
audiolib/PUBLIC/PS/PS.OBJ
Normal file
Binary file not shown.
84
audiolib/PUBLIC/PS/USRHOOKS.C
Normal file
84
audiolib/PUBLIC/PS/USRHOOKS.C
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: USRHOOKS.C
|
||||
|
||||
author: James R. Dose
|
||||
date: July 26, 1994
|
||||
|
||||
This module contains cover functions for operations the library
|
||||
needs that may be restricted by the calling program. This code
|
||||
is left public for you to modify.
|
||||
**********************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "usrhooks.h"
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: USRHOOKS_GetMem
|
||||
|
||||
Allocates the requested amount of memory and returns a pointer to
|
||||
its location, or NULL if an error occurs. NOTE: pointer is assumed
|
||||
to be dword aligned.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_GetMem
|
||||
(
|
||||
void **ptr,
|
||||
unsigned long size
|
||||
)
|
||||
|
||||
{
|
||||
void *memory;
|
||||
|
||||
memory = malloc( size );
|
||||
if ( memory == NULL )
|
||||
{
|
||||
return( USRHOOKS_Error );
|
||||
}
|
||||
|
||||
*ptr = memory;
|
||||
|
||||
return( USRHOOKS_Ok );
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function: USRHOOKS_FreeMem
|
||||
|
||||
Deallocates the memory associated with the specified pointer.
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_FreeMem
|
||||
(
|
||||
void *ptr
|
||||
)
|
||||
|
||||
{
|
||||
if ( ptr == NULL )
|
||||
{
|
||||
return( USRHOOKS_Error );
|
||||
}
|
||||
|
||||
free( ptr );
|
||||
|
||||
return( USRHOOKS_Ok );
|
||||
}
|
55
audiolib/PUBLIC/PS/USRHOOKS.H
Normal file
55
audiolib/PUBLIC/PS/USRHOOKS.H
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
/**********************************************************************
|
||||
module: USRHOOKS.H
|
||||
|
||||
author: James R. Dose
|
||||
date: July 26, 1994
|
||||
|
||||
Public header file for USRHOOKS.C.
|
||||
|
||||
This module contains cover functions for operations the library
|
||||
needs that may be restricted by the calling program. The function
|
||||
prototypes in this header should not be modified.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __USRHOOKS_H
|
||||
#define __USRHOOKS_H
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Error definitions
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
enum USRHOOKS_Errors
|
||||
{
|
||||
USRHOOKS_Warning = -2,
|
||||
USRHOOKS_Error = -1,
|
||||
USRHOOKS_Ok = 0
|
||||
};
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------
|
||||
Function Prototypes
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
int USRHOOKS_GetMem( void **ptr, unsigned long size );
|
||||
int USRHOOKS_FreeMem( void *ptr );
|
||||
|
||||
#endif
|
BIN
audiolib/PUBLIC/PS/USRHOOKS.OBJ
Normal file
BIN
audiolib/PUBLIC/PS/USRHOOKS.OBJ
Normal file
Binary file not shown.
45
audiolib/PUBLIC/TIMER/MAKEFILE
Normal file
45
audiolib/PUBLIC/TIMER/MAKEFILE
Normal file
|
@ -0,0 +1,45 @@
|
|||
.OPTIMIZE
|
||||
|
||||
lib_dir = ..
|
||||
prg_dir = .
|
||||
obj_dir = $(prg_dir)\obj
|
||||
main_dir = $(prg_dir)\source
|
||||
header_dir = $(main_dir);$(lib_dir)\INCLUDE
|
||||
tasm_include_dir = /i$(main_dir) /i$(lib_dir)\source
|
||||
|
||||
lib_files = $(lib_dir)\audio_wf.lib
|
||||
|
||||
.h : $(header_dir)
|
||||
.c : $(header_dir)
|
||||
.asm : $(header_dir)
|
||||
.obj : $(obj_dir)
|
||||
|
||||
object_files = timer.obj usrhooks.obj
|
||||
|
||||
tasm_options = /zi /p $(tasm_include_dir)
|
||||
#wcc_options = /w4 /d2 /zm /i=$(header_dir)
|
||||
wcc_options = /w4 /d1 /omaxnet /zp4 /5r /zm /i=$(header_dir)
|
||||
wlink_options =
|
||||
|
||||
timer.exe: $(object_files) $(lib_files) makefile
|
||||
%create temp.lnk
|
||||
%append temp.lnk option quiet
|
||||
%append temp.lnk option eliminate
|
||||
%append temp.lnk system dos4g
|
||||
%append temp.lnk name $^&
|
||||
%append temp.lnk debug all
|
||||
%append temp.lnk libfile $(lib_files)
|
||||
for %i in ($(object_files)) do %append temp.lnk file $(obj_dir)\%i
|
||||
wlink $(wlink_options) @temp.lnk
|
||||
#wc2dbg demo.exe
|
||||
del temp.lnk
|
||||
|
||||
.asm.obj :
|
||||
tasm $(tasm_options) $[* $(obj_dir)\$^&
|
||||
|
||||
.c.obj :
|
||||
wcc386 $(wcc_options) $[* /fo=$(obj_dir)\$^&
|
||||
|
||||
demo.obj : demo.c task_man.h
|
||||
|
||||
usrhooks.obj : usrhooks.c usrhooks.h
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue