SShortSingh.
Back to feed

How a Browser Mashup Tool Was Rebuilt to Match Vocals to Beats

0
·2 views

SongUp AI, a free browser-based audio tool developer, describes rebuilding its Mashup Creator after an early version simply crossfaded two songs without matching keys, leading a paying user to cancel. The new version separates each track into stems on the user's computer, so audio is not uploaded, and places one song's vocals over another song's instrumental. Key alignment now relies on comparing vocal frames against the beat's chords rather than whole-song key labels, which the developer found more reliable. Timing is aligned by correlating drum stems, with a beat-grid fallback, and the mix gets EQ and limiting for clarity. Phones cannot run the process in-browser, so they use a paid server path with saved pending jobs, and the article notes that published mashups of commercial songs require rights-holder permission.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Tracking Google Flights prices with Python via a scraper, no API key needed

Google Flights offers no public API, so the article proposes a scraper-based approach to monitor fares across many routes and dates. The author's Apify Actor, Google Flights Scraper, collects total price, airlines, times, duration, stops, layovers, leg details, CO2 emissions, and a direct booking link for each flight. Users specify origin and destination airports and date ranges, and can filter by cabin class, stops, currency, and round-trip length. A short Python script using the Apify client exports the cheapest fare per departure date to CSV. The article also explains how to schedule daily runs to track price changes, noting the disclosed cost of roughly $0.20 per 1,000 flights.

0
ProgrammingDEV Community ·

Paused CDC Connector Left Replication Slot Holding WAL, Filling Postgres Disk

A Postgres primary database shut down after its disk filled, because a paused CDC connector's replication slot had kept all write-ahead log since it was stopped nine days earlier. Replication slots record the oldest WAL position a consumer needs, and by default Postgres retains that WAL without limit, so it keeps growing while the connector is idle. A quieter variant can occur even when the connector runs, if captured tables rarely change and the confirmed position lags behind. The article recommends heartbeat settings, including a dedicated heartbeat table in the captured database, plus Postgres safeguards such as max_slot_wal_keep_size and idle slot timeouts.

0
ProgrammingDEV Community ·

CrewAI and AutoGen Compared on Coordination, Token Use, and Stability for Multi-Agent Systems

A DEV Community analysis compares CrewAI and AutoGen, the two leading multi-agent orchestration frameworks used in production AI engineering. CrewAI uses role-based hierarchies and deterministic Flows, while AutoGen relies on conversational, message-passing agent groups. In benchmarks of 5,000 multi-step research and code triage tasks on Python 3.12 with GPT-4o and Claude 3.5 Sonnet, CrewAI's structured Flows reportedly cut token waste by 46%. The article says CrewAI also reduced runaway chat loops by 91.4% in business pipelines, whereas AutoGen offers greater flexibility for open-ended, exploratory debugging.

0
ProgrammingDEV Community ·

Freelance web designers can protect profits by setting clear client revision limits

A DEV Community guide explains how freelance web designers can manage client revisions without losing money. It recommends stating a fixed number of included revision rounds in the contract instead of offering unlimited changes. The guide advises separating routine revisions from scope changes, such as adding new pages or features, which should be quoted separately. It also suggests tracking feedback, reminding clients of remaining rounds, and securing approvals at staged milestones before development begins.