Paper foley is small, quiet and very specific, so library versions rarely fit: the page turn you need is a particular weight of paper at a particular speed with a particular amount of hand in it. It is also one of the easiest things to generate well. Everything that matters (thickness, speed, dryness) can be described in plain words, and none of it depends on a room.
Every clip shows the exact prompt that produced it. The render script reads its prompts from the same file as this page. Copy one, change a word and generate your own.
single page of a hardback book turned at reading speed, soft paper flutter with a light settle, very close mic, quiet room
sheet of paper torn slowly in half, fibres separating with a continuous ragged rip, very close mic, dry
sheet of paper crushed into a ball in one hand, dense crackling collapse, very close mic, dry
large newspaper being folded and shaken open, broad thin rustling with sharp snaps, close mic
stack of loose documents tapped square on a desk then shuffled, crisp edges sliding, office room tone
paper envelope torn open along the top and a letter pulled out, close mic, quiet interior
cardboard box flaps pulled apart, packing tape peeling away with a stretching rip, close mic
old parchment scroll unrolled across a table, stiff dry crackling as it flattens, medieval interior
stack of paper banknotes counted rapidly by hand, rhythmic flicking snaps, very close mic, dry
office paper shredder pulling in a sheet, motor loading then cutting into strips, close mic, office
These models respond to physical description. Name the material, the action and the space.
single page of a hardback book turned at reading speed, soft paper flutter with a light settle, very close mic, quiet room
"At reading speed" sets the tempo. Without it the model tends to render a fast flick, which sounds like searching instead of reading.
sheet of paper torn slowly in half, fibres separating with a continuous ragged rip, very close mic, dry
Speed decides how a tear sounds: slow gives a continuous rip, fast gives a single snap. Say which you want.
sheet of paper crushed into a ball in one hand, dense crackling collapse, very close mic, dry
"In one hand" fixes the scale. Without it the model can render something the size of a bin bag.
old parchment scroll unrolled across a table, stiff dry crackling as it flattens, medieval interior
For paper, age and stiffness go together. Naming both gets a crackle instead of a rustle.
Paper is so quiet that in a real room the room tone dominates. Every prompt in this collection says "very close mic" or "close mic" for that reason. Drop it and you get a wash of ambience with some paper somewhere inside it. If the paper needs to sit in a space, generate it dry and close and add the space yourself, so you control how much room there is.
Thin paper (newsprint, tracing paper, receipts) is bright and fast with very little body. Thick paper (card, parchment, a hardback's pages) is duller and slower, with a real low mid. Cardboard behaves like a different material, closer to wood. These differences are spectral, so naming the specific stock works better here than writing "paper".
Most paper foley is skin on paper. A page turn includes a thumb sliding; a crumple includes a fist closing; counting notes is mostly fingertips. Prompts that mention the hand ("in one hand", "counted rapidly by hand", "pulled out") come back more convincing than ones that describe only the paper, because the recordings the model learned from have people in them.
The models run on your machine, which changes the cost, the privacy and what you can automate.
Weights are fetched once. After that, generation, the library and the API all work with the network off. Everything lives in one SQLite file and one folder of WAVs under ~/.soundbox, and nothing is uploaded.
Soundbox runs an MCP server in the same process, with tools for generating and listing sounds. Generated files come back as absolute paths, so an agent can copy them into a project.
Every model's terms are shown before you download it, and non-commercial weights need an explicit confirmation. Soundbox is MIT. The licence of the model that made a sound governs what you may do with it.
claude mcp add --transport http soundbox http://127.0.0.1:17494/mcpcurl -X POST http://127.0.0.1:17494/api/generate \
-H 'Content-Type: application/json' \
-d '{"model":"audiocpp-stable-audio-3-sfx","prompt":"8-bit coin pickup blip","duration_s":1}'