I'm working on a port of FNaF 4, and I can't seem to find any examples for how to play bcstm files. I know how to play cwav files with libcwav, but I'm worried about memory.
Thanks for any help!
Thanks for any help!

That's a shame, because I would have been really interested in doing your program on 3DS—I'm trying to integrate audio (voice) files in BCSTM format, but every time I try, it crashesI don't know if there's any library that will allow you to accomplish this in a simple manner, like with libcwav.
Since commercial game releases use their own proprietary code to read and work with BCSTM files, you might have to implement your own audio-streaming code, working directly with the NDSP library (writing the audio buffers yourself). It doesn't necessarily have to use BCSTM files, it can be a different format.
A few years ago, I made a simple NDSP streaming example for some users of this forum:
https://github.com/ic-scm/3ds-simple-audio-stream
It works with a raw, mono, PCM-audio file in RomFS. This example doesn't actually implement streaming from RomFS, it loads the entire file into memory first, and then streams from memory. But, with some small modifications, it could be made to stream directly from RomFS too, in order to use a very low amount of RAM.
Years ago, I also experimented with creating a much more complete player, streaming BRSTM (Wii format) files over the Internet, directly from the Smash Custom Music website:
https://github.com/ic-scm/smashcustommusic-client-3ds/blob/master/3ds/source/audio.h
Since this program uses the Openrevolution library, it would have also supported BCSTM files, BFSTM files, and a few other similar formats. However, trying to add the entire Openrevolution code into your project might be too much, since it's a complex software that supports other formats that you don't need, and even supports encoding B*STM files, not just decoding them.
But, it was at least a partially functional example, although a poorly written one, so it might help you in some way or give you some ideas.
A reference of the BCSTM file format is available here:
https://www.3dbrew.org/wiki/BCSTM
I don't know how advanced of a programmer you are, so this might all be too complex for you, or might require too much time from you when you also have an entire game to port. But maybe it helps you in some way.
I probably would be able create a relatively simple library for streamed playback of BCSTM files directly from RomFS in 3DS homebrew, with simple usage, but unfortunately, I have limited time and other priorities. It's a shame. I haven't touched the 3DS homebrew development environments in years.
Good luck.