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' : '11210_18435', 'item_name' : 'GM 6" Frog Guiro', 'currency' : 'CAD', 'discount': 0.0000, 'index': 1, 'item_brand' : 'GrooveMasters', 'item_category' : 'Drums & Percussion', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Guiro', 'price' : 22.9500, 'quantity' : 1 } , { 'item_id' : '8104_12280', 'item_name' : 'Suzuki Piano School Volume 5 (Book & CD)', 'currency' : 'CAD', 'discount': 3.1900, 'index': 2, 'item_brand' : 'Alfred', 'item_category' : 'Print Music', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Various 5 Suzuki', 'price' : 31.9500, 'quantity' : 1 } , { 'item_id' : '10147_32134', 'item_name' : 'Fender Bridge Pin Set, Black with White Dot (7)', 'currency' : 'CAD', 'discount': 0.0000, 'index': 3, 'item_brand' : 'Fender', 'item_category' : 'Guitars, Amps & Accessories', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Acoustic Guitar Bridge Pins', 'price' : 5.9900, 'quantity' : 1 } , { 'item_id' : '10212_41545', 'item_name' : 'Godin 5th Avenue Nightclub Indigo Blue Guitar', 'currency' : 'CAD', 'discount': 0.0000, 'index': 4, 'item_brand' : 'Godin', 'item_category' : 'Guitars, Amps & Accessories', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Blue Hollow Body', 'price' : 1829.0000, '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_11210-18435" 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-9489"> <meta itemprop="productID" content="11210"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/11210.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="GrooveMasters"></span><meta itemprop="name" content="GM 6" Frog Guiro"> <meta itemprop="description" content="<br> <li>Hand carved wooden frog guiro made from monkey wood <li>Excellent sound, scrape the back and it produces a frog croaking sound <li>Used in Asian cultures, scrape the back as you leave the house for good luck <li>Popular in school music programs and as gifts for children and adults <li>Wood shades may vary with different variations of wood <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>FROG-S6</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>GrooveMasters</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-11210-gm-6-frog-guiro.aspx"><a href="/p-11210-gm-6-frog-guiro.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/11210.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="GM 6" Frog Guiro" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">GM 6" Frog Guiro</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_8104-12280" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"><meta itemprop="price" content="28.7600"> <meta itemprop="priceCurrency" content="CAD"></span><link itemprop="itemCondition" href="https://schema.org/NewCondition"> <meta itemprop="sku" content="ae00-6419"> <meta itemprop="productID" content="8104"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/8104.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="Alfred"></span><meta itemprop="name" content="Suzuki Piano School Volume 5 (Book & CD)"> <meta itemprop="description" content="<span style="FONT-WEIGHT: bold"><big>Features:</big></span><br /> <br /> The New International Edition of Suzuki Piano School, Volume 5, includes French, German and Spanish translations as well as a newly recorded CD performed by internationally renowned recording artist Seizo Azuma. Now the book and CD can be purchased together or separately. <br><br> The contents have changed to include Romantic pieces: Schumann's "About Foreign Lands and People" and Chopin's "Waltz in A Minor." Daquin's "The Cuckoo" has been moved here from Book 6. Schumann's "First Loss" and "Siciliana" as well as J. S. Bach's "Prelude in C" have been permanently removed <br><br> Titles: Für Elise, WoO 59 (Beethoven) * Old French Song, from the Album for the Young, Op. 39, No. 16 (Tchaikovsky) * Invention No. 1 in C Major, BWV 772, from 15 Two-Part Inventions (J. S. Bach) * Sonatina in F Major, Anh. 5, No. 2 (Beethoven) * About Foreign Lands and People, from Scenes from Childhood (Schumann) * Sonata in C Major (Allegro con brio; Adagio; Allegro), Hob. XVI/35 (Haydn) * Waltz in A Minor, Op. posthumous (Chopin) * The Cuckoo (Daquin). <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>AL32634</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Publisher:</span></td> <td>Alfred</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Composer:</span></td> <td>Various</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>5</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-8104-suzuki-piano-school-volume-5-book-cd.aspx"><a href="/p-8104-suzuki-piano-school-volume-5-book-cd.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/8104.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Suzuki Piano School Volume 5 (Book & CD)" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Suzuki Piano School Volume 5 (Book & CD)</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_10147-32134" 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="1150-990402006"> <meta itemprop="productID" content="10147"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/10147.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="Fender"></span><meta itemprop="name" content="Fender Bridge Pin Set, Black with White Dot (7)"> <meta itemprop="description" content="<p>Black and ivory Fender® bridge pins, with one extra pin and matching strap end pin. Fits most Fender acoustic guitars.<br></p> <p><strong>Features</strong></p><ul><li>Set of seven bridge pins</li><li>Includes extra bridge pin and matching strap end pin</li><li>For most Fender acoustic guitars</li><li>Available in ivory with black dots and black with white dots</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>0990402006</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>Fender</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-10147-fender-bridge-pin-set-black-with-white-dot-7.aspx"><a href="/p-10147-fender-bridge-pin-set-black-with-white-dot-7.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/10147.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Fender Bridge Pin Set, Black with White Dot (7)" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Fender Bridge Pin Set, Black with White Dot (7)</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_10212-41545" 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-8498"> <meta itemprop="productID" content="10212"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/10212.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="Godin"></span><meta itemprop="name" content="Godin 5th Avenue Nightclub Indigo Blue Guitar"> <meta itemprop="description" content="The Canadian made 5th Ave Nightclub can be described by one word: Classy. Adorned in a stunning Indigo Blue finish, this guitar is not only a treat to look at but has awesome playability and a rich tone that matches its beauty. No detail is spared with this model – from the all-high gloss body, the tortoise brown pick guard, and the vintage style volume and tone knobs. The single TV Jones Classic pickup is perfectly suited for Jazz and Blues and the inclusion of a Bigsby tremolo bridge lets you take this guitar to a variety of musical directions. <br> <iframe width="560" height="315" src="https://www.youtube.com/embed/QSM5CF0LjIs" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br> <big><strong>Specs</strong></big> <br> <b> <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>050956</td> </tr> <tr> <td><span style="FONT-WEIGHT: bold">Manufacturer:</span></td> <td>Godin</td> </tr> </tbody> </table>"> <meta itemprop="url" content="https://www.tapestrymusic.com/p-10212-godin-5th-avenue-nightclub-indigo-blue-guitar.aspx"><a href="/p-10212-godin-5th-avenue-nightclub-indigo-blue-guitar.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/10212.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Godin 5th Avenue Nightclub Indigo Blue Guitar" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Godin 5th Avenue Nightclub Indigo Blue Guitar</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": "4/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-brandexclusions.aspx">Brand 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 does not apply to Yukon, Northwest Territories, Nunavut, or remote communities.<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> <!-- ModeFlow Tracking --> <script src="https://api.tapestrymusic.com/js/external-tracking.js" data-tracking-id="tk_41fa32be360c4c8a907a8c857bbfda0c"></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>