ADVERTISEMENT

The song remains the same: 'Sing 2'

Published Jan 25, 2022 02:28 pm

From Sing 2; Ash (voiced by Scarlett Johansson) and Clay Calloway (voiced by Bono).

Sing 2 (Video On Demand) - When the first Sing came out, even if you could accuse it of blatantly ripping off reality shows like American Idol and The Voice; you couldn’t help but be charmed by the animated feature, and how Director Garth Jennings had made fine extensive use of the animal kingdom to come up with his memorable main characters. Jennings has a strong history of directing music videos, and the charming, shaggy-dog, indie film, Son of Rambow, is credited to him; so it wasn’t a surprise to find how he could be disarming and emotional, while being funny and entertaining.

So to be frank, I had high hopes for Sing 2, and how practically everyone would be back - the likes of Reese Witherspoon, Taron Egerton, Scarlett Johansson, Nick Kroll, and Matthew McConaughey, to name a few, had provided the voices in the original. And maybe that was the problem, too much pressure to repeat the success of the first film - to come up with something different, while pandering to the fans of the first.

"Sing 2" is sweet and entertaining in patches, and there’s a second act that’s both visually and aurally stunning - the show they mount in the Las Vegas-type theater. But there’s also over-stuffing going on; like Jennings was unsure, and so, tried to cram everything and the kitchen sink, into this sequel. And while I know the title of the feature is Sing, there’s an over-dependence on just segueing to a musical number every few minutes or so. It’s almost like clockwork, and it also betrays how they’re not that confident in their narrative strands this time.

'Sing 2' film poster

It’s nice to note that real musical artists like Halsey, Bono, & Pharrell Williams have been enlisted; but it’s only Halsey, and Bono to a lesser degree, who truly contribute to the narrative flow of this film. Ash (Johansson) carries the more interesting narrative strand and impresses with her singing; while Johnny (Taron Egerton) has far more screen time than his clichéd subplot deserves. And that’s an obvious shame, as Johnny was one of the more compelling characters in the first film, and there was so much to build on. Instead, we get a tired storyline of Johnny and his dance instructor, who gives him no respect.

Of the new characters introduced in this second installment, the runaway star would be Bobby Cannavale as Jimmy Crystal, a Simon Cowell-type figure, who knows how to bully his way in the Entertainment world of Sing 2. And honorable mention would go to Andre Dubus as Darius, the egotistical yak, who’s full of himself and nothing else. I would love to know which Hollywood stars Garth Jennings had in mind when he created this Darius.

Besides directing, Garth Jennings voices Miss Crawly as well, so she gets a lot of the funnier situations, and the throwaway lines that do bring smiles to our faces. It’s entertaining enough, and the musical kids should love it, with all the best pop songs of recent memory used in the soundtrack. In the end, though, the sad fact is that it’s a far cry from what the first installment bountifully provided. Still, it’s all in good fun, so be ready come Feb. 2, when this opens in cinemas.

Related Tags

sing 2
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.