Kaval + Alghosazi Fipple Flutes Capstone Print Packet

Generated: 2026-05-05

Packet folder: `/mnt/c/Users/Tony/Documents/GitHub/kaval-alghosazi-flutes`

File Map

FilePurpose
`design.md`Project intent, catalog metadata, assumptions, and validation plan.
`bom.csv`Starter bill of materials with part categories, quantities, drawing refs, and notes.
`sourcing.csv`Supplier/search tracker with specs, price/date fields, lead time, substitutes, and risks.
`cut-list.csv`Rough/final stock sizes, material, grain/orientation, operations, yield, and offcuts.
`drawing-brief.md`Manufacturing drawing and technical product sketch brief.
`assembly-manual.md`Shop-facing sequence, tools, fixtures, safety, tuning, finishing, and maintenance notes.
`validation.csv`Target/measured values, tolerance, environment, result, and tuning/build action log.
`supplier-rfq.md`Supplier email/request-for-quote starter.
`visual-bom-brief.md`Art direction for an image-forward visual BOM.
`wolfram-starter.wl`Wolfram starter for physics, optimization, visualization, and validation.
`README.md`Project artifact.
`alghosazi-hole-schedule.csv`Project artifact.
`double-drone-spec.csv`Project artifact.
`family-spec.csv`Project artifact.
`hole-schedule.csv`Project artifact.
`kaval-hole-schedule.csv`Project artifact.
`photo-shotlist.md`Project artifact.
`risks.md`Project artifact.
`sources.md`Project artifact.

design.md

Project intent, catalog metadata, assumptions, and validation plan.

Kaval + Alghosazi Fipple Flutes

**Packet ID:** KAV-ALG-FAM-001

**Family:** open-pipe woodwind / duct-fipple flute

**Pipeline:** cnc-lathe hybrid: split blank or deep bore, fipple head, lathe rounding, optional two-piece joint

**Date:** 2026-05-06

**Done-bar references:** `fujara`, `flutes`, `drone-flutes`, `pistalka`, `transverse-flute`

Project Intent

Design a buildable family of long fipple kavals and Alghosazi flutes that feel close to the Fujara Flutes references while using Tony's existing fujara/flute workshop logic: parametric dimensions, a controllable fipple sound-window head, split-blank CNC or deep-bore construction, validation tables, and documented tuning loops.

The first physical goal is not a perfect production run. It is a controlled prototype ladder: prove the fipple head, build one A3 5-hole kaval, build one A#3 Alghosazi with a thumb hole, then decide whether the two-piece and double-drone versions deserve full CAD.

Source And Scope

External reference pages checked:

Local source artifacts inspected:

Governing Model

These flutes are modeled as **open-open cylindrical fipple flutes** with a non-NAF fujara-style sound-window end correction.


f = c / (2 * L_eff)
c = 13552 in/s at about 68 F
L_eff = physical_labium_to_foot + foot_end_correction + sound_window_correction
foot_end_correction ~= 0.6 * bore_radius
sound_window_correction = measured prototype value, not Tony's NAF K2 table

For first-pass hole placement, the packet uses a proportional open-pipe layout:


x_from_labium = labium_to_foot * 2^(-semitone_offset / 12)
x_from_foot = labium_to_foot - x_from_labium

The hole schedule is intentionally a **starter drill schedule**. The builder drills undersized, tunes the root by trimming the foot, then opens each hole upward by careful reaming/undercutting. If a hole goes sharp, the recovery is wax test, bushing, or a rebuilt body.

`family-spec.csv` includes `estimated_sound_window_correction_in`. Positive values mean the fipple/window system or added acoustic path must make the instrument behave longer than the visible labium-to-foot length. Negative values mean the source-observed body length is overlong for the nominal root under a simple open-pipe model; treat those as overlength blanks to trim or as evidence that the commercial key naming may not equal the all-closed root.

Scale Plans

5-Hole Fipple Kaval

The 5-hole kaval follows the published C-reference pitch set:


0, +2, +3, +6, +7, +8 semitones
Example in C: C D D# F# G G#

7-Hole Fipple Kaval

The expanded kaval adds the two half-step options described by the reference page:


0, +2, +3, +4, +6, +7, +8, +9 semitones
Example in C: C D D# E F# G G# A

Alghosazi

The Alghosazi starter scale uses an Anasazi-derived primary sequence. The top hole is placed on the back as a thumb hole, matching the design note from the reference page.


0, +2, +4, +7, +9, +11, +12 semitones
Example in A#: A# C D F G A A#

This is marked as a musical-design assumption. If Tony wants a different Alghosazi mode after listening to examples, change the offsets in `Kaval-Alghosazi-Design.xlsx` and regenerate `hole-schedule.csv`.

Fujara-Style Fipple Head

The requested head architecture is:


mouth at end -> rectangular inlet -> internal windway/flue -> side true sound window -> splitting edge -> main bore

Starter dimensions:

FeatureKaval StarterAlghosazi StarterNotes
Top end to true window datum1.45-1.65 in1.65-1.80 inAdjust for comfort and joint location.
Windway height0.033-0.045 in0.035-0.048 inStart with removable flue plug trials.
Windway width0.45-0.55 in0.45-0.58 inAbout 55-65 percent of bore.
Window length0.25-0.38 in0.28-0.42 inWiden/lengthen only after tone test.
Splitting edge offset KPI0.005-0.015 in0.005-0.015 inBorrowed from Tony's fujara canary, not a final law.
Plug fitwax-sealed slipwax-sealed slipRemovable until final voicing.

Two-Piece And Double Options

The two-piece option is a **shop convenience and tuning risk**, not a decorative afterthought. Use it only after a solid prototype speaks well.

Double-drone versions are documented in `double-drone-spec.csv` and `drawings/double-drone-layout.svg`. Each side gets its own windway so the melody flute can be played alone and the drone can be tuned independently.

Family Table

See `family-spec.csv` for the source of truth. The core starter members are:

MemberRole
`KAV-A3-5H`First kaval prototype.
`KAV-AS3-7H`Two-piece expanded kaval prototype.
`ALG-AS3-J2`First Alghosazi prototype.
`ALG-A3-J3`Three-piece Alghosazi joint stress test.

Manufacturing Path

Preferred path for the first two prototypes:

1. Make a removable fipple-head test tile from scrap.

2. Build a split-blank body so the bore, windway, and window are visible and correctable.

3. Glue and turn only after the fipple speaks.

4. Drill holes undersized from a laser/CNC template or V-block setup.

5. Tune root first, then holes from foot upward.

6. Record measurements in `validation.csv` and update the next prototype.

Deep-bore drilling is allowed for later solid-body builds. Use the skill reference `headstock-driven-deep-bore-drilling.md` before attempting a long solid blank.

Assumptions

bom.csv

Starter bill of materials with part categories, quantities, drawing refs, and notes.

itemassemblypartqtyspecmake_buyest_cost_usdsource_statusdrawing_refnotes
BOM-001allPrimary body blank1 per fluteStraight-grain elder, locust, ash, maple, cherry, or walnut; length per family-spec plus 2 in trimbuy25-90spec onlydrawings/*-body.svgAvoid runout through tone holes and joint tenons.
BOM-002headRemovable fipple/flue plug1 plus 2 test plugsHard maple, pear, or dense straight-grain scrap; 0.033-0.045 in windway height trialsmake5shop scrap okdrawings/fipple-head-section.svgWax-sealed removable plug makes voicing iteration survivable.
BOM-003jointCork sheet or natural cork rings1 strip per joint1/32 to 1/16 in cork, sanded to airtight slip fitbuy8-15verify before purchasedrawings/two-piece-joint.svgUse only on removable joints; permanent split bodies use glue.
BOM-004jointBrass or hardwood ferrule sleeveoptionalThin brass tube or hardwood collar sized to body ODbuy/make10-25verify diameterdrawings/two-piece-joint.svgRecommended for long A/A# bodies and double-flute assemblies.
BOM-005finishExterior finish1Shellac, polymerized oil, or oil/wax; keep windway and bore lightly sealed only after tuningbuy10-30shop stock likelyassembly-manual.mdNo heavy finish on splitting edge.
BOM-006fixtureV-block and drilling template stock1 setMDF/plywood V-block, laser-cut paper/acrylic hole templates, 1/4 in dowel pinsmake10-20shop stock likelycnc/setup-sheet.mdTemplate holes should be undersized pilots.
BOM-007validationTuning/measurement kit1Chromatic tuner, thermometer/hygrometer, calipers, small round files, recording deviceuse shop kit0-60existing kit likelyvalidation.csvRecord temperature with every tuning pass.

sourcing.csv

Supplier/search tracker with specs, price/date fields, lead time, substitutes, and risks.

componentrequired_specsearch_termscandidate_supplierprice_eachdate_checkedlead_timesubstitutesrisk
straight-grain hardwood blanks1.25-1.50 in square or round, 28-38 in long, stable and dryelder wood blank, locust spindle blank, ash turning blank, maple turning blanklocal hardwood dealer / Woodcraft / Rockler / Global Wood SourceTBDTBDTBDmaple/cherry/walnut for prototypeSpecies and grain affect cracking and tone; verify straight grain before purchase.
cork joint materialthin sheet or rings, sandable, airtightwoodwind tenon cork sheet 1/32 1/16music repair supplier / Amazon / McMasterTBDTBDTBDwaxed hemp thread for testsLoose joint leaks; tight joint cracks socket.
brass ferrule sleeveID/OD matched to selected body, thin wallbrass tube 1.25 inch 1.375 inch thin wallK&S, McMaster, OnlineMetalsTBDTBDTBDhardwood collar turned on latheMetal sleeve changes exterior feel and may buzz if poorly fitted.
small brad point drill bits and reamers1/8 to 3/8 in, sharp, clean entrybrad point drill bit set small reamerWoodcraft / Rockler / McMasterTBDTBDTBDnumber drill bits plus tapered reamerTearout around holes shifts tuning and looks sloppy.

cut-list.csv

Rough/final stock sizes, material, grain/orientation, operations, yield, and offcuts.

member_idblank_partmaterialqtyrough_size_infinal_size_ingrain_orientationoperationyield_notes
KAV-GS3-5Hmain body blankLocust or elder11.625 x 1.625 x 33.102OD 1.375, bore 0.875, length 31.102straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
KAV-GS3-5Hjoint tenon/socket allowanceLocust or elder plus cork/ferrule1extra 2.5 in distributed around joint1.250 in tenon engagement, 0.003-0.006 in cork-adjusted compressionsame as bodyturn tenon/socket after bore alignment is provenCut joint after body is acoustically proven on a sacrificial overlength blank.
KAV-A3-5Hmain body blankElder11.625 x 1.625 x 31.134OD 1.375, bore 0.875, length 29.134straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
KAV-A3-5Hjoint tenon/socket allowanceElder plus cork/ferrule1extra 2.5 in distributed around joint1.250 in tenon engagement, 0.003-0.006 in cork-adjusted compressionsame as bodyturn tenon/socket after bore alignment is provenCut joint after body is acoustically proven on a sacrificial overlength blank.
KAV-B3-5Hmain body blankElder11.562 x 1.562 x 28.378OD 1.312, bore 0.812, length 26.378straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
KAV-C4-5Hmain body blankElder, maple, or cherry11.500 x 1.500 x 26.409OD 1.250, bore 0.750, length 24.409straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
KAV-A3-7Hmain body blankElder11.650 x 1.650 x 37.433OD 1.400, bore 0.875, length 35.433straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
KAV-AS3-7Hmain body blankDogwood or elder11.650 x 1.650 x 35.465OD 1.400, bore 0.875, length 33.465straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
KAV-AS3-7Hjoint tenon/socket allowanceDogwood or elder plus cork/ferrule1extra 2.5 in distributed around joint1.250 in tenon engagement, 0.003-0.006 in cork-adjusted compressionsame as bodyturn tenon/socket after bore alignment is provenCut joint after body is acoustically proven on a sacrificial overlength blank.
KAV-B3-7Hmain body blankElder11.562 x 1.562 x 29.165OD 1.312, bore 0.812, length 27.165straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
ALG-AS3-J2main body blankAsh11.625 x 1.625 x 34.283OD 1.375, bore 0.875, length 32.283straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
ALG-AS3-J2joint tenon/socket allowanceAsh plus cork/ferrule1extra 2.5 in distributed around joint1.250 in tenon engagement, 0.003-0.006 in cork-adjusted compressionsame as bodyturn tenon/socket after bore alignment is provenCut joint after body is acoustically proven on a sacrificial overlength blank.
ALG-AS3-SOLIDmain body blankLocust11.625 x 1.625 x 35.465OD 1.375, bore 0.875, length 33.465straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
ALG-A3-J3main body blankOak11.625 x 1.625 x 30.740OD 1.375, bore 0.875, length 28.740straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.
ALG-A3-J3joint tenon/socket allowanceOak plus cork/ferrule1extra 2.5 in distributed around joint1.250 in tenon engagement, 0.003-0.006 in cork-adjusted compressionsame as bodyturn tenon/socket after bore alignment is provenCut joint after body is acoustically proven on a sacrificial overlength blank.
ALG-B3-SOLIDmain body blankElder or maple11.562 x 1.562 x 29.559OD 1.312, bore 0.812, length 27.559straight along bore axissquare, split or bore, route/drill, glue if split, turn/round, tune footLeave 2 in trim for root tuning and chuck/fixture allowance.

drawing-brief.md

Manufacturing drawing and technical product sketch brief.

Drawing Brief

Required Views

Datums

Tolerances

Drawing Outputs

Generated SVGs live in `drawings/`. Build-critical dimensions come from `Kaval-Alghosazi-Design.xlsx`, `family-spec.csv`, and `hole-schedule.csv`, not from raster images.

assembly-manual.md

Shop-facing sequence, tools, fixtures, safety, tuning, finishing, and maintenance notes.

Assembly Manual

Safety And Setup

Prototype Ladder

P0: Fipple Head Tile

1. Cut a 4 in scrap block with the selected bore diameter or a half-bore test channel.

2. Cut the end mouth inlet.

3. Fit a removable flue plug with 0.033, 0.038, and 0.045 in shim trials.

4. Cut a side true sound window and splitting edge.

5. Blow through the end inlet and record which plug/window combination speaks cleanly.

6. Do not build a full flute until this tile produces stable tone.

P1: First Kaval Body

1. Select `KAV-A3-5H`.

2. Mill the blank overlength by at least 2 in.

3. Split the blank, route the bore halves and registration pin holes, or deep-bore the solid blank after proving setup on scrap.

4. Create the fipple head and removable plug.

5. Prove the root tone with no finger holes.

6. Trim the foot to bring the all-closed root toward A3.

7. Transfer hole positions from `kaval-hole-schedule.csv`.

8. Drill each hole undersized.

9. Tune holes from the foot upward by reaming slowly.

10. Record every before/after pitch in `validation.csv`.

P1: First Alghosazi Body

1. Select `ALG-AS3-J2`.

2. Build as a solid body first if joint risk feels high; otherwise cut the two-piece joint after the bore is proven.

3. Mark the rear thumb-hole line before drilling.

4. Drill the thumb hole undersized and validate reach with the actual player grip.

5. Tune the primary sequence and record whether the scale feels musically right.

P2: Jointed Version

1. Cut the body overlength and prove tone before final jointing.

2. Locate the joint away from holes and away from the fipple head.

3. Turn tenon and socket with a 1.25 in engagement target.

4. Add cork or waxed thread until the joint seals without force.

5. Check bore step with a dowel, light, and feeler test.

6. Re-test root and all holes after the joint is fitted.

P3: Double Drone

1. Build melody and drone tubes separately.

2. Tune the melody side alone.

3. Tune the drone side alone, including rear thumb vent if used.

4. Join the bodies temporarily with clamps or bands before permanent collars.

5. Test pressure sharing with both windways.

6. Only then commit to a permanent double-body fixture or decorative binding.

Finishing

Maintenance

validation.csv

Target/measured values, tolerance, environment, result, and tuning/build action log.

member_idtest_idtargettarget_valuemeasured_valuetoleranceenvironmentpass_failaction
KAV-GS3-5HVAL-ROOTroot G#3207.652 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-GS3-5HVAL-H1hole 1 offset +2 st233.082 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-GS3-5HVAL-H2hole 2 offset +3 st246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-GS3-5HVAL-H3hole 3 offset +6 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-GS3-5HVAL-H4hole 4 offset +7 st311.127 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-GS3-5HVAL-H5hole 5 offset +8 st329.628 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-5HVAL-ROOTroot A3220.000 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-A3-5HVAL-H1hole 1 offset +2 st246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-5HVAL-H2hole 2 offset +3 st261.626 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-5HVAL-H3hole 3 offset +6 st311.127 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-5HVAL-H4hole 4 offset +7 st329.628 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-5HVAL-H5hole 5 offset +8 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-5HVAL-ROOTroot B3246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-B3-5HVAL-H1hole 1 offset +2 st277.183 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-5HVAL-H2hole 2 offset +3 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-5HVAL-H3hole 3 offset +6 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-5HVAL-H4hole 4 offset +7 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-5HVAL-H5hole 5 offset +8 st391.995 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-C4-5HVAL-ROOTroot C4261.626 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-C4-5HVAL-H1hole 1 offset +2 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-C4-5HVAL-H2hole 2 offset +3 st311.127 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-C4-5HVAL-H3hole 3 offset +6 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-C4-5HVAL-H4hole 4 offset +7 st391.995 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-C4-5HVAL-H5hole 5 offset +8 st415.305 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-ROOTroot A3220.000 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-A3-7HVAL-H1hole 1 offset +2 st246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-H2hole 2 offset +3 st261.626 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-H3hole 3 offset +4 st277.183 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-H4hole 4 offset +6 st311.127 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-H5hole 5 offset +7 st329.628 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-H6hole 6 offset +8 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-A3-7HVAL-H7hole 7 offset +9 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-ROOTroot A#3233.082 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-AS3-7HVAL-H1hole 1 offset +2 st261.626 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-H2hole 2 offset +3 st277.183 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-H3hole 3 offset +4 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-H4hole 4 offset +6 st329.628 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-H5hole 5 offset +7 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-H6hole 6 offset +8 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-AS3-7HVAL-H7hole 7 offset +9 st391.995 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-ROOTroot B3246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
KAV-B3-7HVAL-H1hole 1 offset +2 st277.183 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-H2hole 2 offset +3 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-H3hole 3 offset +4 st311.127 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-H4hole 4 offset +6 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-H5hole 5 offset +7 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-H6hole 6 offset +8 st391.995 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
KAV-B3-7HVAL-H7hole 7 offset +9 st415.305 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-J2VAL-ROOTroot A#3233.082 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
ALG-AS3-J2VAL-H1hole 1 offset +2 st261.626 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-J2VAL-H2hole 2 offset +4 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-J2VAL-H3hole 3 offset +7 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-J2VAL-H4hole 4 offset +9 st391.995 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-J2VAL-H5hole 5 offset +11 st440.0 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-J2VAL-H6hole 6 offset +12 st466.164 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-SOLIDVAL-ROOTroot A#3233.082 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
ALG-AS3-SOLIDVAL-H1hole 1 offset +2 st261.626 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-SOLIDVAL-H2hole 2 offset +4 st293.665 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-SOLIDVAL-H3hole 3 offset +7 st349.228 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-SOLIDVAL-H4hole 4 offset +9 st391.995 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-SOLIDVAL-H5hole 5 offset +11 st440.0 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-AS3-SOLIDVAL-H6hole 6 offset +12 st466.164 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-A3-J3VAL-ROOTroot A3220.000 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
ALG-A3-J3VAL-H1hole 1 offset +2 st246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-A3-J3VAL-H2hole 2 offset +4 st277.183 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-A3-J3VAL-H3hole 3 offset +7 st329.628 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-A3-J3VAL-H4hole 4 offset +9 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-A3-J3VAL-H5hole 5 offset +11 st415.305 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-A3-J3VAL-H6hole 6 offset +12 st440.0 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-B3-SOLIDVAL-ROOTroot B3246.942 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHTrim foot shorter to raise pitch; rebuild/extend foot if sharp.
ALG-B3-SOLIDVAL-H1hole 1 offset +2 st277.183 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-B3-SOLIDVAL-H2hole 2 offset +4 st311.127 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-B3-SOLIDVAL-H3hole 3 offset +7 st369.994 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-B3-SOLIDVAL-H4hole 4 offset +9 st415.305 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-B3-SOLIDVAL-H5hole 5 offset +11 st466.164 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALG-B3-SOLIDVAL-H6hole 6 offset +12 st493.883 Hz+/-25 cents P1, +/-10 cents P2TBD temp/RHEnlarge/undercut slowly to raise; wax or bushing recovery if sharp.
ALLVAL-FIPPLEclean attack and stable octave jumpno choking at normal breathsubjective plus recordingTBD temp/RHAdjust windway height, splitting edge sharpness, and window length.
DOUBLEVAL-DRONE-BEATmelody/drone pressure interactionno severe stealing or beating unless intentionalrecorded comparisonTBD temp/RHRestrict windway, retune drone vent, or separate mouth inlets.

supplier-rfq.md

Supplier email/request-for-quote starter.

Supplier RFQ Draft

Subject: Quote request for straight-grain woodwind blanks and optional ferrule stock

Hello,

I am building a small run of long fipple flutes and need stable straight-grain blanks suitable for bored woodwind bodies.

Please quote the following:

The blanks will be drilled or split-routed along the long axis, then turned and tuned, so straight grain and low checking risk matter more than figure.

Please include unit price, volume price, lead time, shipping estimate, and any recommended substitutes.

Thank you,

Tony Koop

visual-bom-brief.md

Art direction for an image-forward visual BOM.

Visual BOM Brief

Create one image-forward BOM plate with:

Image sources:

wolfram-starter.wl

Wolfram starter for physics, optimization, visualization, and validation.


(* Kaval + Alghosazi starter. Full v4.2 packet source is in wolfram/kaval-alghosazi-flutes-wolfram-model.wl after generation. *)
ClearAll["Global`*"];
cInPerSec = 13552;
freqFromMidi[midi_, a4_: 440] := a4*2^((midi - 69)/12);
openPipeLeff[f_] := cInPerSec/(2*f);
holeFromLabium[labiumToFoot_, semitoneOffset_] := labiumToFoot*2^(-semitoneOffset/12);
centsError[measured_, target_] := 1200*Log[2, measured/target];

README.md

Project artifact.

Kaval + Alghosazi Fipple Flutes

This repository is a build-ready design packet for two related long fipple flutes:

The head design intentionally borrows from Tony's `fujara` CAD: the player blows into an end mouth inlet, the air travels through a controlled internal flue, and sound is made at a side **true sound window** and splitting edge. The head is not copied from a commercial maker; it is a Tony-shop fujara/NAF hybrid that can be tuned and rebuilt.

Build First

Start with these prototypes:

PrototypeWhy
`KAV-A3-5H`Best first kaval: published 74 cm precedent, forgiving length, 5-hole pattern.
`ALG-AS3-J2`Best first Alghosazi: published 82 cm two-piece precedent, thumb-hole layout.
`P0-FIPPLE-HEAD`Scrap head tile that proves the mouth inlet, flue, window, and splitting edge before a full body.

File Map

FileUse
`Kaval-Alghosazi-Design.xlsx`Parametric workbook: family spec, formulas, hole schedules, fipple inputs.
`design.md`Acoustic model, cultural/source notes, assumptions, and build intent.
`family-spec.csv`Row-per-member design table used by drawing/CAD generators.
`hole-schedule.csv`First-pass hole positions measured from labium and foot.
`bom.csv`, `sourcing.csv`, `cut-list.csv`Procurement and stock prep.
`assembly-manual.md`Shop sequence from fipple tile through tuning.
`drawings/`SVG manufacturing drawings and head/joint details.
`cad/`OpenSCAD and SolidWorks starter handoff files.
`cnc/`v4.2 operation plan and setup sheet.
`validation.csv`Tuning and empirical correction log.
`capstone-deck.pptx`, `print-packet.pdf`, `site/index.html`Presentation, shop print, and build-log deliverables.

Status

This is a first-pass engineering packet. Dimensions are parametric and source-backed where possible, but the fipple/sound-window correction is marked as a measured-prototype variable, not a borrowed NAF K2 correction.

Attribution

The kaval references come from Moldavian/Romanian shepherd-flute practice; the Alghosazi references point toward Anasazi/Basketmaker flute replicas and contemporary adaptations. This packet is a modern shop design by Tony Koop, built with respect for those lineages and explicit source notes in `sources.md`.

alghosazi-hole-schedule.csv

Project artifact.

member_idinstrumenthole_no_from_footoffset_sttarget_hzx_from_labium_inx_from_foot_instarter_drill_intarget_final_dia_inorientationformula
ALG-AS3-J2Fipple Alghosazi12261.62627.1583.3260.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi24293.66524.1956.2890.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi37349.22820.34510.1380.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi49391.99518.12612.3580.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi511440.016.14814.3350.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi612466.16415.24215.2420.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi12261.62628.213.4550.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi24293.66525.1326.5320.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi37349.22821.13410.5310.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi49391.99518.82812.8370.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi511440.016.77414.8910.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi612466.16415.83215.8320.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi12246.94224.0452.9450.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi24277.18321.4225.5680.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi37329.62818.0148.9760.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi49369.99416.04810.9420.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi511415.30514.29812.6930.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi612440.013.49513.4950.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi12277.18323.0822.8270.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi24311.12720.5645.3450.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi37369.99417.2928.6170.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi49415.30515.40610.5030.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi511466.16413.72512.1840.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi612493.88312.95512.9550.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging

double-drone-spec.csv

Project artifact.

assembly_idmelody_sidedrone_sidewindwaysbody_strategyoverall_length_invalidation
KAVGH-A3-DOUBLEKAV-A3-5HA3 drone with rear thumb vent raising to B32two separate bores lashed or mechanically joined; melody kaval removable29.1 to 31.0Tune melody alone, drone alone, then both together for beating and pressure interaction.
DALG-AS3-DOUBLEALG-AS3-J2 or ALG-AS3-SOLIDreedy/natural-harmonic drone bore with independent windway2parallel-tube double flute with two mouth inlets; each side playable separately33.1Record both windways independently and together; check pressure stealing between ducts.

family-spec.csv

Project artifact.

member_idinstrumentsubtypetarget_notetarget_hzmidiscale_labelhole_counthole_offsets_stbore_id_inbody_od_inwall_intotal_length_cmtotal_length_intop_to_window_inlabium_to_foot_inopen_pipe_leff_inestimated_sound_window_correction_intuning_delta_interpretationchamber_to_borewood_speciesconstructionsource_basisdone_bar_refnotes
KAV-GS3-5HFipple Kaval5-hole Moldavian/RomanianG#3207.65256Kaval gypsy mode: 0,2,3,6,7,8 semitones52 3 6 7 80.87501.37500.250079.031.1021.60029.50232.6313.129positive: needs fipple/window end correction or added acoustic length33.7Locust or eldersolid or split blank; optional two-piece jointFujara Flutes observed G# kaval length 79 cmfujara + flutes + pistalkaLongest 5-hole starter; use as low-voice reference.
KAV-A3-5HFipple Kaval5-hole Moldavian/RomanianA3220.00057Kaval gypsy mode: 0,2,3,6,7,8 semitones52 3 6 7 80.87501.37500.250074.029.1341.60027.53430.8003.266positive: needs fipple/window end correction or added acoustic length31.5Eldertwo-piece optional hand-cut jointFujara Flutes observed A kaval length 74 cmfujara + flutes + pistalkaRecommended first kaval because length, bore, and hand span are forgiving.
KAV-B3-5HFipple Kaval5-hole Moldavian/RomanianB3246.94259Kaval gypsy mode: 0,2,3,6,7,8 semitones52 3 6 7 80.81251.31250.250067.026.3781.50024.87827.4402.562positive: needs fipple/window end correction or added acoustic length30.6Eldersolid split blankFujara Flutes observed B kaval length 67 cmfujara + flutes + pistalkaCompact 5-hole version; tighter fipple tolerances.
KAV-C4-5HFipple Kaval5-hole Moldavian/RomanianC4261.62660Kaval gypsy mode: 0,2,3,6,7,8 semitones52 3 6 7 80.75001.25000.250062.024.4091.45022.95925.9002.940positive: needs fipple/window end correction or added acoustic length30.6Elder, maple, or cherrysolid split blankFujara Flutes observed C kaval length 62 cmfujara + flutes + pistalkaSmallest 5-hole kaval; good for fipple/head trials.
KAV-A3-7HFipple Kaval7-hole expanded MoldavianA3220.00057Expanded kaval: 0,2,3,4,6,7,8,9 semitones72 3 4 6 7 8 90.87501.40000.262590.035.4331.65033.78330.800-2.983negative: observed source length is overlong for this nominal root; trim foot or reassess key naming38.6Eldersolid split blankFujara Flutes observed 7-hole A kaval length 90 cmfujara + flutes + pistalkaExpanded note set; lower holes may be covered with finger bases.
KAV-AS3-7HFipple Kaval7-hole expanded MoldavianA#3233.08258Expanded kaval: 0,2,3,4,6,7,8,9 semitones72 3 4 6 7 8 90.87501.40000.262585.033.4651.65031.81529.071-2.743negative: observed source length is overlong for this nominal root; trim foot or reassess key naming36.4Dogwood or eldertwo-piece optional hand-cut jointFujara Flutes observed 7-hole A# kaval length 85 cmfujara + flutes + pistalkaGood two-piece test because the published example is collapsible.
KAV-B3-7HFipple Kaval7-hole expanded MoldavianB3246.94259Expanded kaval: 0,2,3,4,6,7,8,9 semitones72 3 4 6 7 8 90.81251.31250.250069.027.1651.50025.66527.4401.774positive: needs fipple/window end correction or added acoustic length31.6Eldersolid split blankFujara Flutes observed 7-hole B kaval length 69 cmfujara + flutes + pistalkaCompact 7-hole version; validate hand position before final hole diameters.
ALG-AS3-J2Fipple AlghosaziAnasazi-derived with thumb holeA#3233.08258Anasazi-derived: 0,2,4,7,9,11,12 semitones62 4 7 9 11 120.87501.37500.250082.032.2831.80030.48329.071-1.412negative: observed source length is overlong for this nominal root; trim foot or reassess key naming34.8Ashtwo-piece hand-cut jointFujara Flutes observed A# Alghosazi length 82 cmfujara + flutes + pistalkaRecommended first Alghosazi; published example uses a collapsible joint.
ALG-AS3-SOLIDFipple AlghosaziAnasazi-derived with thumb holeA#3233.08258Anasazi-derived: 0,2,4,7,9,11,12 semitones62 4 7 9 11 120.87501.37500.250085.033.4651.80031.66529.071-2.593negative: observed source length is overlong for this nominal root; trim foot or reassess key naming36.2Locustsolid split blankFujara Flutes observed solid A# Alghosazi length 85 cmfujara + flutes + pistalkaSolid-body alternate for comparing joint vs no-joint response.
ALG-A3-J3Fipple AlghosaziAnasazi-derived with thumb holeA3220.00057Anasazi-derived: 0,2,4,7,9,11,12 semitones62 4 7 9 11 120.87501.37500.250073.028.7401.75026.99030.8003.810positive: needs fipple/window end correction or added acoustic length30.8Oakthree-piece hand-cut jointFujara Flutes observed A Alghosazi length 73 cmfujara + flutes + pistalkaUse as the modular joint stress test.
ALG-B3-SOLIDFipple AlghosaziAnasazi-derived with thumb holeB3246.94259Anasazi-derived: 0,2,4,7,9,11,12 semitones62 4 7 9 11 120.81251.31250.250070.027.5591.65025.90927.4401.531positive: needs fipple/window end correction or added acoustic length31.9Elder or maplesolid split blankFujara Flutes observed B Alghosazi length 70 cmfujara + flutes + pistalkaCompact Alghosazi; top thumb hole needs ergonomic mockup.

hole-schedule.csv

Project artifact.

member_idinstrumenthole_no_from_footoffset_sttarget_hzx_from_labium_inx_from_foot_instarter_drill_intarget_final_dia_inorientationformula
KAV-GS3-5HFipple Kaval12233.08226.2843.2190.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval23246.94224.8084.6940.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval36293.66520.8618.6410.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval47311.12719.699.8120.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval58329.62818.58510.9170.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval12246.94224.533.0040.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval23261.62623.1534.3810.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval36311.12719.4698.0640.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval47329.62818.3779.1570.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval58349.22817.34510.1890.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval12277.18322.1642.7140.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval23293.66520.923.9580.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval36349.22817.5917.2870.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval47369.99416.6048.2740.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval58391.99515.6729.2060.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval12293.66520.4552.5050.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval23311.12719.3073.6530.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval36369.99416.2356.7250.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval47391.99515.3247.6360.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval58415.30514.4648.4960.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval12246.94230.0973.6860.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval23261.62628.4085.3750.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval34277.18326.8146.9690.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval46311.12723.8889.8950.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval57329.62822.54711.2360.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval68349.22821.28212.5010.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval79369.99420.08813.6960.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval12261.62628.3443.4710.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval23277.18326.7535.0620.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval34293.66525.2516.5630.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval46329.62822.4969.3180.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval57349.22821.23410.5810.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval68369.99420.04211.7730.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval79391.99518.91712.8980.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval12277.18322.8652.80.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval23293.66521.5824.0830.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval34311.12720.3715.2950.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval46349.22818.1487.5170.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval57369.99417.138.5360.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval68391.99516.1689.4970.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval79415.30515.26110.4050.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi12261.62627.1583.3260.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi24293.66524.1956.2890.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi37349.22820.34510.1380.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi49391.99518.12612.3580.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi511440.016.14814.3350.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-J2Fipple Alghosazi612466.16415.24215.2420.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi12261.62628.213.4550.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi24293.66525.1326.5320.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi37349.22821.13410.5310.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi49391.99518.82812.8370.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi511440.016.77414.8910.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-AS3-SOLIDFipple Alghosazi612466.16415.83215.8320.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi12246.94224.0452.9450.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi24277.18321.4225.5680.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi37329.62818.0148.9760.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi49369.99416.04810.9420.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi511415.30514.29812.6930.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-A3-J3Fipple Alghosazi612440.013.49513.4950.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi12277.18323.0822.8270.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi24311.12720.5645.3450.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi37369.99417.2928.6170.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi49415.30515.40610.5030.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi511466.16413.72512.1840.21880.3125frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
ALG-B3-SOLIDFipple Alghosazi612493.88312.95512.9550.21880.3125back thumbx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging

kaval-hole-schedule.csv

Project artifact.

member_idinstrumenthole_no_from_footoffset_sttarget_hzx_from_labium_inx_from_foot_instarter_drill_intarget_final_dia_inorientationformula
KAV-GS3-5HFipple Kaval12233.08226.2843.2190.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval23246.94224.8084.6940.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval36293.66520.8618.6410.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval47311.12719.699.8120.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-GS3-5HFipple Kaval58329.62818.58510.9170.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval12246.94224.533.0040.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval23261.62623.1534.3810.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval36311.12719.4698.0640.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval47329.62818.3779.1570.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-5HFipple Kaval58349.22817.34510.1890.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval12277.18322.1642.7140.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval23293.66520.923.9580.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval36349.22817.5917.2870.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval47369.99416.6048.2740.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-5HFipple Kaval58391.99515.6729.2060.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval12293.66520.4552.5050.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval23311.12719.3073.6530.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval36369.99416.2356.7250.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval47391.99515.3247.6360.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-C4-5HFipple Kaval58415.30514.4648.4960.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval12246.94230.0973.6860.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval23261.62628.4085.3750.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval34277.18326.8146.9690.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval46311.12723.8889.8950.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval57329.62822.54711.2360.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval68349.22821.28212.5010.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-A3-7HFipple Kaval79369.99420.08813.6960.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval12261.62628.3443.4710.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval23277.18326.7535.0620.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval34293.66525.2516.5630.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval46329.62822.4969.3180.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval57349.22821.23410.5810.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval68369.99420.04211.7730.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-AS3-7HFipple Kaval79391.99518.91712.8980.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval12277.18322.8652.80.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval23293.66521.5824.0830.18750.2500frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval34311.12720.3715.2950.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval46349.22818.1487.5170.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval57369.99417.138.5360.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval68391.99516.1689.4970.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging
KAV-B3-7HFipple Kaval79415.30515.26110.4050.21880.3000frontx_from_labium = labium_to_foot * 2^(-offset_st/12); tune upward by enlarging

photo-shotlist.md

Project artifact.

Photo Shotlist

Follow the repo-level photo pipeline style: real process photos replace concept placeholders as soon as shop work begins.

P0 Fipple Head

P1 Bodies

Jointed/Double Options

Finished Portfolio

risks.md

Project artifact.

Risks

Acoustic

Structural

Ergonomic

Supply

Fit And Finish

sources.md

Project artifact.

Sources And Provenance

External Pages Checked

Local Sources Used

Source-Backed Facts Used

Assumptions Needing Prototype Data