mirror of
https://github.com/vgmstream/vgmstream.git
synced 2025-01-19 00:04:04 +01:00
doc
This commit is contained in:
parent
aed73d4e4f
commit
62dea5e30f
17
doc/USAGE.md
17
doc/USAGE.md
@ -783,3 +783,20 @@ You can use this python script to autogenerate one `.txtp` per virtual-txtp:
|
||||
https://github.com/vgmstream/vgmstream/tree/master/cli/tools/txtp_dumper.py
|
||||
Drag and drop the `.m3u`, or any text file with .txtp (it has CLI options
|
||||
to control output too).
|
||||
|
||||
|
||||
## Sequences and streams
|
||||
Roughly, there are two types of game audio:
|
||||
- streams: prerecorded audio where all instruments are pre-mixed into a single
|
||||
file, often compressed with some custom format.
|
||||
- sequences: series of instrument notes, typically in MIDI-like formats with
|
||||
a bank of instrument sounds.
|
||||
|
||||
As the name implies, vgmstream plays "streams". Old games mainly use sequences
|
||||
(very small and more dynamic), while other games use streams (easier to handle
|
||||
but lot bigger and sometimes CPU-intensive).
|
||||
|
||||
vgmstream's internals are tailored to play streams so, in other words, it's not
|
||||
possible to add support for sequenced audio unless massive changes were done,
|
||||
basically becoming another program entirely. There are other projects better
|
||||
suited for playing sequences.
|
||||
|
@ -290,7 +290,7 @@ static int parse_entries(txtp_header* txtp, STREAMFILE* sf) {
|
||||
else
|
||||
temp_sf = open_streamfile_by_filename(sf, filename); /* from current path */
|
||||
if (!temp_sf) {
|
||||
VGM_LOG("TXTP: cannot open streamfile for %s\n", filename);
|
||||
vgm_logi("TXTP: cannot open %s\n", filename);
|
||||
goto fail;
|
||||
}
|
||||
temp_sf->stream_index = txtp->entry[i].subsong;
|
||||
@ -298,7 +298,7 @@ static int parse_entries(txtp_header* txtp, STREAMFILE* sf) {
|
||||
txtp->vgmstream[i] = init_vgmstream_from_STREAMFILE(temp_sf);
|
||||
close_streamfile(temp_sf);
|
||||
if (!txtp->vgmstream[i]) {
|
||||
VGM_LOG("TXTP: cannot open vgmstream for %s#%i\n", filename, txtp->entry[i].subsong);
|
||||
vgm_logi("TXTP: cannot parse %s#%i\n", filename, txtp->entry[i].subsong);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user