Specify (limit) playable length for segment (TXTP) by almendaz at 6:08 PM EDT on September 18, 2019
Hello.
I want to create a TXTP, but I have not found the command for the solution to this problem:

1
I have two .FSB non-loopable samples (they do not contain loop info).

2
The first segment does not end properly (it has EXACTLY 1 second of silence at the end - 44100 samples literally!)

3
The second segment is perfectly loopable.

4
Both segments have the same num.channels.

I want to create a TXTP that takes the 1st segment ending before its last 1 sec, then go to 2nd segment and make this one loop.
by marcusss at 9:40 PM EDT on September 18, 2019
Info on TXTP can be found here

here

Maybe bnnm can help with that answer. Some games have the tracks (Intro + body) overlapping for some weird ass reason so yeah hopefully there is a solution

edited 9:43 PM EDT September 18, 2019
by NoWool at 12:38 AM EDT on September 19, 2019
First solution that comes to my mind would be creating a txth for the intro part ("filename.ext.txth") and then set "num_samples = data_size - 44100", I believe this should work most of the time.
Buuut, you may have to use the subfile command and you may have to create a "fake" extension such as ".vgmstream" (I've ran into this a few times, it could be user error though). I think setting subfile_offset to the start address of the subfile, "subfile_size = data_size", pre-calculating how many samples should be in the final sound and setting num_samples to your calculation should work. The reason behind pre-calculating num_samples is that "data_size - (value)" will probably end up w/ an incorrect amount of samples cut.
It's been some time since I've checked the txth/p docs, so there may be a much fancier way of going about this that I am unaware of?

edited 1:15 AM EDT September 19, 2019
by almendaz at 3:56 AM EDT on September 21, 2019
Thanks for the tips. Sorry for the late reply, I will test them when I get the time.
by bnnm at 6:21 PM EDT on September 21, 2019
I've added a TXTP option so you can do this:

intro.fsb #t -1.0 #removes 1 second
loop.fsb
mode = segments

by almendaz at 1:06 PM EDT on September 28, 2019
It works !!
Thank you very much ~this TXTP option will surely be VERY useful!
And excuse me for my lateness (an ok thing these times :)
Just a tiny question on this very note: what is the option for specifying number of samples instead of seconds time?

edited 1:08 PM EDT September 28, 2019
by bnnm at 1:31 PM EDT on September 28, 2019
You can use N:n.n=minutes:seconds.cents, N.n=seconds, or N=samples (or 0xN too in hex)

<small>
intro.fsb #t -44100 #removes 1 second, in samples
loop.fsb
mode = segments
</small>

You can also set absolute time:
<small>
intro.fsb #t 1:00 #force to 1 minute (original time must be higher)
loop.fsb
mode = segments
</small>


Info: https://github.com/losnoco/vgmstream/blob/master/doc/TXTP.md#time-modifications


edited 1:36 PM EDT September 28, 2019
by almendaz at 4:30 PM EDT on September 28, 2019
Useful info.
So, for best use, use decimal point for seconds time, large integer for num.samples.
There must be a threshold value where the number can mean any of time or num.samples, but it would be a large stretch for such an instance.
Thank you again.

edited 4:31 PM EDT September 28, 2019
by bnnm at 6:27 PM EDT on September 28, 2019
It's just the dot in N.n that makes them different. So "#t -1.0" with dot means 1 second, while "#t -1" without dot means 1 sample.
by almendaz at 10:45 PM EDT on October 1, 2019
I see; just a matter of reading datatype definition.
Thank you v.m.


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source