All for Strings Theory Book 1 - Violin

Manufacturer: Kjos Music
Model #: 84VN
| UPC: 9780849732461
Price: $7.95 (CAD)

This item is temporarily out of stock, but is available to purchase. Most orders will ship in approximately 10-14 days. If shipping will be longer than 14 days we will contact you with an expected date.
 

Description

Features:

All for Strings Theory Book 1 Violin <body> <p>Theory Workbooks 1 and 2 are correlated with the All for Strings method books and are suitable for classroom or individual use. Each page features exercises and games which encompass music fundamentals introduced in the method books. </p> <p>Students start by learning the piano keyboard to increase their understanding of the intervals. They also work with fingering chart exercises so that basic theory can be immediately applied to their instrument. In addition to drawing clefs, notes, key and time signatures, students learn about musical phrases and begin composing. Puzzles and musical math games are also included.</p> </body> </html> <br /> <!-- The preceding spaces are here because some category display formats will cause the products to cascade to the right when displaying product by category. This is caused by the table below being part of the teaser sentence if you have a blank or very short active-e description. These spaces will trick the teaser sentence into thinking that it has something to display sothat the table does not become part of the teaser sentence. You may need to adjust these spaces if you run into this issue.--> <br /> <span style="FONT-WEIGHT: bold">Table of Contents:</span><br /> <br /> <table borderwidth="0"> <tbody> <tr> <td><span style="FONT-WEIGHT: bold">Catalog:</span></td> <td>84VN</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Publisher:</span></td> <td>Kjos Music</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Composer:</span></td> <td>Anderson/frost</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Artist:</span></td> <td>{{ATTR_ARTIST}}</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Arranger:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Voicing:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Level:</span></td> <td>Student</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Pages:</span></td> <td>{{ATTR_PAGES}}</td> </tr> </tbody> </table></div> </div> <div class="full-description-wrapper"> <h2 class="title"><strong>Specifications</strong></h2> <div class="full-description"> <div class="product-attributes-wrap"> <p><label>Instrument: </label>Violin</p> <p><label>Level: </label>Student</p> </div> </div> </div> <div class="full-description-wrapper"> <h2 class="title"><strong>Reviews</strong></h2> <div class="full-description"> <div class="yotpo yotpo-main-widget" data-product-id="26422" data-name="All for Strings Theory Book 1 - Violin" data-url="https://www.tapestrymusic.com/p-7756-all-for-strings-theory-book-1-violin.aspx" data-image-url="https://cdn.tapestrymusic.com/product/large/7756.jpg?format=webp" data-description="Features: All for Strings Theory Book 1 Violin Theory Workbooks 1 and 2 are correlated with the All for Strings method books and are suitable for classroom or individual use. Each page features exercises and games which encompass music fundamentals introduced in the method books. Students start by learning the piano keyboard to increase their understanding of the intervals. They also work with fingering chart exercises so that basic theory can be immediately applied to their instrument. In addition to drawing clefs, notes, key and time signatures, students learn about musical phrases and begin composing. Puzzles and musical math games are also included. Table of Contents: Catalog: 84VN Publisher: Kjos Music Composer: Anderson/frost Artist: {{ATTR_ARTIST}} Arranger: Voicing: Level: Student Pages: {{ATTR_PAGES}} "></div> </div> </div> </div> </div><section class="home-section product-section"><style> .sirvrelated { max-height: 184.5px; width: auto !important; } </style><script> var ga4_products = []; var ga4_chunk; ga4_products.push( { 'item_id' : '17634_44529', 'item_name' : 'Stringjoy Balanced Super Light Gauge (9-42) Nickel Wound Electric Guitar Strings', 'currency' : 'CAD', 'discount': 0.0000, 'index': 1, 'item_brand' : 'Stringjoy', 'item_category' : 'Guitars, Amps & Accessories', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'SJ-BAL9', 'price' : 17.9900, 'quantity' : 1 } , { 'item_id' : '10481_17471', 'item_name' : 'CLARINET FOR BEGINNERS Book 1 – Elementary', 'currency' : 'CAD', 'discount': 1.8900, 'index': 2, 'item_brand' : 'Hal Leonard', 'item_category' : 'Print Music', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Galper 0', 'price' : 18.9500, 'quantity' : 1 } , { 'item_id' : '21949_48016', 'item_name' : 'Kaplan KV310 1/2M-B10 Vivo Violin String Set, 1/2 Scale Medium Tension, Bulk 10-Pack', 'currency' : 'CAD', 'discount': 0.0000, 'index': 3, 'item_brand' : 'Kaplan', 'item_category' : 'Orchestral Strings', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'KV310 1/2M-B10', 'price' : 743.5000, 'quantity' : 1 } , { 'item_id' : '22812_48883', 'item_name' : 'D'Addario 1CAP6-100 Assorted Pearl Celluloid Guitar Picks, 100 pack, Heavy', 'currency' : 'CAD', 'discount': 0.0000, 'index': 4, 'item_brand' : 'D'Addario', 'item_category' : 'Guitars, Amps & Accessories', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : '1CAP6-100', 'price' : 62.9900, 'quantity' : 1 } ) window.dataLayer.push({ ecommerce : null }); while (ga4_products.length) { ga4_chunk = ga4_products.splice(0, 20); window.dataLayer.push({ 'event' : 'view_item_list', 'ecommerce' : { items: ga4_chunk } }); } </script> <script> /* script.datalayer.xml.config */ var vortx = vortx || {}; vortx.dataLayer = vortx.dataLayer || {}; vortx.dataLayer.productImpressions = vortx.dataLayer.productImpressions || []; vortx.dataLayer.productDetails = vortx.dataLayer.productDetails || []; vortx.dataLayer.cartProducts = vortx.dataLayer.cartProducts || []; vortx.dataLayer.cartDetails = vortx.dataLayer.cartDetails || []; vortx.dataLayer.orderDetails = vortx.dataLayer.orderDetails || []; vortx.dataLayer.orderedProducts = vortx.dataLayer.orderedProducts || []; vortx.googleEnhancedEcommerce = vortx.googleEnhancedEcommerce || {}; $(document).ready(function () { }); </script> <div class="related-products other-products-wrap"> <h2 class="group-header related-items-header other-products-header">Related Products</h2> <div class="screen-reader-only">0 Total Related Products</div> <p class="related-teaser"> </p> <div role="list"> <div class="row list-unstyled related-item-row"> <div role="listitem" class="col-sm-3 col-sm-12 product-grid-item related-item" itemprop="isSimilarTo" itemscope="" itemtype="https://schema.org/Product"> <div class="grid-item-inner"><span id="RelatedProduct_17634-44529" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"><meta itemprop="price" content="0.0000"> <meta itemprop="priceCurrency" content="CAD"></span><link itemprop="itemCondition" href="https://schema.org/NewCondition"> <meta itemprop="sku" content="ae00-17249"> <meta itemprop="productID" content="17634"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/17634.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp"><span itemprop="manufacturer" itemscope="" itemtype="https://schema.org/Organization"><meta itemprop="name" content="Stringjoy"></span><meta itemprop="name" content="Stringjoy Balanced Super Light Gauge (9-42) Nickel Wound Electric Guitar Strings"> <meta itemprop="description" content="<HTML>So these might look like a typical set of 9s (or Super Lights, or Extra Lights”everyone seems to call ˜em something different¦), but trust me, they're not. <br><br>The standard for 9s is typically 9-11-16-24-32-42, and while the gauges on the bottom end are solid, the top is all kinds of messed up. Why some other companies make them that way, I honestly couldn't tell you”but never fear! We've fixed all that for you.<br><br>See, the issue on most sets is that the .011 has far too little tension to balance with the .009 and the .016 has far too much tension. So, with our Balanced 9s we fix all that by using a .012 and a .015 instead. <br><br>The result is a set of strings that plays evenly across the entire fretboard and intonates better when set up properly. If you're typically a 9s player, these are definitely the way to go. <br><br>Gauges: .009 - .012 - .015 - .024w - .032 - .042 </HTML> <br /> <!-- The preceding spaces are here because some category display formats will cause the products to cascade to the right when displaying product by category. This is caused by the table below being part of the teaser sentence if you have a blank or very short active-e description. These spaces will trick the teaser sentence into thinking that it has something to display sothat the table does not become part of the teaser sentence. You may need to adjust these spaces if you run into this issue.--> <br /> <table borderwidth="0"> <tbody> <tr> <td><span style="FONT-WEIGHT: bold">Model:</span></td> <td>SJ-BAL9</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>Stringjoy</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-17634-stringjoy-balanced-super-light-gauge-9-42-nickel-wound-electric-guitar-strings.aspx"><a href="/p-17634-stringjoy-balanced-super-light-gauge-9-42-nickel-wound-electric-guitar-strings.aspx" class="related-product-link grid-product-link"><div class="related-item-image-wrap grid-item-image-wrap"><img src="https://cdn.tapestrymusic.com/product/large/17634.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Stringjoy Balanced Super Light Gauge (9-42) Nickel Wound Electric Guitar Strings" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Stringjoy Balanced Super Light Gauge (9-42) Nickel Wound Electric Guitar Strings</div></a></div> </div> <div role="listitem" class="col-sm-3 col-sm-12 product-grid-item related-item" itemprop="isSimilarTo" itemscope="" itemtype="https://schema.org/Product"> <div class="grid-item-inner"><span id="RelatedProduct_10481-17471" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"><meta itemprop="price" content="17.0600"> <meta itemprop="priceCurrency" content="CAD"></span><link itemprop="itemCondition" href="https://schema.org/NewCondition"> <meta itemprop="sku" content="ae00-8761"> <meta itemprop="productID" content="10481"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/10481.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp"><span itemprop="manufacturer" itemscope="" itemtype="https://schema.org/Organization"><meta itemprop="name" content="Hal Leonard"></span><meta itemprop="name" content="CLARINET FOR BEGINNERS Book 1 – Elementary"> <meta itemprop="description" content="<span style="FONT-WEIGHT: bold"><big>Features:</big></span><br /> <br /> Revised Edition <br /> <!-- The preceding spaces are here because some category display formats will cause the products to cascade to the right when displaying product by category. This is caused by the table below being part of the teaser sentence if you have a blank or very short active-e description. These spaces will trick the teaser sentence into thinking that it has something to display sothat the table does not become part of the teaser sentence. You may need to adjust these spaces if you run into this issue.--> <br /> <span style="FONT-WEIGHT: bold">Table of Contents:</span><br /> <br /> <table borderwidth="0"> <tbody> <tr> <td><span style="FONT-WEIGHT: bold">Catalog:</span></td> <td>HL48005893</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Publisher:</span></td> <td>Hal Leonard</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Composer:</span></td> <td>Galper</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Artist:</span></td> <td>{{ATTR_ARTIST}}</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Arranger:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Voicing:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Level:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Pages:</span></td> <td>{{ATTR_PAGES}}</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-10481-clarinet-for-beginners-book-1-elementary.aspx"><a href="/p-10481-clarinet-for-beginners-book-1-elementary.aspx" class="related-product-link grid-product-link"><div class="related-item-image-wrap grid-item-image-wrap"><img src="https://cdn.tapestrymusic.com/product/large/10481.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="CLARINET FOR BEGINNERS Book 1 – Elementary" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">CLARINET FOR BEGINNERS Book 1 – Elementary</div></a></div> </div> <div class="clearfix visible-xs entity-product-extra-small-clear"></div> <div role="listitem" class="col-sm-3 col-sm-12 product-grid-item related-item" itemprop="isSimilarTo" itemscope="" itemtype="https://schema.org/Product"> <div class="grid-item-inner"><span id="RelatedProduct_21949-48016" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"><meta itemprop="price" content="0.0000"> <meta itemprop="priceCurrency" content="CAD"></span><link itemprop="itemCondition" href="https://schema.org/NewCondition"> <meta itemprop="sku" content="7016-KV310 1/2M-B10"> <meta itemprop="productID" content="21949"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/21949.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp"><span itemprop="manufacturer" itemscope="" itemtype="https://schema.org/Organization"><meta itemprop="name" content="Kaplan"></span><meta itemprop="name" content="Kaplan KV310 1/2M-B10 Vivo Violin String Set, 1/2 Scale Medium Tension, Bulk 10-Pack"> <meta itemprop="description" content="<p>Take your sound from neutral to nuanced with Kaplan Vivo violin string bulk 10-packs, the perfect solution for rental fleets and repair benches. Kaplan Vivo offers focused, bright tone, with a faster, stiffer response for extra rebound. Coupled with their quick break-in period and enhanced projection, Kaplan Vivo strings provide a professional level of performance, which allows violinists to easily convey their instrument’s rich tonal palette. Kaplan strings are available in a range of sizes to suit most advancing players.</p><ul><li>Focused, bright tone designed to complement darker instruments.</li><li>Faster, stiffer response for extra bow response.</li><li>Quick break-in period.</li><li>Available in a range of sizes for advancing players.</li><li>All D'Addario strings are designed, engineered, and manufactured in the USA.</li></ul> <br /> <!-- The preceding spaces are here because some category display formats will cause the products to cascade to the right when displaying product by category. This is caused by the table below being part of the teaser sentence if you have a blank or very short active-e description. These spaces will trick the teaser sentence into thinking that it has something to display sothat the table does not become part of the teaser sentence. You may need to adjust these spaces if you run into this issue.--> <br /> <table borderwidth="0"> <tbody> <tr> <td><span style="FONT-WEIGHT: bold">Model:</span></td> <td>KV310 1/2M-B10</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>Kaplan</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-21949-kaplan-kv310-1-2m-b10-vivo-violin-string-set-1-2-scale-medium-tension-bulk-10-pack.aspx"><a href="/p-21949-kaplan-kv310-1-2m-b10-vivo-violin-string-set-1-2-scale-medium-tension-bulk-10-pack.aspx" class="related-product-link grid-product-link"><div class="related-item-image-wrap grid-item-image-wrap"><img src="https://cdn.tapestrymusic.com/product/large/21949.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Kaplan KV310 1/2M-B10 Vivo Violin String Set, 1/2 Scale Medium Tension, Bulk 10-Pack" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Kaplan KV310 1/2M-B10 Vivo Violin String Set, 1/2 Scale Medium Tension, Bulk 10-Pack</div></a></div> </div> <div role="listitem" class="col-sm-3 col-sm-12 product-grid-item related-item" itemprop="isSimilarTo" itemscope="" itemtype="https://schema.org/Product"> <div class="grid-item-inner"><span id="RelatedProduct_22812-48883" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"><meta itemprop="price" content="0.0000"> <meta itemprop="priceCurrency" content="CAD"></span><link itemprop="itemCondition" href="https://schema.org/NewCondition"> <meta itemprop="sku" content="7016-1CAP6-100"> <meta itemprop="productID" content="22812"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/22812.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp"><span itemprop="manufacturer" itemscope="" itemtype="https://schema.org/Organization"><meta itemprop="name" content="D'Addario"></span><meta itemprop="name" content="D'Addario 1CAP6-100 Assorted Pearl Celluloid Guitar Picks, 100 pack, Heavy"> <meta itemprop="description" content="<p>10-pack of premium celluloid picks in an assortment of highly attractive pearlized colors;</p><ul><li>100 picks per package</li><li>Heavy gauge (1mm) ideal for strumming and articulate picking</li><li>Standard shape for comfortable playing</li><li>Premium quality celluloid provides natural feel and warm, fat tone</li><li>D'Addario branded pick packaging is designed for minimal waste and environmental impact</li></ul> <br /> <!-- The preceding spaces are here because some category display formats will cause the products to cascade to the right when displaying product by category. This is caused by the table below being part of the teaser sentence if you have a blank or very short active-e description. These spaces will trick the teaser sentence into thinking that it has something to display sothat the table does not become part of the teaser sentence. You may need to adjust these spaces if you run into this issue.--> <br /> <table borderwidth="0"> <tbody> <tr> <td><span style="FONT-WEIGHT: bold">Model:</span></td> <td>1CAP6-100</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>D'Addario</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-22812-d-addario-1cap6-100-assorted-pearl-celluloid-guitar-picks-100-pack-heavy.aspx"><a href="/p-22812-d-addario-1cap6-100-assorted-pearl-celluloid-guitar-picks-100-pack-heavy.aspx" class="related-product-link grid-product-link"><div class="related-item-image-wrap grid-item-image-wrap"><img src="https://cdn.tapestrymusic.com/product/large/22812.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="D'Addario 1CAP6-100 Assorted Pearl Celluloid Guitar Picks, 100 pack, Heavy" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">D'Addario 1CAP6-100 Assorted Pearl Celluloid Guitar Picks, 100 pack, Heavy</div></a></div> </div> <div class="clearfix visible-xs entity-product-extra-small-clear"></div> </div> </div> </div></section><section class="container"><div class="klevu-recs" id="k-8dc2ce60-ca0f-4591-9386-bb1754e38ceb"></div></section><section class="container"><div class="klevu-recs" id="k-832dd952-863d-4354-bdcf-f9cf950aa030"></div></section><section class="container"><div class="klevu-recs" id="k-ad0faf23-2224-454a-86da-7e94eb1d3fe5"></div></section><script> /* script.datalayer.xml.config */ var vortx = vortx || {}; vortx.dataLayer = vortx.dataLayer || {}; vortx.dataLayer.productImpressions = vortx.dataLayer.productImpressions || []; vortx.dataLayer.productDetails = vortx.dataLayer.productDetails || []; vortx.dataLayer.cartProducts = vortx.dataLayer.cartProducts || []; vortx.dataLayer.cartDetails = vortx.dataLayer.cartDetails || []; vortx.dataLayer.orderDetails = vortx.dataLayer.orderDetails || []; vortx.dataLayer.orderedProducts = vortx.dataLayer.orderedProducts || []; vortx.googleEnhancedEcommerce = vortx.googleEnhancedEcommerce || {}; $(document).ready(function () { }); </script> <script> (function() { var sirvBase = 'https://cdn.tapestrymusic.com/product/large/'; var sirvParams = '?w=300&h=300&scale.option=fill&format=webp'; function fixYotpoImages() { document.querySelectorAll('.yotpo img[src]').forEach(function(img) { if (img.src.indexOf('cdn.tapestrymusic.com') !== -1) return; var link = img.closest('a[href]'); if (!link) return; var match = link.href.match(/\/p-(\d+)-/); if (!match) return; img.src = sirvBase + match[1] + '.jpg' + sirvParams; img.removeAttribute('srcset'); }); } new MutationObserver(fixYotpoImages).observe( document.body || document.documentElement, { childList: true, subtree: true } ); })(); </script><script type="application/ld+json"> { "@context": "https://schema.org/", "@type": "Product", "name": "Kjos Music All for Strings Theory Book 1 - Violin", "image": [ "https://cdn.tapestrymusic.com/product/large/7756.jpg?format=webp" ], "description": "<span style="FONT-WEIGHT: bold"><big>Features:</big></span><br /> <br /> <html> <head> <title>All for Strings Theory Book 1 Violin <body> <p>Theory Workbooks 1 and 2 are correlated with the All for Strings method books and are suitable for classroom or individual use. Each page features exercises and games which encompass music fundamentals introduced in the method books. </p> <p>Students start by learning the piano keyboard to increase their understanding of the intervals. They also work with fingering chart exercises so that basic theory can be immediately applied to their instrument. In addition to drawing clefs, notes, key and time signatures, students learn about musical phrases and begin composing. Puzzles and musical math games are also included.</p> </body> </html> <br /> <!-- The preceding spaces are here because some category display formats will cause the products to cascade to the right when displaying product by category. This is caused by the table below being part of the teaser sentence if you have a blank or very short active-e description. These spaces will trick the teaser sentence into thinking that it has something to display sothat the table does not become part of the teaser sentence. You may need to adjust these spaces if you run into this issue.--> <br /> <span style="FONT-WEIGHT: bold">Table of Contents:</span><br /> <br /> <table borderwidth="0"> <tbody> <tr> <td><span style="FONT-WEIGHT: bold">Catalog:</span></td> <td>84VN</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Publisher:</span></td> <td>Kjos Music</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Composer:</span></td> <td>Anderson/frost</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Artist:</span></td> <td>{{ATTR_ARTIST}}</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Arranger:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Voicing:</span></td> <td></td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Level:</span></td> <td>Student</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Pages:</span></td> <td>{{ATTR_PAGES}}</td> </tr> </tbody> </table>", "sku": "ae00-6073", "mpn": "84VN", "brand": { "@type": "Brand", "name": "Kjos Music" }, "offers": [ { "@type": "Offer", "name": "Kjos Music All for Strings Theory Book 1 - Violin Anderson/frost Student 0", "url": "https://www.tapestrymusic.com/p-7756-all-for-strings-theory-book-1-violin.aspx", "image": ["https://cdn.tapestrymusic.com/product/large/7756.jpg?format=webp"], "priceCurrency": "CAD", "price": "7.9500", "sku":"ae00-6073^84VN", "itemCondition": "https://schema.org/NewCondition", "availability": "https://schema.org/InStock", "priceValidUntil": "6/24/2026", "gtin": "9780849732461" } ] } </script></div> <!--End of Xmlpackage 'product.simpleproduct.xml.config' --> <!-- CONTENTS END --> </div> </div> </div> <div class="why-tapestry"> <div class="container"> <div class="row"> <div class="col-md-4"> <h3 style="margin-top:0;">Why Tapestry Music?</h3> <p>Tapestry Music has been a BC family owned business since 1996.  With 3 locations in White Rock, Vancouver and Victoria, Tapestry offers in store & online shopping, music lessons and repair services. As a music education specialist, Tapestry is respected and recommended by music educators across Canada.</p> </div> <div class="col-md-8"> <div class="row"> <div class="col-md-4"> <div class="guarantee-icon"><em class="fas fa-comments-dollar"></em></div> <div class="wwd-heading"><strong>Best Price</strong> <p>Guarantee</p> </div> <p>Tapestry will match the selling price of any identical product from any Canadian retailer that has that item in-stock, up until 30 days after purchase.</p> </div> <div class="col-md-4"> <div class="guarantee-icon"><em class="fas fa-shipping-fast"></em></div> <div class="wwd-heading"><strong>FREE SHIPPING</strong> <p>On  orders over $149</p> </div> <p>We don't charge shipping or handling on orders over $149 (before tax and shipping calculation). There are a few reasonable exceptions like very large or heavy items as well as shipping to remote areas.</p> </div> <div class="col-md-4"> <div class="guarantee-icon"><em class="fas fa-exchange-alt"></em></div> <div class="wwd-heading"><strong>30-Day</strong> <p>Returns</p> </div> <p>Exchange or return for full refund items purchased within 30 days if in unused new condition and in original packaging.</p> </div> </div> </div> </div> </div> </div> <div class="footer-wrapper"> <div class="container"> <div class="footer-row"> <div class="hours-loc-pos"> <h2>Locations & Hours </h2> <div class="row baseline-margin"> <div class="col-md-4"> <h4>White Rock & Online Orders (604) 538-0906</h4> <p>Mon to Fri  9:30 AM - 5:30 PM<br /> Saturdays  10 AM - 5 PM<br /> <br /> </p> <p><iframe frameborder="0" height="300" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2616.1729115797016!2d-122.80371438431965!3d49.02631827930431!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x5485c37922f01ffd%3A0xa6cc0198c5cbbbe8!2s1335+Johnston+Rd%2C+White+Rock%2C+BC+V4B+3Z3%2C+Canada!5e0!3m2!1sen!2sus!4v1545240206731" width="600" style="border-width: 0px; border-style: initial;"></iframe><br /> </p> </div> <div class="col-md-4"> <h4>Vancouver <br /> (604) 736-3036</h4> <p>Mon to Sat  10 AM - 6 PM<br /> Sundays  11 AM - 5 PM</p> <iframe frameborder="0" height="300" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2603.8155033661437!2d-123.10388862343596!3d49.260942771389615!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x548673e22a50433f%3A0xd3695af53f791869!2s2705%20Main%20St%2C%20Vancouver%2C%20BC%20V5T%203E9!5e0!3m2!1sen!2sca!4v1748896336348!5m2!1sen!2sca" style="border:0;" width="600"></iframe> </div> <div class="col-md-4"> <h4>Victoria <br /> (250) 590-0752</h4> <p>Mon to Sat  10 AM - 6 PM<br /> Sundays  12 PM - 4 PM</p> <iframe frameborder="0" height="300" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2647.3373059102914!2d-123.36989692348237!3d48.43086567127743!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x548f7483a233fd57%3A0x6d7662a15da2f693!2s1824%20Government%20St%2C%20Victoria%2C%20BC%20V8T%204N5!5e0!3m2!1sen!2sca!4v1706393289791!5m2!1sen!2sca" style="border:0;" width="600"></iframe> </div> </div> </div> <div style="text-align: center;"> <form method="POST" action="https://tapestrymusic.activehosted.com/proc.php" id="_form_14_" class="_form _form_14 _inline-form _inline-style _dark" data-styles-version="5"> <input type="hidden" name="u" value="14" /> <input type="hidden" name="f" value="14" /> <input type="hidden" name="s" /> <input type="hidden" name="c" value="0" /> <input type="hidden" name="m" value="0" /> <input type="hidden" name="act" value="sub" /> <input type="hidden" name="v" value="2" /> <input type="hidden" name="or" value="f7b909eea844a441aeced8dc22234aac" /> <div class="_form-content"> <div class="_form_element _x88839845 _inline-style _clear"> <div class="_html-code"> <p class="h4"> Sign up for our newsletter to get insider deals and new product information. </p> </div> </div> <div class="row"> <div class="col-md-3"> </div> <div class="col-md-6"> <div class="_form_element _x93203614 _inline-style"> <div class="_field-wrapper"> <input class="form-control" type="text" id="fullname" name="fullname" placeholder="Type your name" /> </div> </div> <div class="_form_element _x01792967 _inline-style"> <div class="_field-wrapper"> <input class="form-control" type="text" id="email" name="email" placeholder="Type your email" /> </div> </div> </div> <div class="col-md-3"> </div> </div> <div class="_form_element _x79912005 _inline-style center-block" style="width:300px;"> <label for="ls" class="_form-label"> Please verify your request* </label> <div class="g-recaptcha" data-sitekey="6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go"> </div> </div> <div class="_button-wrapper _inline-style"> <button class="btn btn-default" id="_form_14_submit" type="submit"> Submit </button> </div> <div class="_clear-element"> </div> </div> <div class="_form-thank-you" style="display:none;"> </div> </form> </div> <script type="text/javascript"> window.cfields = []; window._show_thank_you = function(id, message, trackcmp_url, email) { var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); form.querySelector('._form-content').style.display = 'none'; thank_you.innerHTML = message; thank_you.style.display = 'block'; const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; var visitorObject = window[vgoAlias]; if (email && typeof visitorObject !== 'undefined') { visitorObject('setEmail', email); visitorObject('update'); } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { // Site tracking URL to use after inline form submission. _load_script(trackcmp_url); } if (typeof window._form_callback !== 'undefined') window._form_callback(id); }; window._show_unsubscribe = function(id, message, trackcmp_url, email) { var form = document.getElementById('_form_' + id + '_'), unsub = form.querySelector('._form-thank-you'); var branding = form.querySelector('._form-branding'); if (branding) { branding.style.display = 'none'; } form.querySelector('._form-content').style.display = 'none'; unsub.style.display = 'block'; form.insertAdjacentHTML('afterend', message) const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; var visitorObject = window[vgoAlias]; if (email && typeof visitorObject !== 'undefined') { visitorObject('setEmail', email); visitorObject('update'); } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { // Site tracking URL to use after inline form submission. _load_script(trackcmp_url); } if (typeof window._form_callback !== 'undefined') window._form_callback(id); }; window._show_error = function(id, message, html) { var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error'); if (old_error) old_error.parentNode.removeChild(old_error); err.innerHTML = message; err.className = '_error-inner _form_error _no_arrow'; var wrapper = document.createElement('div'); wrapper.className = '_form-inner'; wrapper.appendChild(err); button.parentNode.insertBefore(wrapper, button); var submitButton = form.querySelector('[id^="_form"][id$="_submit"]'); submitButton.disabled = false; submitButton.classList.remove('processing'); if (html) { var div = document.createElement('div'); div.className = '_error-html'; div.innerHTML = html; err.appendChild(div); } }; window._show_pc_confirmation = function(id, header, detail, show, email) { var form = document.getElementById('_form_' + id + '_'), pc_confirmation = form.querySelector('._form-pc-confirmation'); var branding = form.querySelector('._form-branding'); if (branding) { branding.style.display = 'none'; } if (pc_confirmation.style.display === 'none') { form.querySelector('._form-content').style.display = 'none'; pc_confirmation.innerHTML = "<div class='_form-title'>" + header + "</div>" + "<br><p>" + detail + "</p>" + "<button class='_submit' id='hideButton'>Manage preferences</button>"; pc_confirmation.style.display = 'block'; } else { form.querySelector('._form-content').style.display = 'inline'; pc_confirmation.style.display = 'none'; } var hideButton = document.getElementById('hideButton'); // Add event listener to the button hideButton.addEventListener('click', function() { var submitButton = document.querySelector('#_form_14_submit'); submitButton.disabled = false; submitButton.classList.remove('processing'); window.location.href = window.location.href; }); const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; var visitorObject = window[vgoAlias]; if (email && typeof visitorObject !== 'undefined') { visitorObject('setEmail', email); visitorObject('update'); } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { // Site tracking URL to use after inline form submission. _load_script(trackcmp_url); } if (typeof window._form_callback !== 'undefined') window._form_callback(id); }; window._load_script = function(url, callback, isSubmit) { var head = document.querySelector('head'), script = document.createElement('script'), r = false; var submitButton = document.querySelector('#_form_14_submit'); script.charset = 'utf-8'; script.src = url; if (callback) { script.onload = script.onreadystatechange = function() { if (!r && (!this.readyState || this.readyState == 'complete')) { r = true; callback(); } }; } script.onerror = function() { if (isSubmit) { if (script.src.length > 10000) { _show_error("14", "Sorry, your submission failed. Please shorten your responses and try again."); } else { _show_error("14", "Sorry, your submission failed. Please try again."); } submitButton.disabled = false; submitButton.classList.remove('processing'); } } head.appendChild(script); }; (function() { if (window.location.search.search("excludeform") !== -1) return false; var getCookie = function(name) { var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); return match ? match[2] : null; } var setCookie = function(name, value) { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000 * 60 * 60 * 24 * 365; now.setTime(expireTime); document.cookie = name + '=' + value + '; expires=' + now + ';path=/; Secure; SameSite=Lax;'; } var addEvent = function(element, event, func) { if (element.addEventListener) { element.addEventListener(event, func); } else { var oldFunc = element['on' + event]; element['on' + event] = function() { oldFunc.apply(this, arguments); func.apply(this, arguments); }; } } var _removed = false; var form_to_submit = document.getElementById('_form_14_'); var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; var getUrlParam = function(name) { if (name.toLowerCase() !== 'email') { var params = new URLSearchParams(window.location.search); return params.get(name) || false; } // email is a special case because a plus is valid in the email address var qString = window.location.search; if (!qString) { return false; } var parameters = qString.substr(1).split('&'); for (var i = 0; i < parameters.length; i++) { var parameter = parameters[i].split('='); if (parameter[0].toLowerCase() === 'email') { return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]); } } return false; }; var acctDateFormat = "%m/%d/%Y"; var getNormalizedDate = function(date, acctFormat) { var decodedDate = decodeURIComponent(date); if (acctFormat && acctFormat.match(/(%d|%e).*%m/gi) !== null) { return decodedDate.replace(/(\d{2}).*(\d{2}).*(\d{4})/g, '$3-$2-$1'); } else if (Date.parse(decodedDate)) { var dateObj = new Date(decodedDate); var year = dateObj.getFullYear(); var month = dateObj.getMonth() + 1; var day = dateObj.getDate(); return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`; } return false; }; var getNormalizedTime = function(time) { var hour, minutes; var decodedTime = decodeURIComponent(time); var timeParts = Array.from(decodedTime.matchAll(/(\d{1,2}):(\d{1,2})\W*([AaPp][Mm])?/gm))[0]; if (timeParts[3]) { // 12 hour format var isPM = timeParts[3].toLowerCase() === 'pm'; if (isPM) { hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`; } else { hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1]; } } else { // 24 hour format hour = timeParts[1]; } var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour; var minutes = timeParts[2]; return `${normalizedHour}:${minutes}`; }; for (var i = 0; i < allInputs.length; i++) { var regexStr = "field\\[(\\d+)\\]"; var results = new RegExp(regexStr).exec(allInputs[i].name); if (results != undefined) { allInputs[i].dataset.name = allInputs[i].name.match(/\[time\]$/) ? `${window.cfields[results[1]]}_time` : window.cfields[results[1]]; } else { allInputs[i].dataset.name = allInputs[i].name; } var fieldVal = getUrlParam(allInputs[i].dataset.name); if (fieldVal) { if (allInputs[i].dataset.autofill === "false") { continue; } if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { if (allInputs[i].value == fieldVal) { allInputs[i].checked = true; } } else if (allInputs[i].type == "date") { allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat); } else if (allInputs[i].type == "time") { allInputs[i].value = getNormalizedTime(fieldVal); } else { allInputs[i].value = fieldVal; } } } var remove_tooltips = function() { for (var i = 0; i < tooltips.length; i++) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); } tooltips = []; }; var remove_tooltip = function(elem) { for (var i = 0; i < tooltips.length; i++) { if (tooltips[i].elem === elem) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); tooltips.splice(i, 1); return; } } }; var create_tooltip = function(elem, text) { var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {}; if (elem.type != 'radio' && elem.type != 'checkbox') { tooltip.className = '_error'; arrow.className = '_error-arrow'; inner.className = '_error-inner'; inner.innerHTML = text; tooltip.appendChild(arrow); tooltip.appendChild(inner); elem.parentNode.appendChild(tooltip); } else { tooltip.className = '_error-inner _no_arrow'; tooltip.innerHTML = text; elem.parentNode.insertBefore(tooltip, elem); new_tooltip.no_arrow = true; } new_tooltip.tip = tooltip; new_tooltip.elem = elem; tooltips.push(new_tooltip); return new_tooltip; }; var resize_tooltip = function(tooltip) { var rect = tooltip.elem.getBoundingClientRect(); var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); if (scrollPosition < 40) { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; } else { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; } }; var resize_tooltips = function() { if (_removed) return; for (var i = 0; i < tooltips.length; i++) { if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); } }; var validate_field = function(elem, remove) { var tooltip = null, value = elem.value, no_error = true; remove ? remove_tooltip(elem) : false; if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); if (elem.getAttribute('required') !== null) { if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { var elems = form_to_submit.elements[elem.name]; if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { no_error = elem.checked; } else { no_error = false; for (var i = 0; i < elems.length; i++) { if (elems[i].checked) no_error = true; } } if (!no_error) { tooltip = create_tooltip(elem, "Please select an option."); } } else if (elem.type =='checkbox') { var elems = form_to_submit.elements[elem.name], found = false, err = []; no_error = true; for (var i = 0; i < elems.length; i++) { if (elems[i].getAttribute('required') === null) continue; if (!found && elems[i] !== elem) return true; found = true; elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); if (!elems[i].checked) { no_error = false; elems[i].className = elems[i].className + ' _has_error'; err.push("Checking %s is required".replace("%s", elems[i].value)); } } if (!no_error) { tooltip = create_tooltip(elem, err.join('<br/>')); } } else if (elem.tagName == 'SELECT') { var selected = true; if (elem.multiple) { selected = false; for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected) { selected = true; break; } } } else { for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected && (!elem.options[i].value || (elem.options[i].value.match(/\n/g))) ) { selected = false; } } } if (!selected) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Please select an option."); } } else if (value === undefined || value === null || value === '') { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "This field is required."); } } if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) { if (elem.className.includes('phone-input-error')) { elem.className = elem.className + ' _has_error'; no_error = false; } } if (no_error && elem.name == 'email') { if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid email address."); } } if (no_error && /date_field/.test(elem.className)) { if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid date."); } } tooltip ? resize_tooltip(tooltip) : false; return no_error; }; var needs_validate = function(el) { if(el.getAttribute('required') !== null){ return true } if(el.name === 'email' && el.value !== ""){ return true } if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){ return true } return false }; var validate_form = function(e) { var err = form_to_submit.querySelector('._form_error'), no_error = true; if (!submitted) { submitted = true; for (var i = 0, len = allInputs.length; i < len; i++) { var input = allInputs[i]; if (needs_validate(input)) { if (input.type == 'tel') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); } if (input.type == 'text' || input.type == 'number' || input.type == 'time') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); addEvent(input, 'input', function() { validate_field(this, true); }); } else if (input.type == 'radio' || input.type == 'checkbox') { (function(el) { var radios = form_to_submit.elements[el.name]; for (var i = 0; i < radios.length; i++) { addEvent(radios[i], 'click', function() { validate_field(el, true); }); } })(input); } else if (input.tagName == 'SELECT') { addEvent(input, 'change', function() { validate_field(this, true); }); } else if (input.type == 'textarea'){ addEvent(input, 'input', function() { validate_field(this, true); }); } } } } remove_tooltips(); for (var i = 0, len = allInputs.length; i < len; i++) { var elem = allInputs[i]; if (needs_validate(elem)) { if (elem.tagName.toLowerCase() !== "select") { elem.value = elem.value.trim(); } validate_field(elem) ? true : no_error = false; } } if (!no_error && e) { e.preventDefault(); } resize_tooltips(); return no_error; }; addEvent(window, 'resize', resize_tooltips); addEvent(window, 'scroll', resize_tooltips); var hidePhoneInputError = function(inputId) { var errorMessage = document.getElementById("error-msg-" + inputId); var input = document.getElementById(inputId); errorMessage.classList.remove("phone-error"); errorMessage.classList.add("phone-error-hidden"); input.classList.remove("phone-input-error"); }; var initializePhoneInput = function(input, defaultCountry) { return window.intlTelInput(input, { utilsScript: "https://unpkg.com/intl-tel-input@17.0.18/build/js/utils.js", autoHideDialCode: false, separateDialCode: true, initialCountry: defaultCountry, preferredCountries: [] }); } var setPhoneInputEventListeners = function(inputId, input, iti) { input.addEventListener('blur', function() { var errorMessage = document.getElementById("error-msg-" + inputId); if (input.value.trim()) { if (iti.isValidNumber()) { iti.setNumber(iti.getNumber()); if (errorMessage.classList.contains("phone-error")){ hidePhoneInputError(inputId); } } else { showPhoneInputError(inputId) } } else { if (errorMessage.classList.contains("phone-error")){ hidePhoneInputError(inputId); } } }); input.addEventListener("countrychange", function() { iti.setNumber(''); }); input.addEventListener("keydown", function(e) { var charCode = (e.which) ? e.which : e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 8) { e.preventDefault(); } }); }; var showPhoneInputError = function(inputId) { var errorMessage = document.getElementById("error-msg-" + inputId); var input = document.getElementById(inputId); errorMessage.classList.add("phone-error"); errorMessage.classList.remove("phone-error-hidden"); input.classList.add("phone-input-error"); }; window['recaptcha_callback'] = function() { // Get all recaptchas in the DOM (there may be more than one form on the page). var recaptchas = document.getElementsByClassName("g-recaptcha"); for (var i in recaptchas) { // Set the recaptcha element ID, so the recaptcha can be applied to each element. var recaptcha_id = "recaptcha_" + i; recaptchas[i].id = recaptcha_id; var el = document.getElementById(recaptcha_id); if (el != null) { var sitekey = el.getAttribute("data-sitekey"); var stoken = el.getAttribute("data-stoken"); grecaptcha.render(recaptcha_id, {"sitekey":sitekey,"stoken":stoken}); } } }; //_load_script("https://www.google.com/recaptcha/api.js?onload=recaptcha_callback&render=explicit"); var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")}; const formSupportsPost = false; var form_submit = function(e) { e.preventDefault(); if (validate_form()) { // use this trick to get the submit button & disable it using plain javascript var submitButton = e.target.querySelector('#_form_14_submit'); submitButton.disabled = true; submitButton.classList.add('processing'); var serialized = _form_serialize( document.getElementById('_form_14_') ).replace(/%0A/g, '\\n'); var err = form_to_submit.querySelector('._form_error'); err ? err.parentNode.removeChild(err) : false; async function submitForm() { var formData = new FormData(); const searchParams = new URLSearchParams(serialized); searchParams.forEach((value, key) => { if (key !== 'hideButton') { formData.append(key, value); } //formData.append(key, value); }); let request = { headers: { "Accept": "application/json" }, body: formData, method: "POST" }; let pageUrlParams = new URLSearchParams(window.location.search); if (pageUrlParams.has('t')) { request.headers.Authorization = 'Bearer ' + pageUrlParams.get('t'); } const response = await fetch('https://tapestrymusic.activehosted.com/proc.php?jsonp=true', request); return response.json(); } if (formSupportsPost) { submitForm().then((data) => { eval(data.js); }); } else { _load_script('https://tapestrymusic.activehosted.com/proc.php?' + serialized + '&jsonp=true', null, true); } } return false; }; addEvent(form_to_submit, 'submit', form_submit); })(); </script> <div class="clearfix"></div> </div> </div> </div> <footer> <section class="footer-wrapper" id="footer"> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="content-wrapper"> <div class="social-wrapper"> <p class="footer-desc footer-fonts-style display-4">Social</p> <div class="social-wrap"> <div class="soc-item"><a href="https://www.facebook.com/tapestrymusicstore" target="_blank"><em class="footer-iconfont socicon-facebook socicon fab fa-facebook-f"></em> </a></div> <div class="soc-item"><a href="https://www.instagram.com/tapestrymusicstore" target="_blank"><em class="footer-iconfont socicon-twitter socicon fa-brands fab fa-instagram"></em> </a></div> <div class="soc-item"><a href="https://x.com/tapestrymusic" target="_blank"><em class="footer-iconfont socicon-twitter socicon fa-brands fab fa-x-twitter"></em> </a></div> <div class="soc-item"><a href="https://www.youtube.com/@tapestrymusicshop" target="_blank"><em class="footer-iconfont socicon-youtube socicon fa-brands fab fa-youtube"></em> </a></div> </div> </div> </div> </div> <div class="col-md-12"> <div class="border-wrap"> </div> </div> </div> <div class="row items-wrapper"> <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 card"> <div class="text-wrapper"> <p class="footer-logo footer-fonts-style display-4"><a href="/"><img alt="Tapestry Music" class="img-responsive logo-main-image" src="https://cdn.tapestrymusic.com/logos/tapestry-logo-light-transparent.svg" style="max-width: 248px; padding: 0.5rem 0;" /></a></p> <p class="footer-desc footer-fonts-style display-4"><strong>Tapestry Music</strong></p> <p class="footer-text footer-fonts-style display-4"><strong><a href="tel:1-888-347-7480">Online Orders:</a></strong><a href="tel:1-888-347-7480"> 1-</a><a href="tel:1-888-347-7480">(888) 347-7480</a></p> <p class="footer-text footer-fonts-style display-4"><a href="tel:1-604-538-0906"><strong>White Rock: </strong>(604) 538-0906</a></p> <p class="footer-text footer-fonts-style display-4"><a href="tel:1-604-736-3036"><strong>Vancouver: </strong>(604) 736-3036</a></p> <p class="footer-text footer-fonts-style display-4"><a href="tel:1-250-590-0752"><strong>Victoria: </strong>(250) 590-0752</a></p> <p class="footer-text footer-fonts-style display-4">Tapestry Music empowers every musical journey with a deep commitment to community, expertise, and passion. We foster growth and connection through personalized service, comprehensive education, and a shared love for music, ensuring that every musician feels supported, inspired, and equipped to pursue their musical dreams.</p> <div class="footer-section-btn"><a class="btn btn-primary-outline display-4" href="/t-contact.aspx">Contact Us</a></div> </div> </div> <div class="col-xs-12 col-sm-4 col-md-2 col-lg-2 card"> <div class="list-wrapper"> <p class="footer-desc footer-fonts-style display-4">Customer Service</p> <ul class="list footer-fonts-style display-4"> <li class="item-wrap"><a href="/t-contact.aspx" rel="nofollow">Contact Us</a></li> <li class="item-wrap"><a href="/account.aspx#OrderHistory" rel="nofollow">Order Tracking</a></li> <li class="item-wrap"><a data-toggle="modal" href="#miniwish-modal" rel="nofollow">Wishlist</a></li> <li class="item-wrap"><a href="/account.aspx" rel="nofollow">Your Account</a></li> <li class="item-wrap"><a href="/account.aspx#OrderHistory" rel="nofollow">Orders</a></li> <li class="item-wrap"><a href="/aepostpayment.aspx" rel="nofollow">Make an Account Payment</a></li> <li class="item-wrap"><a href="/aemanagecc" rel="nofollow">Manage Credit Cards</a></li> <li class="item-wrap"><a href="http://www.tapestrymusic.com/t-25-point-instrument-inspection.aspx">25 Point Instrument Inspection</a></li> </ul> </div> </div> <div class="col-xs-12 col-sm-4 col-md-2 col-lg-2 card"> <div class="list-wrapper"> <p class="footer-desc footer-fonts-style display-4">Store Policies & Info</p> <ul class="list footer-fonts-style display-4"> <li class="item-wrap"><a href="/t-shipping-policy.aspx" rel="nofollow">Shipping</a></li> <li class="item-wrap"><a href="/t-refund-policy.aspx" rel="nofollow">Returns</a></li> <li class="item-wrap"><a href="/t-privacy.aspx" rel="nofollow">Privacy Policy</a></li> <li class="item-wrap"><a href="/t-termsconditions.aspx" rel="nofollow">Terms</a></li> <li class="item-wrap"><a href="https://www.tapestrymusic.com/images/document/2025RentalTermsandConditions.pdf" rel="nofollow" target="_blank">Rental Agreement Terms & Conditions</a></li> <li class="item-wrap"><a href="https://www.tapestrymusic.com/images/document/2025TapestryMusictermsandConditionsMandarin.pdf" rel="nofollow"> </a><a href="https://www.tapestrymusic.com/images/document/2025TapestryMusictermsandConditionsMandarin.pdf">Rental Agreement Terms & Conditions (Mandarin)</a></li> <li class="item-wrap"><a href="https://www.tapestrymusic.com/t-financing.aspx">Affirm Financing</a></li> <li class="item-wrap"><a href="https://www.tapestrymusic.com/t-promotion-exclusions.aspx">Promotion Exclusions</a></li> <li class="item-wrap"><a href="/t-dataretentionpolicy.aspx" rel="nofollow">Data Retention</a></li> </ul> </div> </div> <div class="col-xs-12 col-sm-4 col-md-2 col-lg-2 card"> <div class="list-wrapper"> <p class="footer-desc footer-fonts-style display-4">Helpful Links</p> <ul class="list footer-fonts-style display-4"> <li class="item-wrap"><a class="text-info" href="/c-422-deals-clearance.aspx">Deals & Clearance</a></li> <li class="item-wrap"><a class="text-info" href="/c-124-accessories.aspx">Guitars, Amps & Accessories</a></li> <li class="item-wrap"><a href="https://www.tapestrymusic.com/c-539-ukuleles-accessories.aspx" target="_self">Ukuleles & Accessories</a></li> <li class="item-wrap"><a class="text-info" href="https://www.tapestrymusic.com/c-125-folk-instruments.aspx" target="_self">Folk Instruments</a></li> <li class="item-wrap"><a class="text-info" href="/c-127-pro-audio.aspx">Pro Audio & Recording</a></li> <li class="item-wrap"><a class="text-info" href="/c-122-brass.aspx">Brass</a></li> <li class="item-wrap"><a class="text-info" href="/c-121-woodwinds.aspx">Woodwinds</a></li> <li class="item-wrap"><a class="text-info" href="/c-196-classroom-and-kids.aspx">Classroom & Kids</a></li> <li class="item-wrap"><a class="text-info" href="/c-128-drums-percussion.aspx">Drums & Percussion</a></li> <li class="item-wrap"><a class="text-info" href="/c-129-general-accessories.aspx">General Accessories</a></li> <li class="item-wrap"><a class="text-info" href="/c-130-print-music-digital-downloads.aspx">Print Music & Digital Downloads</a></li> <li class="item-wrap"><a class="text-info" href="/e-manufacturerlist.aspx">Brands</a></li> <li class="item-wrap"><a class="text-info" href="/news.aspx">News</a></li> <li class="item-wrap"><a class="text-info" href="/t-reviews.aspx">Reviews</a></li> </ul> </div> </div> <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 card"> <div class="list-wrapper"> <p class="footer-desc footer-fonts-style display-4">Simple & Secure Experience</p> <p class="footer-desc footer-fonts-style display-4">Payment Methods</p> <ul class="list footer-fonts-style display-4"> <li><div class="payment-methods-wrap"> <div class="cards-accepted"><span id="payment-method-imagespp" class="cardname paypal"></span><span id="payment-method-imagesaf" class="cardname affirm"></span><span id="payment-method-images5" class=" cardname americanexpress"></span><span id="payment-method-images2" class=" cardname mastercard"></span><span id="payment-method-images1" class=" cardname visa"></span></div> </div></li> </ul> <p> </p> <p class="footer-desc footer-fonts-style display-4">Secure Checkout</p> <ul class="list footer-fonts-style display-4"> <li> <div style="text-align:center;"><em aria-hidden="true" class="fa fa-shield" style="font-size:32px;vertical-align:top;"></em> <span style="vertical-align: middle; font-size: 18px;">Secured with SSL</span></div> </li> </ul> <p> </p> <p class="footer-desc footer-fonts-style display-4">Trusted & Approved</p> <ul class="list footer-fonts-style display-4"> <li> <div id="y-badges" class="yotpo yotpo-badge badge-init"> </div> </li> </ul> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div class="border-wrap"> </div> </div> <div class="col-xs-8 col-sm-10 col-md-10"> <p class="footer-copy footer-fonts-style display-4"> </p> © Tapestry Music 2026. All Rights Reserved.     <p> </p> </div> <div class="col-xs-4 col-sm-2 col-md-2"> <p class="footer-copy footer-fonts-style text-right display-4"><a class="text-blue" href="/sitemap.aspx">Site Map</a></p> </div> </div> </div> </section> </footer> <!-- Minicart modal --> <div class="minicart-wrap"> <div id="minicart-modal" class="modal minicart-modal" data-keyboard="true" tabindex="-1"> <div class="modal-dialog" role="region" aria-label="modal dialog"> <div class="modal-content"> <div class="modal-header"> <a href="#" class="switch-mini-link js-switch-to-miniwish off"> <span aria-hidden="true"> <i class="fa fa-angle-left"></i> </span> View wishlist </a> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true"> <i class="fa fa-times-circle-o"></i> </span> </button> <h2 class="minicart-title modal-title"> Shopping Cart: <span class="minicart-title-count js-cart-title-count">0</span> <span class="minicart-items-label js-cart-count-label"> Items </span> </h2> </div> <div class="modal-body"> <div class="minicart-content-wrap"> <div class="minicart-message-area js-minicart-message-area"> </div> <div class="minicart-contents js-minicart-contents"> <div class="empty-mini-cart-text"> Your shopping cart is currently empty. </div> </div> </div> </div> <div class="modal-footer minicart-footer"> <div class="row"> <div class="col-sm-6 text-left-sm"> <div class="minicart-discount off"> Discounts: <span class="minicart-discount js-minicart-discount"></span> </div> <div class="minicart-total-area"> <div class="minicart-total-wrap"> Total: <span class="minicart-total js-minicart-total">$0.00 (CAD)</span> </div> </div> </div> <div class="col-sm-6"> <div class=""> <button type="button" id="minicart-close-button" class="btn btn-default close-minicart-button">Close</button> <button type="button" id="minicart-checkout-button" class="btn btn-primary minicart-checkout-button" data-return-url="/p-7756-all-for-strings-theory-book-1-violin.aspx">Checkout</button> </div> </div> </div> </div> </div> </div> </div> </div> <!-- Miniwish modal --> <div class="minicart-wrap"> <div id="miniwish-modal" class="modal minicart-modal" data-keyboard="true" tabindex="-1"> <div class="modal-dialog" role="region" aria-label="modal dialog"> <div class="modal-content"> <div class="modal-header"> <a href="#" class="switch-mini-link js-switch-to-minicart off"> <span aria-hidden="true"> <i class="fa fa-angle-left"></i> </span> View cart </a> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true"> <i class="fa fa-times-circle-o"></i> </span> </button> <h2 class="minicart-title modal-title"> Your Wishlist: <span class="minicart-title-count js-wish-title-count">0</span> <span class="minicart-items-label js-wish-count-label"> Items </span> </h2> </div> <div class="modal-body"> <div class="minicart-content-wrap"> <div class="minicart-message-area js-miniwish-message-area"> </div> <div class="minicart-contents js-miniwish-contents"> <div class="empty-mini-cart-text"> Your wish list is currently empty. </div> </div> </div> </div> <div class="modal-footer minicart-footer"> <div class="row"> <div class="col-sm-6 text-left-sm"> <div class="minicart-total-area"> <div class="minicart-total-wrap"> Total: <span class="minicart-total js-miniwish-total">$0.00 (CAD)</span> </div> </div> </div> <div class="col-sm-6"> <button type="button" id="miniwish-close-button" class="btn btn-default close-miniwish-button">Close</button> <button type="submit" data-url="/minicart/movealltocart" id="miniwish-move-all-to-cart" class="btn btn-primary minicart-checkout-button js-wishlist-button off"> Move all to Cart </button> </div> </div> </div> </div> </div> </div> </div> <!-- Minicart and miniwish resources (javascript and overlay html) --> <div class="minicart-loading-overlay js-minicart-loading-overlay off"> <div class="minicart-overlay"></div> <div class="minicart-loading"> <div class="minicart-loading-message js-minicart-loading-message">Loading...</div> <div class="loading-animation loading-style-dark"></div> </div> </div> <script src="/scripts/_skin_bundle_2a59354f3da09b60835d68828d972922?v=kdf-7QzJ_71lvhQgUumLmvqe9ch32Wnp3Kyzz7tJ5GI1"></script> <script type="text/javascript"> adnsf$.minicart.initialize( { minicart_DeleteWaitMessage: "Deleting...", miniwish_MoveSingleMessage: "Moving item to cart.", miniwish_MoveAllMessage: "Moving all items to cart.", minicart_UpdateFailureMessage: "Sorry, there was an error updating your cart.", miniwish_UpdateFailureMessage: "Sorry, there was an error updating your wishlist.", minicart_CountLabel: "Items", minicart_CountLabelSingular: "Item", checkoutUrl: "/shoppingcart.aspx", loginUrl: "/signin.aspx" }); adnsf$.minicart.cartEnabled = true; adnsf$.minicart.wishEnabled = true; adnsf$.minicart.onCheckoutPage = false; </script> <div class="live-chat-wrapper"> <div class="live-chat"> </div> </div> <div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="ShippingModal" id="ShippingModal"> <div class="modal-dialog modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true"> <em class="fas fa-times-circle"></em> </span> </button> <!--<h3 class="modal-title text-center">Shipping Costs, Free and Expedited</h3>--> </div> <div class="modal-body"> <div class="row"> <div class="col-md-12"> <style> @import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;600;700&display=swap'); </style> <div style="font-family: 'Barlow', sans-serif;"> <h2>TAPESTRY MUSIC SHIPPING POLICY</h2> <p><strong>FREE SHIPPING in Canada on orders over $149!</strong></p> <p>Ship-to address must match billing address. Need to ship elsewhere? <br /> <a href="mailto:info@tapestrymusic.com?subject=Shipping%20Question">Let us know</a><br /> <em>Consignment items are subject to special shipping rates.</em><br /> </p> <div style="border: 2px solid #d4a843; background-color: #fdf8ec; padding: 20px; margin: 25px 0; border-radius: 4px;"> <h3 style="margin-top: 0; color: #a07c2a;">⚠ OVERSIZED & HEAVY ITEMS</h3> <p style="margin-bottom: 0;">Items such as pianos, cellos, large amplifiers, keyboard stands, and drum kits may incur an additional freight charge. For a shipping quote, email <a href="mailto:info@tapestrymusic.com?subject=Oversized%20Item%20Shipping%20Quote">info@tapestrymusic.com</a> before placing your order.</p> </div> <h3>CANADIAN SHIPPING</h3> <table style="border-collapse: collapse; width: 100%; max-width: 400px; margin-bottom: 10px; font-family: 'Barlow', sans-serif;"> <thead> <tr> <th style="text-align: left; padding: 6px 12px; border-bottom: 2px solid #4a4d58;">Order Total</th> <th style="text-align: left; padding: 6px 12px; border-bottom: 2px solid #4a4d58;">Shipping</th> </tr> </thead> <tbody> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">Under $25</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$12.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$25 - $50</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$14.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$50 - $75</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$16.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$75 - $149</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$18.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">Over $149</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;"><strong>FREE</strong></td> </tr> </tbody> </table> <p style="font-size: 14px; color: #666;">Free shipping and our standard rates do not apply to Yukon, Northwest Territories, Nunavut, Newfoundland/Labrador or remote communities. Tapestry music will contact you if additional shipping rates apply to your order.<br /> <a href="mailto:info@tapestrymusic.com?subject=Shipping%20Question">Email us</a> for rates to these areas.<span style="font-family: Barlow, sans-serif; color: #000000;"><em><br /> </em></span></p> <h3>USA SHIPPING</h3> <table style="border-collapse: collapse; width: 100%; max-width: 400px; margin-bottom: 10px; font-family: 'Barlow', sans-serif;"> <thead> <tr> <th style="text-align: left; padding: 6px 12px; border-bottom: 2px solid #4a4d58;">Order Total</th> <th style="text-align: left; padding: 6px 12px; border-bottom: 2px solid #4a4d58;">Shipping</th> </tr> </thead> <tbody> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">Under $25</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$12.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$25 - $50</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$18.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$50 - $75</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$21.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$75 - $149</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$24.99</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">Over $149</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$29.99</td> </tr> </tbody> </table> <p style="font-size: 14px; color: #666;">Rates apply to the contiguous 48 states.</p> <h3>INTERNATIONAL SHIPPING</h3> <table style="border-collapse: collapse; width: 100%; max-width: 400px; margin-bottom: 10px; font-family: 'Barlow', sans-serif;"> <thead> <tr> <th style="text-align: left; padding: 6px 12px; border-bottom: 2px solid #4a4d58;">Order Total</th> <th style="text-align: left; padding: 6px 12px; border-bottom: 2px solid #4a4d58;">Shipping</th> </tr> </thead> <tbody> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">Under $25</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$49.00</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$25 - $50</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$79.00</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$50 - $75</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$99.00</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$75 - $149</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$149.00</td> </tr> <tr> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">Over $149</td> <td style="padding: 6px 12px; border-bottom: 1px solid #ddd;">$249.00</td> </tr> </tbody> </table> <p style="font-size: 14px; color: #666;">All orders shipped outside Canada are subject to customs and duty at the buyer's expense. Refused shipments will be refunded less all shipping costs incurred.</p> <p><span style="font-size: 14px;"><strong>Out-of-stock items: we'll contact you with an estimated wait time.</strong></span></p> </div> </div> <!-- <div class="col-md-12"><img src="/images/shipping.svg" alt="Shipping" class="img-responsive text-center center-block" width="128px" loading="lazy"></div> --> </div> </div> </div> </div> </div> <div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="AffirmModal" id="AffirmModal"> <div class="modal-dialog modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true"> <em class="fas fa-times-circle"></em> </span> </button> <h3 class="modal-title text-center">Play Now & Pay Later with Affirm!</h3> </div> <div class="modal-body"> <div class="row"> <div class="col-md-12"> <p style="text-align: center;"> <img alt="Affirm Financing" src="https://images.ctfassets.net/4rc1asww3mw7/26uTl302EqMKkCc23JeB2I/e99483f998dc10a539fef149b308b348/Homepage_Hero_Banner.jpg?w=1168&q=90&fm=avif" class="img-responsive center-block" style="max-width: 100%;" /> </p> <div class="text-center"> <p><strong><span style="font-size: 20px;">Flexible financing with Affirm is available at Tapestry Music</span></strong><br /> Pay over time with monthly or biweekly payment plans. Get an instant decision at checkout—no hidden fees, ever.</p> <br /> <p><strong><span style="font-size: 16px;">Buying with Affirm is easy!<br /> </span></strong><br /> <strong>Step 1 – Fill your cart</strong><br /> Shop online or in-store. Select Affirm at checkout and enter a few details for an instant decision.<br /> <br /> <strong>Step 2 – Choose how to pay<br /> </strong> Pick the payment option that works for you and your budget—from 4 interest-free payments every 2 weeks to monthly installments. Options depend on your purchase amount, and a down payment may be required.<br /> <br /> <strong>Step 3 – Make your payments<br /> </strong> Manage your payments in the Affirm app or online. Set up AutoPay so you never miss a payment. If you do, there are no late fees, ever.<br /> </p> <em>*Financing for out-of-stock items begins when the order is placed<br /> </em> <br /> <p>Learn more:<br /> <a href="https://www.affirm.com/en-ca/how-it-works" target="_blank">How Affirm works (Canada)</a><br /> <a href="https://businesshub.affirm.com/hc/article_attachments/9445858204436" target="_blank">Affirm Business Info Sheet</a></p> <p> </p> <p style="text-align: left;"><span style="font-size: 10px;"><span style="caret-color: #212121; font-family: Aptos; font-size: 10px; color: #212121;">Payment options through Affirm Canada Holdings Ltd. (“Affirm”). Your rate will be 0–31.99% APR (where available and subject to provincial regulatory limitations). APR offered is based on creditworthiness and subject to an eligibility check. Not all customers will be eligible for 0% APR. Payment options depend on your purchase amount, may vary by merchant, and may not be available in all provinces/territories. Actual payment option terms will be shown at checkout. A down payment (or a payment due today) may be required. Affirm accepts debit cards and PAD as forms of repayment on payment options. Select payment options may be eligible for repayment in the form of credit cards. Please review the terms and conditions of your credit card when using it as a form of repayment. Sample payment options may be: a $800 purchase could be split into 12 monthly payments of $72.21 at 15% APR, or 4 interest-free payments of $200 every 2 weeks. For more information, please see<span class="Apple-converted-space"> </span></span><a href="https://www.affirm.com/en-ca/how-it-works" class="ms-outlook-linkify" style="color: #0086f0; font-family: Aptos;">https://www.affirm.com/en-ca/how-it-works</a><span style="caret-color: #212121; font-family: Aptos; color: #212121;">.</span></span></p> </div> <!-- <p>Choose your parts and add them to the cart.</p> <p>When you are ready to checkout, select the Affirm option as your payment method. </p> <p><strong>Play now and pay over time.</strong></p> <h5>Flexible Payment Methods</h5> <ul> <li>Pay in 4 or Pay Monthly</li> <li>Extra time with no late fees</li> <li>No impact to your credit score</li> </ul> --> </div> <!-- <div class="col-md-12"><img src="/images/affirm.svg" alt="Affirm" class="img-responsive text-center center-block" width="128px" loading="lazy"></div> --> </div> </div> </div> </div> </div> <script type="text/javascript"> window.postalCodeRegexConfiguration = { postalCodeRegexMapUrl: "/country/postalcoderegexmap", }; </script> <script src="/scripts/_skin_bundle_b8715fbfc319d710da56b418d5cee1db?v=ZxD66Iob3gqKa-c2dSgQibi-lqw-eEROqwWOU36ooAw1"></script> <script type="text/javascript"> adnsf$.initializeAddToCartForms( { ajaxAddToCartUrl: "/minicart/ajaxaddtocart", ajaxAddKitToCartUrl: "/minicart/ajaxaddkittocart", addToCartMessage: "Adding to cart", addToWishMessage: "Adding to wishlist", invalidQuatityMessage: "Please enter a valid quantity", addToCartFailureMessage: "Your item was not added to the cart because of an error", addToWishFailureMessage: "Your item was not added to the wishlist because of an error", checkoutUrl: "/shoppingcart.aspx", loginUrl: "/signin.aspx" }); adnsf$.validator.unobtrusive.adapters.addSingleVal('min', 'val'); vortx.browser.detect(); if (vortx.browser.isIE) { vortx.browser.warnOfDeprecation( 'browser-detection-notice', 'It appears that your web browser is a bit old. For a more safe and modern experience, please change or upgrade your web browser.' ); } </script> <link rel="stylesheet" href="/skins/react-reboot/Css/footer.min.css?v=0.4" /> <script> (function () { var mmapiws = window.__mmapiws = window.__mmapiws || {}; mmapiws.accountId = '993362'; var loadDeviceJs = function () { var element = document.createElement('script'); element.async = true; element.src = 'https://device.maxmind.com/js/device.js'; document.body.appendChild(element); }; if (window.addEventListener) { window.addEventListener('load', loadDeviceJs, false); } else if (window.attachEvent) { window.attachEvent('onload', loadDeviceJs); } })(); </script> <!--Xmlpackage 'script.bodyclose' --> <script type="text/javascript"> var google_tag_params = { ecomm_prodid: '7756-26422--', ecomm_pagetype: 'product', ecomm_totalvalue: 0.00 }; </script> <!--End of xmlpackage 'script.bodyclose' --> <script> $(function (e) { let password = $('#Password'); if(password.length > 0) { password.css('display', 'inline-block'); password.after('<em class="fa fa-eye" id="togglePassword" style="z-index:999; position:relative; margin-left:-30px; margin-top:24px; cursor:pointer; display:inline-block;"></em>'); }; $('#togglePassword').click(function (e) { password.attr('type') === 'password' ? password.attr('type', 'text') : password.attr('type', 'password'); $(this).toggleClass('fa-eye-slash'); }); }); </script> <div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="PromoModal" id="PromoModal"> <div class="modal-dialog modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true"> <em class="fas fa-times-circle"></em> </span> </button> <h3 class="modal-title text-center">Save 15% Off Select Products!</h3> </div> <div class="modal-body"> <div class="row"> <div class="col-md-12"> <p>Save 15% on In-stock, Standard Priced products.</p> <p>Participating products display a 15% discount on the product page.</p> <p>Choose your items and add them to the cart.</p> <p>When you are ready to checkout, the discount will automatically apply.</p> <p>Discount does not apply to discounted items, used, and demo instruments.</p> </div> </div> </div> </div> </div> </div> <!-- Klevu template --> <script src="/skins/react-reboot/scripts/klevu-theme-breeze_essence.js"></script> <!--Xmlpackage 'promo-window' --> <script> (function(options) { $(function(){ if (Cookies.get('promoWindow') == 'visited') { return false; } else { setTimeout(function () { $('#promoWindow').fadeIn("fast"); }, options.windowDelay); $(".promoClose").on("click", function(){ $("#promoWindow").remove(); }); Cookies.set('promoWindow', 'visited', { expires: options.cookieExpires }); } }); }) ({ windowDelay: 3000, cookieExpires: 1 }); </script> <!--End of xmlpackage 'promo-window' --> <!-- body close scripts --> <!--Xmlpackage 'shareasale' --> <!--End of xmlpackage 'shareasale' --> </body> </html>