SAC format specification

Version 1, 2014-03-29

Copyright (c) 2014 Marcus Geelnard

1. Data types

The following data types are used in SAC format files:

TypeSize (bytes)FormatEndianness
uint81Unsigned integern/a
int162Two's complement integerLittle endian
uint162Unsigned integerLittle endian
uint324Unsigned integerLittle endian

2. Chunks

A SAC format file is built up from chunks and sub chunks. A chunk has the following format:

OffsetTypeDescription
0uint32Chunk ID
4uint32Chunk size in bytes
8-Data (chunk size bytes)

2.1 The SAC\1 chunk

A SAC file must start with a SAC\1 chunk, which has the chunk ID 0x01434153 ("SAC\1"). The size of the chunk is the size of all it's sub chunks:

OffsetTypeDescription / value
0uint320x01434153 ("SAC\1")
4uint32Chunk size in bytes
8-Sub chunks (chunk size bytes)

The chunk must contain at least two sub chunks: the FRMT sub chunk and the DATA sub chunk.

2.2 The FRMT sub chunk

The FRMT sub chunk contains the format description of the sound data:

OffsetTypeDescription / value
0uint320x544D5246 ("FRMT")
4uint3214
8uint32Data format ID
12uint32Number of samples
16uint16Number of channels
18uint32Sample rate [Hz]

The following data formats are recognized:

FormatIDDescription
DD4A0x413444444-bit DDPCM
DD8A0x413844448-bit DDPCM

The FRMT sub chunk must occur before the DATA sub chunk in the file.

2.3 The DATA sub chunk

The DATA sub chunk contains the sound data:

OffsetTypeDescription / value
0uint320x41544144 ("DATA")
4uint32Data size in bytes
8-Sound data

The sound data is stored in the format given by the "Data format ID" field of the FRMT chunk.

3. Data formats

The sound data is divided into fixed size blocks. A single block contains a fixed number of samples from a single channel. If a sound file contains more than one channel, blocks from different channels are inteleaved.

For instance, if there are three channels, they are interleaved as follows:

Channel 1
Block #1
Channel 2
Block #1
Channel 3
Block #1
Channel 1
Block #2
Channel 2
Block #2
Channel 3
Block #2
...

If the number of samples is not a multiple of the block size, the final block for each channel will be truncated to the minimum number of bytes necessary to represent the number of samples in the final block.

3.1 DD4A

A single block contains 32 samples, and is 18 bytes long.

Block format: TBD

The decoding tables for DD4A are:

Table #Values
01,2,3,4,5,6,7,8,-1,-2,-3,-4,-5,-6,-7,-8
11,3,4,6,9,12,16,22,-1,-3,-4,-6,-9,-12,-16,-22
22,6,10,15,20,26,33,46,-2,-6,-10,-15,-20,-26,-33,-46
33,11,19,27,35,44,55,74,-3,-11,-19,-27,-35,-44,-55,-74
45,17,29,40,51,64,80,106,-5,-17,-29,-40,-51,-64,-80,-106
57,23,39,55,71,88,109,143,-7,-23,-39,-55,-71,-88,-109,-143
610,30,50,70,90,112,137,180,-10,-30,-50,-70,-90,-112,-137,-180
712,35,59,84,108,134,166,217,-12,-35,-59,-84,-108,-134,-166,-217
814,42,71,99,129,160,198,259,-14,-42,-71,-99,-129,-160,-198,-259
916,49,83,117,151,188,232,304,-16,-49,-83,-117,-151,-188,-232,-304
1019,56,94,133,173,216,267,349,-19,-56,-94,-133,-173,-216,-267,-349
1121,64,108,152,198,248,306,401,-21,-64,-108,-152,-198,-248,-306,-401
1224,73,122,172,224,280,346,453,-24,-73,-122,-172,-224,-280,-346,-453
1327,81,136,191,250,312,387,506,-27,-81,-136,-191,-250,-312,-387,-506
1430,90,151,213,278,348,431,565,-30,-90,-151,-213,-278,-348,-431,-565
1533,100,167,236,309,386,479,627,-33,-100,-167,-236,-309,-386,-479,-627
1636,110,185,261,341,428,531,696,-36,-110,-185,-261,-341,-428,-531,-696
1740,120,202,286,374,470,584,764,-40,-120,-202,-286,-374,-470,-584,-764
1843,131,220,312,408,513,639,838,-43,-131,-220,-312,-408,-513,-639,-838
1948,144,242,342,449,565,703,922,-48,-144,-242,-342,-449,-565,-703,-922
2052,157,264,374,490,618,770,1011,-52,-157,-264,-374,-490,-618,-770,-1011
2157,171,287,407,534,674,840,1103,-57,-171,-287,-407,-534,-674,-840,-1103
2261,185,312,442,581,733,915,1202,-61,-185,-312,-442,-581,-733,-915,-1202
2366,200,338,478,628,794,992,1305,-66,-200,-338,-478,-628,-794,-992,-1305
2471,217,365,518,681,861,1076,1416,-71,-217,-365,-518,-681,-861,-1076,-1416
2577,235,395,561,738,934,1169,1540,-77,-235,-395,-561,-738,-934,-1169,-1540
2683,253,426,605,797,1010,1265,1668,-83,-253,-426,-605,-797,-1010,-1265,-1668
2790,272,459,652,860,1090,1368,1806,-90,-272,-459,-652,-860,-1090,-1368,-1806
2897,294,496,706,931,1182,1484,1960,-97,-294,-496,-706,-931,-1182,-1484,-1960
29105,318,537,763,1007,1279,1607,2125,-105,-318,-537,-763,-1007,-1279,-1607,-2125
30112,342,578,823,1087,1382,1738,2301,-112,-342,-578,-823,-1087,-1382,-1738,-2301
31121,369,624,888,1173,1493,1881,2491,-121,-369,-624,-888,-1173,-1493,-1881,-2491
32131,398,672,957,1265,1611,2030,2690,-131,-398,-672,-957,-1265,-1611,-2030,-2690
33141,428,723,1032,1365,1740,2194,2908,-141,-428,-723,-1032,-1365,-1740,-2194,-2908
34152,463,782,1115,1476,1882,2374,3150,-152,-463,-782,-1115,-1476,-1882,-2374,-3150
35164,500,846,1206,1595,2034,2569,3408,-164,-500,-846,-1206,-1595,-2034,-2569,-3408
36177,539,911,1299,1720,2195,2772,3679,-177,-539,-911,-1299,-1720,-2195,-2772,-3679
37190,581,982,1401,1855,2367,2991,3972,-190,-581,-982,-1401,-1855,-2367,-2991,-3972
38205,625,1058,1510,2001,2554,3229,4290,-205,-625,-1058,-1510,-2001,-2554,-3229,-4290
39221,674,1141,1628,2158,2755,3485,4632,-221,-674,-1141,-1628,-2158,-2755,-3485,-4632
40237,725,1228,1754,2325,2970,3757,4996,-237,-725,-1228,-1754,-2325,-2970,-3757,-4996
41255,781,1323,1890,2505,3201,4051,5389,-255,-781,-1323,-1890,-2505,-3201,-4051,-5389
42275,842,1426,2037,2702,3452,4369,5814,-275,-842,-1426,-2037,-2702,-3452,-4369,-5814
43296,907,1537,2195,2911,3721,4712,6272,-296,-907,-1537,-2195,-2911,-3721,-4712,-6272
44318,977,1656,2366,3139,4013,5082,6766,-318,-977,-1656,-2366,-3139,-4013,-5082,-6766
45343,1053,1785,2551,3384,4328,5482,7299,-343,-1053,-1785,-2551,-3384,-4328,-5482,-7299
46369,1135,1925,2752,3652,4670,5916,7880,-369,-1135,-1925,-2752,-3652,-4670,-5916,-7880
47398,1224,2077,2969,3941,5040,6384,8505,-398,-1224,-2077,-2969,-3941,-5040,-6384,-8505
48429,1321,2241,3205,4254,5440,6890,9178,-429,-1321,-2241,-3205,-4254,-5440,-6890,-9178
49462,1426,2420,3461,4595,5876,7442,9913,-462,-1426,-2420,-3461,-4595,-5876,-7442,-9913
50499,1539,2613,3738,4962,6346,8037,10707,-499,-1539,-2613,-3738,-4962,-6346,-8037,-10707
51538,1662,2824,4040,5362,6855,8679,11558,-538,-1662,-2824,-4040,-5362,-6855,-8679,-11558
52580,1796,3051,4366,5794,7408,9376,12485,-580,-1796,-3051,-4366,-5794,-7408,-9376,-12485
53625,1939,3298,4719,6266,8008,10132,13484,-625,-1939,-3298,-4719,-6266,-8008,-10132,-13484
54673,2094,3563,5103,6775,8658,10949,14567,-673,-2094,-3563,-5103,-6775,-8658,-10949,-14567
55727,2267,3859,5525,7334,9366,11834,15729,-727,-2267,-3859,-5525,-7334,-9366,-11834,-15729
56783,2453,4179,5983,7943,10139,12795,16989,-783,-2453,-4179,-5983,-7943,-10139,-12795,-16989
57844,2656,4528,6483,8604,10977,13838,18355,-844,-2656,-4528,-6483,-8604,-10977,-13838,-18355
58915,2881,4906,7028,9337,11901,14978,19790,-915,-2881,-4906,-7028,-9337,-11901,-14978,-19790
59986,3122,5324,7629,10116,12880,16196,21370,-986,-3122,-5324,-7629,-10116,-12880,-16196,-21370
601075,3393,5784,8282,10973,13964,17524,23011,-1075,-3393,-5784,-8282,-10973,-13964,-17524,-23011
611165,3680,6276,8987,11895,15112,18914,24787,-1165,-3680,-6276,-8987,-11895,-15112,-18914,-24787
621264,3989,6822,9762,12914,16392,20468,26712,-1264,-3989,-6822,-9762,-12914,-16392,-20468,-26712
631531,4830,8253,11823,15654,19850,24813,32767,-1531,-4830,-8253,-11823,-15654,-19850,-24813,-32767

3.2 DD8A

A single block contains 16 samples, and is 17 bytes long.

Block format: TBD

The decoding tables for DD8A are:

Table #Values
0 1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32, 33,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,48, 49,50,51,52,53,54,55,56, 57,58,59,60,61,62,63,64, 65,66,67,68,69,70,71,72, 74,75,77,80,81,83,84,86, 89,90,91,93,96,97,99,102, 103,105,108,110,112,114,116,119, 121,124,126,129,132,135,138,141, 144,147,150,153,157,160,164,167, 171,176,180,185,190,195,201,208, 215,223,232,243,255,271,294,339, -1,-2,-3,-4,-5,-6,-7,-8, -9,-10,-11,-12,-13,-14,-15,-16, -17,-18,-19,-20,-21,-22,-23,-24, -25,-26,-27,-28,-29,-30,-31,-32, -33,-34,-35,-36,-37,-38,-39,-40, -41,-42,-43,-44,-45,-46,-47,-48, -49,-50,-51,-52,-53,-54,-55,-56, -57,-58,-59,-60,-61,-62,-63,-64, -65,-66,-67,-68,-69,-70,-71,-72, -74,-75,-77,-80,-81,-83,-84,-86, -89,-90,-91,-93,-96,-97,-99,-102, -103,-105,-108,-110,-112,-114,-116,-119, -121,-124,-126,-129,-132,-135,-138,-141, -144,-147,-150,-153,-157,-160,-164,-167, -171,-176,-180,-185,-190,-195,-201,-208, -215,-223,-232,-243,-255,-271,-294,-339
1 1,3,5,6,9,10,13,16, 18,20,22,25,27,28,31,33, 36,38,40,42,45,47,48,51, 53,54,57,59,62,64,67,69, 71,74,75,77,80,81,83,86, 87,90,91,94,96,99,100,103, 106,108,111,112,114,116,119,120, 123,125,128,130,132,134,136,138, 141,142,145,147,150,151,154,156, 158,160,163,165,168,170,172,175, 177,180,183,185,188,190,192,195, 198,200,202,205,208,211,213,216, 219,222,225,228,231,234,237,240, 244,247,251,254,258,262,266,270, 275,280,285,290,295,301,307,314, 321,330,340,351,365,382,406,454, -1,-3,-5,-6,-9,-10,-13,-16, -18,-20,-22,-25,-27,-28,-31,-33, -36,-38,-40,-42,-45,-47,-48,-51, -53,-54,-57,-59,-62,-64,-67,-69, -71,-74,-75,-77,-80,-81,-83,-86, -87,-90,-91,-94,-96,-99,-100,-103, -106,-108,-111,-112,-114,-116,-119,-120, -123,-125,-128,-130,-132,-134,-136,-138, -141,-142,-145,-147,-150,-151,-154,-156, -158,-160,-163,-165,-168,-170,-172,-175, -177,-180,-183,-185,-188,-190,-192,-195, -198,-200,-202,-205,-208,-211,-213,-216, -219,-222,-225,-228,-231,-234,-237,-240, -244,-247,-251,-254,-258,-262,-266,-270, -275,-280,-285,-290,-295,-301,-307,-314, -321,-330,-340,-351,-365,-382,-406,-454
2 1,4,9,13,16,19,24,27, 32,36,39,44,47,51,54,58, 63,66,70,74,78,82,86,90, 93,96,100,105,108,112,117,120, 124,128,131,135,140,144,147,151, 156,159,163,167,171,175,180,183, 188,192,195,199,203,207,212,216, 219,224,228,231,236,240,243,248, 252,257,261,266,271,275,279,284, 288,293,298,303,307,312,317,322, 327,332,337,342,347,352,358,363, 369,374,380,386,392,398,404,411, 418,425,432,439,446,454,462,470, 478,487,496,505,514,524,534,545, 556,568,581,594,609,624,641,659, 679,701,726,756,791,837,902,1027, -1,-4,-9,-13,-16,-19,-24,-27, -32,-36,-39,-44,-47,-51,-54,-58, -63,-66,-70,-74,-78,-82,-86,-90, -93,-96,-100,-105,-108,-112,-117,-120, -124,-128,-131,-135,-140,-144,-147,-151, -156,-159,-163,-167,-171,-175,-180,-183, -188,-192,-195,-199,-203,-207,-212,-216, -219,-224,-228,-231,-236,-240,-243,-248, -252,-257,-261,-266,-271,-275,-279,-284, -288,-293,-298,-303,-307,-312,-317,-322, -327,-332,-337,-342,-347,-352,-358,-363, -369,-374,-380,-386,-392,-398,-404,-411, -418,-425,-432,-439,-446,-454,-462,-470, -478,-487,-496,-505,-514,-524,-534,-545, -556,-568,-581,-594,-609,-624,-641,-659, -679,-701,-726,-756,-791,-837,-902,-1027
3 4,11,19,27,36,44,52,60, 67,75,83,91,99,108,116,124, 132,141,149,157,165,173,181,190, 198,205,213,222,230,238,246,255, 263,271,279,288,296,305,313,322, 331,339,348,356,365,373,381,390, 398,407,415,424,433,442,450,459, 467,476,485,494,503,512,521,530, 539,549,558,567,577,586,596,606, 616,626,636,646,656,667,678,688, 698,709,720,731,742,753,765,776, 788,800,812,825,838,851,864,877, 890,904,919,934,949,964,980,997, 1014,1031,1049,1068,1087,1107,1128,1150, 1173,1198,1224,1251,1280,1312,1346,1382, 1422,1468,1519,1579,1651,1744,1875,2132, -4,-11,-19,-27,-36,-44,-52,-60, -67,-75,-83,-91,-99,-108,-116,-124, -132,-141,-149,-157,-165,-173,-181,-190, -198,-205,-213,-222,-230,-238,-246,-255, -263,-271,-279,-288,-296,-305,-313,-322, -331,-339,-348,-356,-365,-373,-381,-390, -398,-407,-415,-424,-433,-442,-450,-459, -467,-476,-485,-494,-503,-512,-521,-530, -539,-549,-558,-567,-577,-586,-596,-606, -616,-626,-636,-646,-656,-667,-678,-688, -698,-709,-720,-731,-742,-753,-765,-776, -788,-800,-812,-825,-838,-851,-864,-877, -890,-904,-919,-934,-949,-964,-980,-997, -1014,-1031,-1049,-1068,-1087,-1107,-1128,-1150, -1173,-1198,-1224,-1251,-1280,-1312,-1346,-1382, -1422,-1468,-1519,-1579,-1651,-1744,-1875,-2132
4 6,21,37,53,68,83,99,115, 131,147,162,178,194,209,225,242, 257,272,288,304,321,336,353,369, 385,401,416,432,448,465,480,497, 513,529,546,562,578,595,612,628, 645,661,678,695,711,728,745,762, 779,796,813,830,847,864,882,899, 917,934,952,970,988,1006,1024,1042, 1061,1080,1099,1118,1137,1156,1176,1196, 1216,1237,1257,1278,1299,1320,1341,1362, 1383,1405,1427,1449,1472,1495,1518,1541, 1565,1589,1614,1639,1664,1690,1716,1743, 1770,1799,1828,1858,1889,1920,1953,1986, 2020,2055,2092,2129,2168,2209,2251,2295, 2341,2391,2443,2499,2557,2620,2688,2761, 2842,2934,3037,3156,3300,3485,3747,4255, -6,-21,-37,-53,-68,-83,-99,-115, -131,-147,-162,-178,-194,-209,-225,-242, -257,-272,-288,-304,-321,-336,-353,-369, -385,-401,-416,-432,-448,-465,-480,-497, -513,-529,-546,-562,-578,-595,-612,-628, -645,-661,-678,-695,-711,-728,-745,-762, -779,-796,-813,-830,-847,-864,-882,-899, -917,-934,-952,-970,-988,-1006,-1024,-1042, -1061,-1080,-1099,-1118,-1137,-1156,-1176,-1196, -1216,-1237,-1257,-1278,-1299,-1320,-1341,-1362, -1383,-1405,-1427,-1449,-1472,-1495,-1518,-1541, -1565,-1589,-1614,-1639,-1664,-1690,-1716,-1743, -1770,-1799,-1828,-1858,-1889,-1920,-1953,-1986, -2020,-2055,-2092,-2129,-2168,-2209,-2251,-2295, -2341,-2391,-2443,-2499,-2557,-2620,-2688,-2761, -2842,-2934,-3037,-3156,-3300,-3485,-3747,-4255
5 12,42,73,104,135,166,197,229, 260,291,323,354,386,418,449,480, 512,543,576,607,639,670,702,734, 766,798,830,863,895,928,960,993, 1025,1058,1091,1124,1157,1190,1223,1256, 1290,1323,1357,1391,1425,1459,1493,1528, 1562,1597,1632,1667,1702,1737,1773,1808, 1844,1880,1916,1953,1990,2027,2064,2101, 2140,2179,2218,2258,2298,2339,2380,2421, 2463,2505,2548,2591,2634,2678,2722,2767, 2812,2858,2905,2952,2999,3048,3097,3146, 3197,3248,3301,3354,3409,3464,3521,3578, 3638,3700,3763,3828,3895,3964,4034,4107, 4183,4261,4341,4425,4513,4604,4698,4797, 4902,5015,5134,5261,5396,5541,5697,5868, 6058,6273,6516,6798,7139,7578,8202,9399, -12,-42,-73,-104,-135,-166,-197,-229, -260,-291,-323,-354,-386,-418,-449,-480, -512,-543,-576,-607,-639,-670,-702,-734, -766,-798,-830,-863,-895,-928,-960,-993, -1025,-1058,-1091,-1124,-1157,-1190,-1223,-1256, -1290,-1323,-1357,-1391,-1425,-1459,-1493,-1528, -1562,-1597,-1632,-1667,-1702,-1737,-1773,-1808, -1844,-1880,-1916,-1953,-1990,-2027,-2064,-2101, -2140,-2179,-2218,-2258,-2298,-2339,-2380,-2421, -2463,-2505,-2548,-2591,-2634,-2678,-2722,-2767, -2812,-2858,-2905,-2952,-2999,-3048,-3097,-3146, -3197,-3248,-3301,-3354,-3409,-3464,-3521,-3578, -3638,-3700,-3763,-3828,-3895,-3964,-4034,-4107, -4183,-4261,-4341,-4425,-4513,-4604,-4698,-4797, -4902,-5015,-5134,-5261,-5396,-5541,-5697,-5868, -6058,-6273,-6516,-6798,-7139,-7578,-8202,-9399
6 22,83,146,209,272,335,399,464, 527,592,655,719,783,848,912,977, 1042,1107,1172,1237,1302,1367,1432,1497, 1564,1630,1695,1762,1827,1894,1961,2028, 2095,2162,2230,2297,2365,2433,2501,2570, 2639,2708,2777,2846,2915,2985,3055,3126, 3197,3268,3339,3410,3482,3555,3628,3701, 3774,3847,3921,3996,4071,4146,4222,4298, 4376,4457,4538,4619,4702,4785,4868,4952, 5037,5122,5209,5296,5383,5472,5561,5652, 5743,5836,5929,6024,6119,6216,6315,6415, 6516,6619,6724,6830,6937,7047,7159,7273, 7391,7514,7640,7768,7900,8036,8174,8317, 8465,8618,8776,8941,9112,9289,9475,9670, 9878,10100,10336,10587,10857,11148,11466,11814, 12205,12651,13163,13764,14504,15471,16879,19677, -22,-83,-146,-209,-272,-335,-399,-464, -527,-592,-655,-719,-783,-848,-912,-977, -1042,-1107,-1172,-1237,-1302,-1367,-1432,-1497, -1564,-1630,-1695,-1762,-1827,-1894,-1961,-2028, -2095,-2162,-2230,-2297,-2365,-2433,-2501,-2570, -2639,-2708,-2777,-2846,-2915,-2985,-3055,-3126, -3197,-3268,-3339,-3410,-3482,-3555,-3628,-3701, -3774,-3847,-3921,-3996,-4071,-4146,-4222,-4298, -4376,-4457,-4538,-4619,-4702,-4785,-4868,-4952, -5037,-5122,-5209,-5296,-5383,-5472,-5561,-5652, -5743,-5836,-5929,-6024,-6119,-6216,-6315,-6415, -6516,-6619,-6724,-6830,-6937,-7047,-7159,-7273, -7391,-7514,-7640,-7768,-7900,-8036,-8174,-8317, -8465,-8618,-8776,-8941,-9112,-9289,-9475,-9670, -9878,-10100,-10336,-10587,-10857,-11148,-11466,-11814, -12205,-12651,-13163,-13764,-14504,-15471,-16879,-19677
7 32,156,286,419,551,684,818,953, 1088,1224,1360,1495,1632,1769,1906,2043, 2180,2317,2455,2594,2733,2872,3011,3150, 3289,3429,3568,3709,3850,3991,4133,4274, 4416,4559,4702,4845,4990,5133,5278,5423, 5569,5714,5860,6007,6154,6301,6450,6599, 6748,6898,7049,7200,7352,7504,7657,7810, 7965,8120,8275,8432,8589,8747,8905,9064, 9227,9396,9565,9735,9905,10077,10249,10423, 10599,10775,10953,11131,11311,11494,11676,11860, 12046,12235,12426,12618,12811,13007,13205,13405, 13608,13814,14023,14234,14448,14666,14887,15111, 15344,15587,15834,16086,16345,16609,16879,17158, 17445,17740,18045,18361,18686,19026,19380,19751, 20148,20571,21021,21500,22009,22564,23163,23822, 24566,25425,26421,27598,29070,30500,31800,32767, -32,-156,-286,-419,-551,-684,-818,-953, -1088,-1224,-1360,-1495,-1632,-1769,-1906,-2043, -2180,-2317,-2455,-2594,-2733,-2872,-3011,-3150, -3289,-3429,-3568,-3709,-3850,-3991,-4133,-4274, -4416,-4559,-4702,-4845,-4990,-5133,-5278,-5423, -5569,-5714,-5860,-6007,-6154,-6301,-6450,-6599, -6748,-6898,-7049,-7200,-7352,-7504,-7657,-7810, -7965,-8120,-8275,-8432,-8589,-8747,-8905,-9064, -9227,-9396,-9565,-9735,-9905,-10077,-10249,-10423, -10599,-10775,-10953,-11131,-11311,-11494,-11676,-11860, -12046,-12235,-12426,-12618,-12811,-13007,-13205,-13405, -13608,-13814,-14023,-14234,-14448,-14666,-14887,-15111, -15344,-15587,-15834,-16086,-16345,-16609,-16879,-17158, -17445,-17740,-18045,-18361,-18686,-19026,-19380,-19751, -20148,-20571,-21021,-21500,-22009,-22564,-23163,-23822, -24566,-25425,-26421,-27598,-29070,-30500,-31800,-32767

4. Decoding a single block

TBD