Skip to content

SyndicateOfSwing/stardust-dsp

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

75 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Stardust DSP

License: MIT Vue 3 Firebase Status

Open-source, npm-installable streaming platform that turns DDEX deliveries into a complete music service.

Stardust DSP enables anyone to deploy a fully functional, DDEX-compliant streaming platform in minutes. Receive ERN deliveries, process them automatically, and provide a complete music streaming experience.

Introduction

Stardust DSP is open-source software. The entire platform is MIT licensed with no paid tiers, no enterprise edition, and no artificial limitations. You get a complete, production-ready streaming platform with ALL ingestion protocols (FTP, SFTP, S3, API), full ERN processing, adaptive streaming, and everything needed to run a professional music service.

Why This Matters

  • No artificial limits: No track caps, no watermarks, no time bombs
  • Complete functionality: Every feature needed for professional streaming
  • True community ownership: Fork it, modify it, deploy it - it's yours
  • Perfect for testing: Ideal companion for testing DDEX deliveries from your distribution platform

🚧 Current Development Status

Alpha Release - v0.8.0 (September 2025)

βœ… Phase 1: Foundation - COMPLETE

  • Project architecture and blueprint
  • Vue 3 application with core views
  • Firebase integration (Auth, Firestore, Storage)
  • Complete authentication system
  • Dual-auth model for industry and consumer users
  • Navigation and routing structure
  • Professional CSS architecture
  • Theme support (light/dark)
  • CLI tool with all commands
  • Vue composables (useAuth, useDualAuth, useCatalog, usePlayer)
  • Responsive design foundation
  • Live deployment to Firebase Hosting

βœ… Phase 2: Ingestion Pipeline - COMPLETE

  • Build ERN receiver with HTTP endpoint
  • Implement direct pipeline architecture
  • Create XML parser with ERN 4.3 support
  • Integrate DDEX Workbench validation
  • Build file transfer system with MD5 validation
  • Implement scheduled queue processing
  • Create asset processor for releases
  • Build acknowledgment system
  • Add transaction-based locking for concurrency
  • Create distributor management UI
  • Build ingestion monitoring dashboard
  • Add real-time processing status
  • Enable Stardust Distro integration

βœ… Phase 3: Core Streaming - COMPLETE

  • Implement catalog structure
  • Build streaming API
  • Add HLS/DASH support foundation
  • Create web player component
  • Implement basic search and filtering
  • Add user library system
  • Build catalog browsing interface
  • Create release and artist detail pages
  • Implement audio playback with Howler.js
  • Add queue management and controls
  • Real-time dashboard with platform statistics
  • Mini player with persistent playback

βœ… Phase 4: Testing Suite - COMPLETE

  • Build comprehensive testing framework
  • Implement system health tests
  • Create ingestion pipeline tests
  • Add catalog operation tests
  • Build performance benchmarks
  • Add test result export functionality
  • Create real-time test execution log
  • Implement health score calculation
  • Test MD5 validation and file transfers
  • Verify DDEX Workbench API integration

βœ… Phase 5: Consumer Features - COMPLETE

  • Build enhanced browse interface
  • Add advanced search with filters
  • Implement playlist management
  • Add favorites system
  • Create user profiles
  • Add social features (sharing)
  • Implement recommendations
  • Add recently played history
  • Create personalized home page
  • Add follow artist functionality

βœ… Phase 6: Analytics & Reporting - COMPLETE

  • Implement play tracking
  • Build analytics dashboard
  • Create DSR generator
  • Add usage reports
  • Implement royalty calculations
  • Add distributor reporting portal

🚧 Phase 7: Testing & Launch (Weeks 25-28)

  • Documentation completion
  • Performance optimization
  • Security audit
  • npm package publication

✨ Core Features

Complete DDEX Ingestion Pipeline

  • Direct Pipeline Architecture: Simplified processing without Pub/Sub complexity
  • ERN Support: Handles ERN 3.8.2, 4.2, and 4.3 formats
  • DDEX Workbench Validation: Automatic validation of all deliveries
  • File Transfer System: Secure file handling with MD5 validation
  • Transaction Locking: Prevents race conditions and duplicate processing
  • Scheduled Processing: Automatic queue handling every minute
  • Real-time Monitoring: Live status updates via dashboard
  • Acknowledgments: Automatic generation of DDEX-compliant receipts

Music Streaming Platform

  • Audio Playback: Howler.js-powered player with queue management
  • Catalog Management: Browse releases, tracks, and artists
  • Search & Discovery: Real-time search with filters and recommendations
  • User Library: Personal playlists, favorites, and listening history
  • Artist Profiles: Complete artist pages with discography
  • Release Pages: Detailed album views with track listings
  • Mini Player: Persistent playback across navigation
  • Cross-device Sync: Real-time state synchronization

Consumer Features

  • Personalized Home: Time-based greetings and tailored content
  • Browse Interface: Discover by genre, mood, charts, and new releases
  • Advanced Search: Multi-faceted filters with recent searches
  • Playlist Management: Create, edit, share, and collaborate on playlists
  • Social Features: Follow users and artists, activity feeds, sharing
  • User Profiles: Public profiles with stats and activity
  • Favorites System: Save tracks, albums, and artists
  • Recommendations: Pattern-based suggestion engine
  • Recently Played: Automatic history tracking

Analytics & Reporting

  • Real-time Tracking: Automatic play tracking with progress updates
  • Analytics Dashboard: Interactive charts and visualizations (Chart.js)
  • DSR Generation: DDEX-compliant Digital Sales Reports
  • Usage Reports: 6 report types (streaming, geographic, demographic, etc.)
  • Royalty Calculations: Pro-rata, user-centric, and hybrid methods
  • Distributor Portal: Dedicated reporting interface for partners
  • Multi-format Export: DDEX XML, CSV, Excel, JSON
  • Territory Analytics: Geographic breakdowns and insights
  • API Access: RESTful API for distributor integration

Professional Dashboard

  • Ingestion Monitoring: Real-time processing status
  • Distributor Management: Partner account administration
  • System Health: Platform performance metrics
  • User Statistics: Active users, engagement metrics
  • Catalog Overview: Release and track statistics
  • Testing Suite: 20+ automated tests for platform health

White-Label Ready

  • Custom Branding: Logo, colors, fonts customization
  • Theme System: Light/dark modes with CSS variables
  • Multi-tenant Support: Multiple brands on one platform
  • Domain Mapping: Custom domain configuration
  • Feature Toggles: Enable/disable features per deployment

πŸš€ Quick Start

Install and Deploy

# Create your streaming platform
npx stardust-dsp create my-dsp

# Navigate to project
cd my-dsp

# Initialize Firebase (free tier available)
stardust-dsp init

# Start development server
npm run dev
# Visit http://localhost:5173

# Deploy to production
npm run deploy
# Your platform is live! πŸš€

Using the CLI Tool

# Available commands
stardust-dsp create <name>       # Create new streaming platform
stardust-dsp init                # Initialize Firebase configuration
stardust-dsp deploy              # Deploy to Firebase
stardust-dsp configure           # Configure ingestion settings
stardust-dsp dev                 # Start development server
stardust-dsp deliveries          # Manage DDEX deliveries

Test the Complete Workflow

# Send test delivery from Stardust Distro
stardust-distro deliver \
  --target=https://us-central1-my-dsp.cloudfunctions.net/receiveDelivery \
  --release=test-album

# Check ingestion status
stardust-dsp deliveries list

# Monitor processing
# Visit http://localhost:5173/ingestion

# Browse the catalog
# Visit http://localhost:5173/catalog

# Play the music!
# Click any release to start streaming

πŸ—οΈ Architecture Overview

Direct Pipeline Processing

The platform uses a direct pipeline architecture for processing DDEX deliveries:

// Processing flow with transaction-based locking
exports.processDeliveryPipeline = async (deliveryId) => {
  // 1. Lock delivery to prevent concurrent processing
  // 2. Check/wait for file transfers if needed
  // 3. Parse ERN XML directly
  // 4. Validate with DDEX Workbench
  // 5. Process releases and assets
  // 6. Generate acknowledgment
  // 7. Update status and unlock
};

Processing Status Flow

received β†’ pending β†’ waiting_for_files β†’ files_ready β†’ parsing β†’ 
validating β†’ processing_releases β†’ completed (or failed/cancelled)

Scheduled Functions

  • processPendingDeliveries (every minute): Main processing queue
  • processPendingFileTransfers (every 5 minutes): File transfer handling
  • cleanupStuckDeliveries (every 30 minutes): Recovery from stuck states

πŸ› οΈ Technology Stack

  • Frontend: Vue 3 (Composition API) + Vite
  • Backend: Firebase (Firestore, Functions, Storage, Auth)
  • Audio: Howler.js for cross-browser audio playback
  • Charts: Chart.js for analytics visualizations
  • Streaming: Firebase Storage + CDN
  • Search: Client-side filtering + Algolia/Typesense ready
  • Ingestion: Direct pipeline with Cloud Functions
  • Validation: DDEX Workbench API integration
  • Analytics: Firebase Analytics + custom DSR generation
  • Styling: Custom CSS architecture with theme system
  • Icons: FontAwesome free icons
  • CLI: Node.js with Commander.js
  • Deployment: Firebase Hosting with global CDN

πŸ’» Development

# Clone the repository
git clone https://github.com/daddykev/stardust-dsp.git
cd stardust-dsp

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your Firebase credentials

# Start development server
npm run dev
# Visit http://localhost:5173

# Build for production
npm run build

# Deploy to Firebase
npm run deploy

# Run Firebase emulators
npm run emulators

πŸ—οΈ Project Structure

stardust-dsp/
β”œβ”€β”€ template/                     # Default Vue app template
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ views/                # Page components (18+ views)
β”‚   β”‚   β”‚   β”œβ”€β”€ business/         # Industry views
β”‚   β”‚   β”‚   β”œβ”€β”€ consumer/         # Consumer views
β”‚   β”‚   β”‚   └── public/           # Public views
β”‚   β”‚   β”œβ”€β”€ components/           # UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ analytics/        # Analytics components
β”‚   β”‚   β”‚   β”œβ”€β”€ browse/           # Browse & discovery
β”‚   β”‚   β”‚   β”œβ”€β”€ library/          # User library
β”‚   β”‚   β”‚   β”œβ”€β”€ player/           # Music player
β”‚   β”‚   β”‚   └── profile/          # User profile
β”‚   β”‚   β”œβ”€β”€ composables/          # Vue composables (9 total)
β”‚   β”‚   β”œβ”€β”€ services/             # Backend services
β”‚   β”‚   β”œβ”€β”€ router/               # Routing config
β”‚   β”‚   β”œβ”€β”€ assets/               # CSS architecture
β”‚   β”‚   └── firebase.js           # Firebase config
β”‚   └── functions/                # Cloud Functions
β”‚       β”œβ”€β”€ ingestion/            # Direct pipeline processing
β”‚       └── reporting/            # Analytics & DSR
β”œβ”€β”€ cli/                          # CLI tool
β”‚   β”œβ”€β”€ bin/                      # Executable scripts
β”‚   └── commands/                 # All CLI commands
β”œβ”€β”€ firebase.json                 # Firebase configuration
β”œβ”€β”€ firestore.rules               # Security rules
└── docs/                         # Documentation

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

πŸͺ Stardust Ecosystem

Stardust DSP is part of the larger Stardust ecosystem:

All tools share unified authentication for seamless workflow integration.

πŸ“ˆ Performance

Current Performance

  • Ingestion Speed: <2 min for standard album βœ…
  • Search Latency: <50ms response time βœ…
  • Stream Start: <500ms buffering βœ…
  • Page Load: <2s initial load βœ…
  • Processing Efficiency: 30-50% faster than pub/sub βœ…

Scalability Targets

  • Catalog Size: 10M+ tracks supported
  • Concurrent Users: 1M+ simultaneous streams
  • Uptime: 99.95% availability

πŸ” Security

  • βœ… Firebase Auth with SSO support
  • βœ… Secure streaming URLs with expiration
  • βœ… Role-based access control (RBAC)
  • βœ… Transaction-based processing locks
  • βœ… MD5 validation for file integrity
  • βœ… Input validation and sanitization
  • βœ… Firestore security rules
  • πŸ“… Regular security audits (Phase 7)

πŸ“„ License

MIT License - Use freely for any purpose, forever. See LICENSE for details.

This means you can:

  • βœ… Use commercially without payment
  • βœ… Modify and customize freely
  • βœ… Distribute and sell your modifications
  • βœ… Use privately without restrictions
  • βœ… Fork and create your own platform

πŸ’¬ Support

Community Support

Professional Support

For enterprise deployments or custom development:

πŸ™ Acknowledgments

Built for the music industry, by the music industry. Special thanks to:

  • DDEX for the standards and specifications
  • Vue.js team for the amazing framework
  • Firebase for the backend infrastructure
  • Early contributors and testers
  • The open-source community

Star ⭐ the repo to follow our progress!

About

Stardust DSP is an open-source, npm-installable Digital Service Provider (streaming platform) that receives DDEX ERN deliveries, processes them into a searchable catalog, and provides a complete music streaming experience.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Vue 71.9%
  • JavaScript 27.0%
  • CSS 1.1%