waveform-playlist - Multitrack Web Audio editor and player with canvas waveform preview

  •        990

Inspired by Audacity, this project is a multiple track playlist editor written in ES2015 using the Web Audio API. Load tracks and set cues (track cue in, cue out), fades (track fade in, fade out) and track start/end times within the playlist. I've written up some demos on github for the different audio fade types in the project.

http://naomiaro.github.io/waveform-playlist
https://github.com/naomiaro/waveform-playlist

Dependencies:

event-emitter : ^0.3.4
fade-curves : ^1.0.2
fade-maker : ^1.0.3
inline-worker : ^1.1.0
lodash.assign : ^4.0.0
lodash.defaults : ^4.0.0
lodash.forown : ^4.0.0
mucss : ^1.1.5
uuid : ^2.0.1
virtual-dom : ^2.1.1
webaudio-peaks : ^0.0.6

Tags
Implementation
License
Platform

   




Related Projects

videojs-record - video.js plugin for recording audio/video/image files.

  •    Javascript

Video.js plugin for recording audio/video/image files. Use npm (npm install videojs-record) to install the plugin or download the library and dependencies elsewhere. If you want to try the examples, check these instructions below.

Sayonara-player - Platform independent music player written in C++

  •    C

Sayonara is a small, clear and fast audio player for Linux written in C++, supported by the Qt framework. It uses GStreamer as audio backend. It supports Many supported music and playlist formats, Media library with fast search function, Dynamic playback, Equalizer, MP3 Converter, Radio streaming, Multimedia Keys and lot more.

RhythmBox - A Music playing application for GNOME

  •    C

RhythmBox is an MP3/OGG player for Linux and the GNOME desktop. It features easy playlist edition, CD-ripping, MP3 walkman support, Audio CD burning and internet radio playback. Its interface is strongly based on Apple's iTunes.

Babe - Tiny Qt Music Player

  •    C++

Babe will handle your whole music collection, letting you create custom playlists to organize your music. You can also filter your music by artist, title, album, genre, date and location. Babe let's you babe-mark your favorite YouTube music videos into your local collection by using the Chromium extension. Think of Babe as the playlist where all your favorite tracks at the moment are. And when needed you also have an integrated collection manager. Babe is designed to tightly integrate with the KDE Plasma desktop.

Mp3blaster - Audio player for the text console

  •    C++

Mp3blaster is an interactive text-based program that plays MP3, Ogg Vorbis, wav, and sid audio files. One of its key features is its nested playlist editor which can group albums or genres.


Rosegarden - Music software for Linux

  •    C++

Rosegarden is a well-rounded audio and MIDI sequencer, score editor, and general-purpose music composition and editing environment. Rosegarden is an easy-to-learn, attractive application that runs on Linux, ideal for composers, musicians, music students, and small studio or home recording environments.

party-mode - An experimental music visualizer using d3.js and the web audio api.

  •    Javascript

Using the web audio api, I can get an array of numbers which corresponds to the waveform of the sound an html5 audio element is producing. There's a good tutorial on how to do this. Then, using requestAnimationFrame (with a little frame limiting for performance reasons) I'm updating that array as the music changes. I then normalize the data a bit (or transform it slightly depending on the visualization) and redraw the screen based on the updated array. I'm using d3.js to draw and redraw SVG based on this normalized data. Each visualization uses the data a bit differently -- it was mostly trial and error to get some stuff I liked looking at. Since I'm using D3 -- which is just drawing SVG -- I was able to style everything in CSS (no images are used at all, including icons). There are a handful of differently colored themes for each visualization, and I do some rudimentary CSS namespacing by updating a class applied to the html element. eg. <html class='theme_1'>. This lets me override or substitute CSS rules pretty trivially. I can add some additional variation to each theme by messing with pseudo selectors. For example, I can use :nth-of-type to hide every nth SVG rectangle or making every odd child have a different stroke-dasharray, etc.

foobar2000 - Audio player for the Windows platform

  •    C

foobar2000 is an audio player for the Windows platform. It suppors audio formats: MP3, MP4, AAC, CD Audio, WMA, Vorbis, Opus, FLAC, WavPack, WAV, AIFF, Musepack, Speex, AU, SND... and more with additional components, Advanced tagging capabilities, Gapless playback, Support for ripping Audio CDs as well as transcoding all supported audio formats using the Converter component and lot more.

RecordRTC.js - WebRTC JavaScript Library for Audio+Video+Screen+Canvas (2D+3D animation) Recording

  •    Javasript

RecordRTC is WebRTC JavaScript library for audio/video as well as screen activity recording. It supports Chrome, Firefox, Opera, Android, and Microsoft Edge. Platforms: Linux, Mac and Windows.

Audacity - Software for Recording and Editing Sounds

  •    C++

Audacity is a multilingual easy to use audio editor and recorder. It helps to Record live audio, Convert tapes and records into digital recordings or CDs, Edit Ogg Vorbis, MP3, WAV or AIFF sound files, Cut, copy, splice or mix sounds together and lot more.

Basic Audio

  •    

Basic audio is a class library with a test project (audio player/recorder) to faciliate basic audio playing and recording. There are other frameworks available to give you very detailed and complex audio functionality, this one aims to provide only the basic playback / recor...

CineFX - Professional grade media player

  •    C++

Cinefx is a professional grade media player, based on the jahplayer, that is capable of playing uncompressed video and image sequences at resolutions as high as 2K and 4K in real-time. Cinefx is an offline playback, editing, encoding, animation and visual effects tool based on the Jahshaka technology that allows you to create professional digital media on your desktop. Use the tools that hollywood uses to create blockbuster films and special effects.

audiowaveform - C++ program to generate waveform data and render waveform images from audio files

  •    C++

audiowaveform is a C++ command-line application that generates waveform data from either MP3, WAV, or FLAC format audio files. Waveform data can be used to produce a visual rendering of the audio, similar in appearance to audio editing applications.Waveform data files are saved in either binary format (.dat) or JSON (.json). Given an input waveform data file, audiowaveform can also render the audio waveform as a PNG image at a given time offset and zoom level.

DeaDBeeF - The Ultimate Music Player

  •    C++

DeaDBeeF is an audio player which supports mp3, ogg vorbis, flac, ape, wv/iso.wv, wav, m4a/mp3 (aac and alac), mpc, tta, cd audio, and many more formats. It has no no GNOME or KDE dependencies. Its feature include GUI using GTK2 and GTK3, 18-band graphical equalizer and other DSP plugins, Gapless playback, Radio streaming, Transcode files to other formats, OSD notifications about current playing songs and lot more.

peaks.js - JavaScript UI component for interacting with audio waveforms

  •    Javascript

A browser based audio waveform visualisation frontend component from BBC R&D.Peaks.js is a modular client-side JavaScript component designed for the display of and interaction with audio waveforms in the browser.

Silverlight Audio Player

  •    Silverlight

This project is for the development of audio player interfaces using Silverlight, with the intention that they can be easily used in websites. Initially we will have one simple player that plays a single file and one that operates from a playlist.

Towel

  •    C

Towel is a simple audio player for GNU/Linux and FreeBSD using gtkmm-2.4 for its user interface, with GStreamer providing the audio playback facilities. It features a heirarchical group-based playlist/music library.

MOC - Music on Console

  •    C++

MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use. You just need to select a file from some directory using the menu similar to Midnight Commander, and MOC will start playing all files in this directory beginning from the chosen file. There is no need to create playlists as in other players.

waveform-data

  •    Javascript

waveform-data.js is a JavaScript library for creating zoomable, browsable and segmentable representations of audio waveforms.We use these projects daily in applications such as BBC Radio Archive and browser editing and sharing tools for BBC content editors.

snapcast - Synchronous multiroom audio player

  •    C++

Snapcast is a multiroom client-server audio player, where all clients are time synchronized with the server to play perfectly synced audio. It's not a standalone player, but an extension that turns your existing audio player into a Sonos-like multiroom solution. Audio is captured by the server and routed to the connected clients. Several players can feed audio to the server in parallel and clients can be grouped to play the same audio stream. One of the most generic ways to use Snapcast is in conjunction with the music player daemon (MPD) or Mopidy. The encoded chunks are sent via a TCP connection to the Snapclients. Each client does continuous time synchronization with the server, so that the client is always aware of the local server time. Every received chunk is first decoded and added to the client's chunk-buffer. Knowing the server's time, the chunk is played out using a system dependend low level audio API (e.g. ALSA) at the appropriate time. Time deviations are corrected by playing faster/slower, which is done by removing/duplicating single samples (a sample at 48kHz has a duration of ~0.02ms).






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.