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' : '18543_40075', 'item_name' : 'Modern School for Xylophone Marimba and Vibraphone', 'currency' : 'CAD', 'discount': 2.8900, 'index': 1, 'item_brand' : 'Alfred', 'item_category' : 'Print Music', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'Morris Goldenberg', 'price' : 28.9500, 'quantity' : 1 } , { 'item_id' : '21731_47798', 'item_name' : 'Prelude J912 SM Viola Single D String, Short Scale, Medium Tension', 'currency' : 'CAD', 'discount': 0.0000, 'index': 2, 'item_brand' : 'Prelude', 'item_category' : 'Orchestral Strings', 'item_list_id': 'related_products', 'item_list_name': 'all for strings theory book 1 violin', 'item_variant' : 'J912 SM', 'price' : 11.9900, 'quantity' : 1 } , { 'item_id' : '5286_33904', 'item_name' : 'Fender Mustang GTX50 Guitar Amplifier', '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' : 'Electric Guitar Guitar Combo Amp Modeling Amp', 'price' : 599.9900, 'quantity' : 1 } , { 'item_id' : '24746_51032', 'item_name' : 'Fender American Ultra Luxe Vintage 60s Stratocaster HSS - Fiesta Red', 'currency' : 'CAD', 'discount': 0.0000, 'index': 4, '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' : 'Red Solid Body S-Type', 'price' : 4089.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_18543-40075" itemprop="offers" itemscope="" itemtype="https://schema.org/Offer"><meta itemprop="price" content="26.0600"> <meta itemprop="priceCurrency" content="CAD"></span><link itemprop="itemCondition" href="https://schema.org/NewCondition"> <meta itemprop="sku" content="ae00-18897"> <meta itemprop="productID" content="18543"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/18543.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="Modern School for Xylophone Marimba and Vibraphone"> <meta itemprop="description" content="<span style="FONT-WEIGHT: bold"><big>Features:</big></span><br /> <br /> The "Goldenberg book" has been used by generations of orchestral mallet players to develop their skills. As well as studies and etudes, this book includes excerpts of major orchestral repertoire for keyboard percussion instruments. This edition, edited by Tony Cirone, includes phrasings that were inherent in the music but not specifically written out. Stickings are also addressed: the original stickings are in uppercase letters, and the added stickings are in lowercase. This book is the primary source for keyboard percussion players to learn technique and orchestral repertoire. <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>AL0505B</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>Morris Goldenberg</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-18543-modern-school-for-xylophone-marimba-and-vibraphone.aspx"><a href="/p-18543-modern-school-for-xylophone-marimba-and-vibraphone.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/18543.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Modern School for Xylophone Marimba and Vibraphone" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Modern School for Xylophone Marimba and Vibraphone</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_21731-47798" 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-J912 SM"> <meta itemprop="productID" content="21731"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/21731.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 J912 SM Viola Single D String, Short Scale, Medium Tension"> <meta itemprop="description" content="<p>Sized to fit short-scale viola (body length 14-15 inches) with a playing length of 13 inches (330mm), these medium tension strings are optimized to the needs of a majority of players. Packaged in uniquely-designed sealed pouches providing unparalleled protection from the elements that cause corrosion.</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>J912 SM</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-21731-prelude-j912-sm-viola-single-d-string-short-scale-medium-tension.aspx"><a href="/p-21731-prelude-j912-sm-viola-single-d-string-short-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/21731.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Prelude J912 SM Viola Single D String, Short 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 J912 SM Viola Single D String, Short Scale, Medium Tension</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_5286-33904" 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-2310600000"> <meta itemprop="productID" content="5286"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/5286.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 Mustang GTX50 Guitar Amplifier"> <meta itemprop="description" content="<p>Mustang GTX is a better, bolder guitar amp with an unprecedented feature set and unbeatable performance. A wide selection of accurate and versatile amp models, dozens of effects and 200 onboard presets give you the guitar tones you need for almost any type of music. Modular signal path flexibility lets you move effects anywhere in the chain, while the crisp full-color display lets you know what's going on under the hood. Connect with Bluetooth to experience Fender TONE (for iOS and Android), a free app that offers realistic look and feel while you spin the knobs of the most famous amps and effects of all time. You can do deep editing, preset browsing from the Fender Tone community, preset back-up and restore, and more. Bluetooth audio streaming is also included for playing along with your favorite tracks. The amp's WiFi capabilities (a Fender exclusive) let you connect for product updates, so your amp keeps getting better.</p> <p>Mustang GTX50 offers incredible bang for the buck. The all-new cabinet design is more gig-ready and durable; a new 12-inch Celestion speaker produces strong, powerful response; and the improved amp, speaker and cabinet models ensure that Mustang GTX sounds better than anything else in its class. Stereo XLR line outputs and stereo effects loop let you interface with PA, recording and outboard gear. There's also an optional seven-button footswitch available with individual bank up and down functions and easy effects selection, making GTX a true live performance amp. It also unlocks the amp's included 60-second looper.</p> <p><strong>Features</strong></p><ul><li>New models include: Fender classics like the Blues Jr and Vibro King, as well as other amplifers including JC Clean and Silver Jubilee</li><li>New effects include: Models of classic Overdrive, Fuzz, Delay and Pitch Shift effects</li><li>Newly-designed stage-ready cabinet and cosmetics</li><li>12-inch Celestion® guitar speaker</li><li>200 onboard user presets that can be modified for any style of music</li><li>Fender TONE for iOS and Android for deep editing, preset browsing from the Fender Tone community, preset back-up and restore, and more</li><li>Upgraded seven-button footswitch (optional) features individual bank up and down functions and easy effects selection, as well as a tap tempo and 60-second looper</li></ul> <p><strong>Specs</strong></p><b>Amplifier Type:</b> Digital<br><b>Inputs:</b> One 1/4"<br><b>Cabinet Material:</b> Wood Enclosure<br><b>Handle:</b> Molded Black Plastic Strap with Chrome-Plated Caps<br><b>Speakers:</b> One - 12" Celestion® G12P-80<br><b>Total Impedance:</b> 8 ohms<br><b>Footswitch:</b> GTX-7 Footswitch Not Included (PN 0994072000), EXP-1 Pedal Not Included (PN 2301050000)<br><b>Channels:</b> One<br><b>Effects Loop:</b> 1/4" Stereo - (Send/Return)<br> <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>2310600000</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-5286-fender-mustang-gtx50-guitar-amplifier.aspx"><a href="/p-5286-fender-mustang-gtx50-guitar-amplifier.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/5286.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Fender Mustang GTX50 Guitar Amplifier" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Fender Mustang GTX50 Guitar Amplifier</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_24746-51032" 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-118230840"> <meta itemprop="productID" content="24746"> <meta itemprop="image" content="https://cdn.tapestrymusic.com/product/large/24746.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 American Ultra Luxe Vintage 60s Stratocaster HSS - Fiesta Red"> <meta itemprop="description" content="<p>Representing the pinnacle of innovation and craftsmanship, Fender American Ultra Luxe sets the benchmark for premium electric instruments. The new American Ultra Luxe Vintage series takes it a step further, showcasing the finest of Fender heritage – where timeless classics meet uncompromising modern refinement.</p> <p>The American Ultra Luxe Vintage '60s Stratocaster® HSS features premium alder body with carved contours that complement the aged Heirloom™ nitrocellulose lacquer finish. Built for precision performance, the quartersawn maple neck with a Modern 'D' shape and Ultra rolled edges features medium jumbo stainless-steel frets, Luminlay® side dots, and a Graph Tech TUSQ® nut. Each instrument features a tapered neck heel to ensure unparalleled access to the higher register.</p> <p>Under the hood, Pure Vintage '61 Strat® single-coils deliver classic Fender tones, from sparkling cleans to rich, expressive leads while the Haymaker™ humbucker brings powerful, articulate crunch. Performance hardware includes a precision-engineered 2-Point American Ultra synchronized tremolo with polished stainless steel block saddles, cold rolled steel block, and deluxe locking tuners for quick string changes and superior tuning stability.</p> <p>The American Ultra Luxe Vintage 60s Stratocaster® HSS delivers flawless modern performance with distinctive classic design.</p> <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>0118230840</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-24746-fender-american-ultra-luxe-vintage-60s-stratocaster-hss-fiesta-red.aspx"><a href="/p-24746-fender-american-ultra-luxe-vintage-60s-stratocaster-hss-fiesta-red.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/24746.jpg?crop.type=trim&w=290&h=290&canvas.width=300&canvas.height=300&format=webp" alt="Fender American Ultra Luxe Vintage 60s Stratocaster HSS - Fiesta Red" class="grid-item-image img-responsive center-block related-item-image"></div> <div class="grid-item-name-wrap related-item-name-wrap">Fender American Ultra Luxe Vintage 60s Stratocaster HSS - Fiesta Red</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>