It is currently Tue Nov 13, 2018 5:58 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 86 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6
Author Message
PostPosted: Thu Aug 23, 2018 12:30 pm 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 3135
Location: Tampere, Finland
It's tough. With Musetracker playback engine I kind of wanted to throw everything and the kitchen sink in, which resulted in a reasonably performant but not-so-space-efficient engine (and only a few productions ever used it, although I think this was more because people were more used to the FamiTracker UI). In a perfect world the engine would support "everything", but the user would only pay for the features they actually use. But then it becomes quite difficult to design the engine, you'd need some conditional compilation at the very least.

And all this in order to get some users for your library, while getting not much more than a pat on the back in return. It really is a thankless job.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi


Top
 Profile  
 
PostPosted: Thu Aug 23, 2018 12:34 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20764
Location: NE Indiana, USA (NTSC)
You mean like the PENTLY_USE_* flags I have? But seriously, I have no idea about what people want in DPCM in music in games because I don't myself use DPCM in music in games. I guess not everybody looks up to Tim Follin the way I do.


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 3:48 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20764
Location: NE Indiana, USA (NTSC)
The top four reasons not to use Pently, even at the expense of having an overall shorter soundtrack for a given ROM size:

  1. DPCM
  2. Preferring to compose with linear pitch turned off, and wanting vibrato rate/depth and portamento rate to match FamiTracker exactly
  3. Becoming frustrated with playback differences and not knowing how to ask for help
  4. (Added 08-28) Using a third-party game engine with built-in FamiTone2/4 or GGSound integration but no Pently integration yet

In theory, a converter could compensate for #2 by using smaller vibrato depths and portamento rates for pitches below A-2 and larger ones for pitches above A-2, converting them from units of reciprocal frequency to log frequency. But in practice, it'd have to be a command line option, as 0CC-FamiTracker's text export does not include whether linear pitch was used. I reported this eight months ago.

This still leaves design of DPCM instrument data structures and composer support. Does anybody have test case FTMs/0CCs showing "typical" use of DPCM in a game soundtrack, as opposed to the data-heavy "Sunsoft bass" tracks I commonly see in FamiTracker Discord where people think nothing of using 64K for a 1-song NSF? And how could I encourage composers to keep me in the loop about problems they encounter?


EDIT (Tue 08-28): Add third-party game engine as the fourth reason


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 4:16 pm 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1783
Location: Gothenburg, Sweden
Quote:
How many samples are in the soundtrack of your game? More than 25? More than 63? More than 127? And how much space do they total? More than 8K? How many of them are played at different frequencies, vs. played at only one frequency?


Counterquestion: Does the definition of soundtrack include samples that are used mainly/only for sfx here?

Personally i feel more than 8k is greedy. Since you need your samples visible at all times while they're used, i'd try to aim for max 1k or maybe max 2k if it is something special. I'm not every composer though.

Playing at different frequencies is important if you want to conserve space. I feel it is important.
Even drums benefit from being played at different frequencies.

One limitation that both FamiTone and GGsound puts on DPCM is.. well it's two different takes.
GGsound - only one instrument can be a dpcm instrument in addition to its non-dpcm duty (iirc)
FamiTone2 - only instrument 00 can be a dpcm instrument in addition to its non-dpcm duty.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 4:24 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20764
Location: NE Indiana, USA (NTSC)
FrankenGraphics wrote:
Counterquestion: Does the definition of soundtrack include samples that are used mainly/only for sfx here?

Yes. Pently in fact builds its current triangle+noise drums on top of sound effects. I'll also need to come up with a policy for what interrupts what, and it appears a bit more complex than the "whatever's louder" policy that other channels use.

FrankenGraphics wrote:
Playing at different frequencies is important if you want to conserve space. I feel it is important.
Even drums benefit from being played at different frequencies.

Part of it is planning an efficient representation in sequence data, particularly whether I need to plan for every sample being played at every pitch.


Top
 Profile  
 
PostPosted: Mon Aug 27, 2018 4:41 pm 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 1783
Location: Gothenburg, Sweden
One thing i've wanted to try at some point but don't think i've seen (maybe because FT supports a whopping 256k of sample data, so few might've thought about it) is to use dpcm samples just for quick attack portions in tandem with a square or triangle that takes up the flag of the note where the attack portion ends. The attack portion either needs to go from its complex timbre to a tri/square one, or fade out while the tri/square fades in. Either way it could fit a limited size driver. Sometimes limitations may inspire new(?) styles.

Quote:
Yes.
Then definitely at least "more than 25", i think. 63 sounds like a nice max but again, i wouldn't know the needs of other composers.

Quote:
I'll also need to come up with a policy for what interrupts what
Maybe the sorting order of the samples could be enough to decide priority? It's not perfect but allows for some user agency at build time.


Quote:
Part of it is planning an efficient representation in sequence data, particularly whether I need to plan for every sample being played at every pitch.

My experience is a bit too limited to be making a reliable verdict, but i've found the brightest few frequency settings to be the least useful overall so far.
For nonlooping one-shots, you typically get very short sounds for your sample length, and for "faux waveforms", you get very bright/out of tune sounds.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Thu Oct 18, 2018 8:35 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20764
Location: NE Indiana, USA (NTSC)
I have tried to keep Pently's data formats the same from version to version. The only breaking change I can remember is from Pently 3 (Thwaite; Zap Ruder; Double Action Blaster Guys; Sliding Blaster) to Pently 4 (RHDE: Furniture Fight), where I enlarged each instrument from 4 bytes to 5 in order to accommodate attack envelopes. So if you're converting a soundtrack from Pently 3 or earlier, keep this in mind.


Top
 Profile  
 
PostPosted: Sat Oct 20, 2018 4:51 am 
Offline

Joined: Tue Jun 28, 2011 2:39 pm
Posts: 192
I think you could sacrifice some songs to make possible to add more sound effects. I can't imagine any game using 128 songs while I can imagine a game using more than 64 sound effects.


Top
 Profile  
 
PostPosted: Sat Oct 20, 2018 5:17 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20764
Location: NE Indiana, USA (NTSC)
I could expand sound effects and instruments to 255, but that'd require a breaking change to their data format, namely converting them to striped tables. I'd prefer to get anything that doesn't require a breaking change done first so I can finish the Pently 5 series before branching off 6.

Issue #33 filed


Top
 Profile  
 
PostPosted: Sat Oct 20, 2018 2:49 pm 
Offline

Joined: Tue Jun 28, 2011 2:39 pm
Posts: 192
I see. Well, I hope it can be done eventually. As of instrument limit, it's pretty tight too. Can anything be done about it?


Top
 Profile  
 
PostPosted: Sun Oct 28, 2018 7:28 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 20764
Location: NE Indiana, USA (NTSC)
0.05wip10 (2018-10-28)

Driver
  • Grace note durations no longer reduced by 1 frame
  • Always write period high byte for triangle, fixing problem with zero volume in instruments (#32, reported by NovaSquirrel)
  • Suppress linker warnings for export/import address size mismatch
  • Overhaul names and scope of internal subroutines
  • Rearrange conductor processing based on bytecode order
  • Move sustain phase processing above pitch effects
  • Remove redundant checks for attack injection in pitch effects
  • Fix misbehavior when music and a slowed-down sound effect are played at once
  • C bindings for commonly used functions (requested by adrian09_01)
  • pentlyseq.inc: don't truncate patdef at 7 bits (reported and fixed by NovaSquirrel)
  • mkrammap.py: rename to pentlybss.py to encourage remembering to include it when vendoring Pently

pentlyas.py
  • A score can include other files, such as an instrument set (#29)
  • o0 through o7 to set reference pitch (requested by zzo38)
  • Allow grace notes in drum patterns
  • Playing a pattern with only rests or waits is nonfatal
  • Fix warnings for missing "fine" or "dal segno"
  • Order of objects in the output is explicit, the same order in which they appear in the score (requested by NovaSquirrel)
  • Error if no songs are defined (reported by NovaSquirrel)
  • -A means --period-tuning; --output means -o

Packaging and demo
  • Profiler: don't overreport CPU use if the shell has a lag frame
  • Document how to skip the makefile's default autoplay (#30)
  • makefile: Allow building from an arbitrarily named score by giving the name of the corresponding .nes or .nsf
  • Add pseudocode to aid in porting to non-6502 platforms
  • Add Travis CI build script
  • Sample songs: Include the soundtrack of all games by Damian Yerrick that have appeared in Action 53. These are Concentration Room, Thwaite, Zap Ruder, and RHDE: Furniture Fight.

The "Isometry" track from the demo hits peak CPU usage of over 3800 cycles on a frame with a dal segno and play or stop commands on all five tracks. This may dissuade some users. Is there a need for evening out the CPU usage? And if so, is there a good way to go about this? Because if I can't think of something, I'll end up releasing what I have as the final version of Pently 5.


Attachments:
pently-0.05wip10.zip [172.7 KiB]
Downloaded 21 times
Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 86 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group