ADVERTISEMENT

AUDIO JUNKIE: A dose of lo-fi and retro hi-fi

Published Jan 24, 2022 06:38 am

Dhruv (left) and Neocolours 'Making It' album cover

Give singer-songwriter Druhv some room for your listening space this 2022.

The Singapore-based singer-songwriter is said to have written “hundreds of songs on his bedroom piano” when he was only 17-years old and around the time he first started uploading his songs on the internet. Thankfully, we won’t have to sift through said “hundreds of songs” because Dhruv just made it easier for the rest of us by listening to a tight and highly listenable EP titled “Rapunzel.”

According to his press, “dhruv” (stylized as such) “grew up on an eclectic mix of Bollywood songs, aught-styled pop and Frank Ocean.”

We can certainly hear the Frank Ocean influence on his eight-song set. Dhruv lays down one easy-listening tune after another in “Rapunzel.” Beginning with dreamy “Retrograde.” The low-key arrangement and vocal delivery is key to Dhruv’s style. And he puts said style to good use on relaxed but compelling numbers such as the R&B-tinged “Moonlight.”

Drhuv’s got the lo-fi style aced, especially on cool-grooved “Double Take.”

What is lo-fi anyway? Originally, the style is associated with the D.I.Y. ethos of music production or independent music. As the term suggests, sonically, it shuns “grand” sounding music production. The keyword is simple: synths, bass, guitar, beats and vocals. Anything the independent musician usually gets his hand on. Of course, over the years, lo-fi has taken on different definitions. These days it’s come to mean dreamy sounds, electropop, R&B-tinged mellow vocals (“airplane thoughts”), escapist and nostalgia themes (“stable life”) and relaxed vibes.

Exactly what Drhuv is exuding on his debut album.

The album “rapunzel” is “a scrapbook I’ve kept during a really important few years of personal growth,” Dhruv said, adding, “the title is a reference to a lyric in the closing track, which talks about our childhood selves often being our least inhibited and truest selves. In many ways, I think this project is about me trying to find that version of myself.”

Closing track “Grateful” is this set’s highlight track. Bare but soulful guitars, uncomplicated beats, airy synths, unobtrusive groove, and Dhruv’s solemn yearnings about an uncomplicated life as he sings “Everything I need is right in my line of sight / and I don’t know my destination, but I’ve come to learn / the universe gives you the answers on its own terms.”

*

Vicor Records released a stream of classic OPM last year and is set to put out more this 2022. Their latest is the Pinoy pop classic “Making It” by those erstwhile pop darlings, Neocolours. The good news is that the album aged well. Tracks “Say You’ll Never Go” and “Hold On” are the obvious ones to listen to. But hearing them again on vinyl just gives us some feel-good nostalgia vibes (I managed to listen to a test pressing). Those two aforementioned tracks and “Bahala Na” makes this album a keeper. Throw in some definitely 80’s-sounding originals (“Let It Go” is our pick) and it makes this a worthy addition to any record collection, if it isn’t there already. But for those who want to update their copies, then this vinyl 180-gram vinyl reissue is worth the Php 1900 price tag. And we wouldn’t mind shelling out for the Neocolours’ “Tuloy Pa Rin” LP when it comes out again.

Related Tags

DHRUV neocolours
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.