Ebene Magazine – Sea Shanty TikTok is on fire

Ebene Magazine - Sea Shanty TikTok is on fire

Subscribe to

By now you may have noticed that TikTok users hit the drums, mess around, and add their surprisingly rich bass undertones to songs about sugar and rum. You may be wondering what exactly happened to the teenagers. But in a political moment marked by instability and insecurity, a social landscape where we long for personal and political community, and a meme economy that values ​​Dadaist absurdity as a price currency, it should come as no surprise to anyone that sea shanties are back. It might even make perfect sense.

On TikTok, users put on Shetland sweaters and buckle up a cappella sea songs from the 19th century with more than 74 million views. The app’s infrastructure, designed to encourage video collaboration, allows individual users to record echo-like solos, multiply their own voice in a choir, or join a shanty choir owned by strangers. There are intricate jokes about what your favorite shanty says about you, staged shanty raves and an excess of billowing white shirts.

The shanty has been around for a good decade. Assassin’s Creed IV: Black Flag, a 2013 pirate-era video game, allowed players to collect timed shanties that were later compiled into a popular soundtrack. In 2019, Dave Malloy directed a prestigious musical adaptation of Moby-Dick that turned shanty motifs into fine art. Yes, these reworks are cheesy and silly and will likely go away faster than the Pequod. But the shanty was fished out of history before, and we’re watching it happen again.

The best of movies, television, books, music and more will be delivered to your inbox three times a week.

Historically, the shanty exists to be revived. Even by the 1880s, shanties seemed out of date, false anachronisms sounding older than they were, even if some were quite old. Although the origins are difficult to pinpoint, scholars agree that shanties began as sailing songs to coordinate work rhythms, and today’s songbook is mostly from the 19th century. In practice, the songs are simple: a solo lead, the shantyman, sets the cadence and sings verses full of filler and nonsense; The crew responds with the chorus and coordinates their work to the rhythm of the song. But the musical simplicity belies its complicated history. Rhythms from the traditions of enslaved Africans mixed with English, Spanish, French. The shanty is a multilingual art that requires a sailor’s sophisticated knowledge of sailing, sea language and geography. (Quick – where is the Kamchatka Peninsula and how far is it from Maui?)

Up until about 10 years ago, shanty culture consisted of an old guard who did the rounds of maritime music festivals, with Pete Seeger and the Shanty titan Stan Rogers in the background and a younger crew of IRA-supporting, hard-drinking shanty fiends speed up the songs and tear the harmonies.

However, that started to change last July when Scottish tiktoker Nathan Evans one received strange request. He recalls, « Someone commented on ‘Leave Her Johnny’ under one of my videos. » Evans had never heard of the song before, but it is one of the most popular sailor songs, both on the festival track and on the Black Flag soundtrack. Evans had never sung or listened to shanties before, but he tried and recorded a video that has been viewed more than 1 million times since.

He followed up with a number of shanties including his rendition of « Wellerman, » a 19th century New Zealand shanty popularized by the Norfolk Broads and later by the Longest Johns. Evans beats the pace with his fist, superimposes his voice into a chorus and tells a tragic story about whaling. It’s the song you’ve been repeating all week, and it became the catalyst for the enormous phenomenon now known as SeaShantyTok. People mix the song again, layer it with more and more bass and dance to it. Twitter finds it confusing, but fun and irresistible.

This TikTok shanty trend is similar and completely different from previous shanty revivals. Like its predecessors, the TikTok revival looks backwards. The songs, styles, arrangements – everything is covered with the wind-blown paint of the past.

But the TikTok phenomenon is also unique. It’s dizzyingly popular to start with. Evans attributes this to the fact that « shanties bring everyone together ». They are democratic and « healthy » despite their insolence. In a historical context, the TikTok shanty trend throws off the conservational ethos of past revivals. There are no shanties that can be collected on TikTok. Instead, they invite you to participate. They don’t keep it in amber. You jump in.

On a technical level, shanties seem perfectly prepared for TikTok. They’re a call and response genre in a call and response app. The songs and melodies are simple. Evans says « you don’t have to be able to sing to be a shanty » (though he really can – his five-track shanty EP drops next week). Instruments are strictly optional and are usually limited to a drum or violin when used. Mixing up a shanty collaboration, especially through TikTok’s duet feature, mostly requires layering voices. And like memes, the shanty is an art form that doesn’t seem to belong to anyone, comes out of nowhere, exists to be replicated. All singers need is a drum, a few voices and maybe a leg that will be blown off by a cannonball.

Part of the joy also lies in the self-confident absurdity of the trend. Like the Ratatouille musical, it’s such a strange concept that it destroys self-esteem. The « are we really doing this now? » The feeling is best captured by the widespread video of two men in a car with the driver watching skeptically while his passenger rocks to « Wellerman ». A few seconds later, however, the driver admits the song sounds « kind of lit up, » and by the end of the video he buckles himself in.

There is no doubt that the almost surreal novelty of sea shanties contributed to its sudden popularity but I would suggest that the shanty trend, like Stan Rogers’ 1960s folk shanty revival, is reacting to the conditions of 2021. The shanty promises community. It’s a harmonizing genre. In the context of the pandemic, shanties evoke a richer version of shared experience, togetherness, quarantined opera performances and orchestral flash mobs.

The genre has a resonant pathos. Shanties give voice to longing. The singers long for sugar, for home, for lost friends, for love (or more precisely sex) or just to get off the goddamn boat. They express a common sadness and collective loneliness. Shanties look back to abandoned houses and forward to return. Listen to the haunted singing of this Norwegian crew returning to shore and try not to be moved.

We’re all stuck in the same boat, with the same crazy captain. The best you can do – the best we can do – is humor. Or roll the old chariot nautically with you.

You’re running out of free items. Join Slate Plus to read on, and you’ll get unrestricted access to all of our work – and support Slate’s independent journalism. You can cancel at any time.

Start the free trial now

Already a member?
Sign up here.

Start the free trial now

Already a member?
Sign up here.

Slate is published by The Slate Group, a Graham Holdings Company.
All content © 2021 The Slate Group LLC. All rights reserved.

Slate depends on advertising to support our journalism. If you appreciate our work, please deactivate your ad blocker.

By joining Slate Plus you support our work and receive exclusive content. And you will never see this message again.

« )), c = d (m [i.size_id] .split ( » x « ). Map (function (s) {return value (s)}), 2 ), s.width = c [0], s .height = c [1]), s.rubiconTargeting = (Array.isArray (i.targeting)? i.targeting: []). redu (function (e, t ) {return e [t.key] = t. Values ​​[0], e}, {rpfl_elemid: f.adUnitCode}), t.push (s)): n.logError (« Rubicon: bidRequest undefined at index position: » . concat (o), r, e), t}, []). sort (function (e, t) {return (t.cpm || 0) – (e.cpm || 0)})}, getUserSyncs : Function (e, t, r, n) {if (! X&&e.iframeEnabled) {var i = «  »; return r&& « string » == typeof r.consentString&& (« boolean »? == typeof r.gdpries) « ? gdpr = » .gdprApplies), « &gdpr_consent = »). concat (r.consentString): i = « ? gdpr_consent = « . concat (r.consentString)), n&& (i = » « . concat (i? » & « : »? « , » us_privacy = « ) .concat (encodeURIComponent (n))), x =! 0 , {type: « iframe », url: « https: // » .concat (g.syncHost || « eus », « .rubiconproject.com / usync.html ») i}}}, transformBidParams: function (e) {return n.convertTypes ({accountId: « number », siteId: « number », zoneId: « number »}, e)}}; Function v (e, t) {var r = obgetConfig (« pageUrl »); r = e.params.referrer? e.params.referrer: r || t.refererInfo.referer; return e.params.secure?r.replace(/^http:/i, »https: »):r Genealogie function y (e, t) {var r = e.params; if (« video » === t) {var i = []; return r.video&&r.video.playerWidth&&r.video.playerHeight? i = [r.video. playerWidth, r.video.playerHeight]: Array.isArray (n.deepAccess (e, « mediaTypes.video.playerSize »)) &&1 === e.mediaTypes.video.playerSize.length? i = e.mediaTypes.video. playerSize [0]: Array.isArray (e.sizes) CSSEANDCH AR&0e.length) && (t = e.length); for (var r = 0, n = new array (t); r ‘; var i, o}}, h = function (e) {var t = 0 = e&&t.innerWidth’ v.vast_url «  »: v.vast_string&& (y = v.vast_string), g.pre_market_bids.push ({id: v.deal_id, seatbid: [{bid: [{impid:, dealid: v.deal_id, price: v.price, adm: y}]} ], cur: v.currency, ext: {event_log: [{}]}}}} var h = n.getBidIdParameter (« mimes » « , e .params) || [ » application / javascript « , » video / mp4 « , » video / webm « ], _ = {id: e.bidId, sure: l, video: {w: p, h: f, ext: g, mimes: h}}; » « ! = n.getBidIdParameter (« price_floor », e.params) && (_. bidfloor = n.getBidIdParameter (« price_floor », e.params)), «  »! = n .getBidIdParameter (« start_delay », e.params) && (_. video. video .startdelay = 0 Boolean (n.getBidIdParameter (« start_delay », e.params))), «  »! = n.getBidIdParameter (« e! .params) && (_. video.minduration = n.getBidIdParameter ( » min_duration « ) , e.params)), «  »! = n.getBidIdParameter (« max_ duration « , e.params) && (_. video.md .getBidIdParameter (« max_duration », e.params)), «  »! = n.getBidIdParameter (« placement type », e.params) && (_. video.ext.placement = n.getBidIdParameter (« placement type »), e.)), «  »! = n.getBidIdParameter (« position », e.params) && (_. video.ext.pos = n.getBidIdParameter (« position », e.params)), e.crumbs&&e.crumbs (c = e .crumbs.pubcid ); var S = navigator.language? « language »: « userLanguage », I = {id: s, imp: _, site: {id: «  », page: a, content: « content »}, device: {h: screen height, w: screen width, dnt : n.getDNT ()? 1: 0, language: Navigator [S] .split (« -« ) [0], brand: Navigator.Vendor navigator.vendor: «  », including: navigator.userAgent}, ext: {wrap_response: 1}}; n.getBidIdParameter (« number_of_ads », e.params) && (I.ext.number_of_ads = n.getBidIdParameter_ « , e.params)); var A = {}; return 1 == n.getBidIdParameter ( » spotx_all_google_consent « , e .params) .consentString, void 0! == t.gdprConsent.gdprApplies&&n.deepSetValue (I, « regs.ext.gdpr », t.gdprConsent.gdprApplies? 1: 0)). , n.deepAccess (e, « userId.id5id.uid ») && (A.eids = A.eids || [], A.eids.push ({source: « id5-syn c.com », uids: [ {id: e.userId.id5id.uid}], ext: e.userId.id5id.ext || {}})), c&& (A.fpc = c), e&&e.schain&CSSE (I.source = {ext: {schain: e.schain}}), e&&e.userId&&e.userId.tdid&& (A.eids = A.eids || [], A.eids.push ({source: « adserver. org », uids: [{id : e.userId.tdid, ext: {rtiPartner: « TDID »}}]}))), n.isEmpty (A) || (I.user = {ext: A}), {method: « POST », URL: « https://search.spotxchange.com/openrtb/2.3/dados/ » s, data: I, bidRequest: t}} )}, interpretResponse: function (e, t) {var r = [], i = e.body; return i&&n.isArray (i.seatbid) &&n._each (i.seatbid, function (s) {n._each (e.bid, function (s) {var a = {}; for (var c in t.bidRequest. bids) e.impid == t.bidRequest.bids [c] .bidId&& (a = t.bidRequest.bids [c]); n._each (a.params. pre_market_bids, function (t) {t.deal_id == e.id&& (e.price = t.price, i.cur = t.currency)}); var d = {requestId: a.bidId, currency: i.cur || « USD », cpm: e.price, creativeId: e.crid || «  », dealId: e.dealid || «  », ttl: 360, netRevenue:! 0, channel_id: i.id, cache_key: e.ext.cache_key, vastUrl: « https: // search .spotxchange.com / ad / vast.html? key = « e.ext.cache_key, videoCacheKey: e.ext.cache_key, media type: sd, width: ew, height: eh}; d.meta = d.meta | | {}, e&&e.adomain&&0e.length) && (t = e.length); for (var r = 0, n = new array (t); rt? e: t} function d (e, t, n) { ! e.preload&&e.preloadThreshh old&&function (e, t, n, i) {return t.top = e.shownThreshold&&! e.seen? (e.seen =! 0, setTimeout (function) new r (« shown », t))}, 15)) :(! n || i1&& (h = e (r, Math.floor (n / o), i-1, o)), h}, dies .getVerticallyVisiblePixels = f, this.getViewportHeight = function () {return t.innerHeight || e.documentElement.clientHeight || e.body.clientHeight}, this.getViewportWidth = function () {return t.innerWidth || e.documentElement .clientWidth || e.body.clientWidth}, this.isElementNotHidden = u, this.isElementInViewport = functi on (n) {var i = n.getBoundingClientRect (); return i .top> = 0&&i.left> = 0&&i.bottom = o.length) return {done: true}; return {done: false, value: o [i]}; }, e: function e (_e) {throw _e; }, f: F}; } throw new TypeError (« Invalid attempt to iterate on a non-iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method. »); } var normalCompletion = true, didErr = false, err; return {s: function s () {it = o [symbol.iterator] (); }, n: function n () {var step = it.next (); normalCompletion = step.done; Regression; }, e: function e (_e2) {didErr = true; err = _e2; }, f: function f () {try {if (! normalCompletion && it.return! = null) it.return (); } finally {if (didErr) throw err; }}}; }}

Function _unsupportedIterableToArray (o, minLen) {if (! O) return; if (typeof o === « string ») return _arrayLikeToArray (o, minLen); var n = Object.prototype.toString.call (o) .slice (8, -1); if (n === « Object » && o.constructor) n = o.constructor.name; if (n === « Map » || n === « Set ») returns Array.from (o); if (n === « Arguments » || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray (o, minLen); }}

Function _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for (var i = 0, arr2 = new array (len); i

Ref: https://slate.com



Laisser un commentaire, votre avis compte!

[gs-fb-comments] [comment-form]