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' : '16757_55234', 'item_name' : 'Hercules DS440B TravLite Clarinet Stand', 'currency' : 'CAD', 'discount': 0.0000, 'index': 1, 'item_brand' : 'Hercules', 'item_category' : 'Woodwinds', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Stands', 'price' : 39.9900, 'quantity' : 1 } , { 'item_id' : '7647_26352', 'item_name' : 'Adult Piano Adventures All In One 1', 'currency' : 'CAD', 'discount': 0.0000, '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' : 'Faber Adult Piano Adventures', 'price' : 29.9500, 'quantity' : 1 } , { 'item_id' : '21599_47666', 'item_name' : 'Prelude J1013 1/8M Cello Single G String, 1/8 Scale, Medium Tension', 'currency' : 'CAD', 'discount': 0.0000, 'index': 3, 'item_brand' : 'Prelude', 'item_category' : 'Orchestral Strings', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'J1013 1/8M', 'price' : 25.9900, 'quantity' : 1 } , { 'item_id' : '18679_40347', 'item_name' : 'J. Meinlschmidt #5 Synthetic Tuning Slide Oil', 'currency' : 'CAD', 'discount': 0.0000, 'index': 4, 'item_brand' : 'J. Meinlschmidt', 'item_category' : 'Brass Instruments', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Lubricants', 'price' : 15.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_16757-55234" 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-15674"> <meta itemprop="productID" content="16757"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/16757.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="Hercules"></span><meta itemprop="name" content="Hercules DS440B TravLite Clarinet Stand"> <meta itemprop="description" content="The HERCULES TravLite Clarinet Stand DS440B of solid construction is sturdy, lightweight and folds compactly for storage inside the bell; velvet pads protect the bell of the instrument. <br><br> <li>The Lightweight Design is easy to set up and provides a strong, stable base for the instrument. <li>The Compact In-Bell Design allows stand to store safely in the bell of the instrument taking no space in the instrument case. <li>The Velvet Base Design protects the finish of the instrument. <li>Height: 170 mm (6.7") <li>Weight: 0.1 kg (0.2 lbs.) <li>Load Capacity: 3 kg (6.6 lbs.) <li>Base Radius: 115 mm (4.5") <li>Folded Size: Diameter 55 mm x Height 106 mm (2.2" x 4.2") <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>DS440B</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>Hercules</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-16757-hercules-ds440b-travlite-clarinet-stand.aspx"><a href="/p-16757-hercules-ds440b-travlite-clarinet-stand.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/16757.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Hercules DS440B TravLite Clarinet Stand" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Hercules DS440B TravLite Clarinet Stand</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_7647-26352" 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-5965"> <meta itemprop="productID" content="7647"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/7647.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="Adult Piano Adventures All In One 1"> <meta itemprop="description" content="<span style="FONT-WEIGHT: bold"><big>Features:</big></span><br /> <br /> Adult Piano Adventures enables the adult beginner to play music for pleasure while developing musical understanding. This comprehensive “All-In-One” book includes lessons, technique, and theory in a single volume for ease of use. Book 1 presents the fundamentals of music notation, chord playing, and musical form. The redesigned layout improves information hierarchy, putting focus on key concepts and step-by-step learning. Online support is now included, with over two hours of instructional videos and audio accompaniment tracks that inspire rhythmic vitality and artistic expression. Songs include: Amazing Grace • The Can-Can • Catch a Falling Star • Danny Boy • Eine Kleine Nachtmusik • The Entertainer • Greensleeves • The Lion Sleeps Tonight • and more! <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>HL00420242</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>Faber</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-7647-adult-piano-adventures-all-in-one-1.aspx"><a href="/p-7647-adult-piano-adventures-all-in-one-1.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/7647.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Adult Piano Adventures All In One 1" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Adult Piano Adventures All In One 1</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_21599-47666" 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-J1013 1/8M"> <meta itemprop="productID" content="21599"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/21599.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="Prelude"></span><meta itemprop="name" content="Prelude J1013 1/8M Cello Single G String, 1/8 Scale, Medium Tension"> <meta itemprop="description" content="<p>Scaled to fit 1/8 size cello with a playing length of 18 7/8 inches (480mm), these medium tension strings are optimized to the needs of a majority of players.</p><ul><li>APPEALING TONE: the best-sounding steel core string available</li><li>UNBEATABLE RELISIENCE: engineered for unparalleled longevity and durability</li><li>PROFESSIONAL PLAYABILITY: balanced tension for a comfortable feel</li><li>UNIVERSAL APPLICATION: classical, fiddle, jazz, and alternative styles</li><li>INDUSTRY STANDARD DESIGN: Prelude is the world's best-selling steel core string</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>J1013 1/8M</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>Prelude</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-21599-prelude-j1013-1-8m-cello-single-g-string-1-8-scale-medium-tension.aspx"><a href="/p-21599-prelude-j1013-1-8m-cello-single-g-string-1-8-scale-medium-tension.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/21599.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Prelude J1013 1/8M Cello Single G String, 1/8 Scale, Medium Tension" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Prelude J1013 1/8M Cello Single G String, 1/8 Scale, Medium Tension</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_18679-40347" 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-19157"> <meta itemprop="productID" content="18679"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/18679.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="J. Meinlschmidt"></span><meta itemprop="name" content="J. Meinlschmidt #5 Synthetic Tuning Slide Oil"> <meta itemprop="description" content="<HTML> A synthetic Slide oil that guarantees the tightness and smoothness of all slides, particularly pitch compensation slides. Also dampens vibrations and is suitable for worn out joints.<p></p><ul><li>For brass instruments • </li><li>Synthetic • </li><li>Protects against wear and corrosion • </li><li>Odorless – </li><li>non-clumping • </li><li>CO² / climate-neutral production • </li><li>Made in Germany</li></ul></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>JM005</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>J. Meinlschmidt</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-18679-j-meinlschmidt-5-synthetic-tuning-slide-oil.aspx"><a href="/p-18679-j-meinlschmidt-5-synthetic-tuning-slide-oil.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/18679.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="J. Meinlschmidt #5 Synthetic Tuning Slide Oil" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">J. Meinlschmidt #5 Synthetic Tuning Slide Oil</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>