GithubHelp home page GithubHelp logo

bpmerkel / midipianojukebox Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 4.76 MB

.NET Blazor MIDI Jukebox for MIDI piano and thousands of MIDI files

License: MIT License

HTML 28.44% C# 70.71% CSS 0.85%
csharp blazor midi-player jukebox-application

midipianojukebox's Introduction

MIDI Piano Jukebox

My wife purchased a Baby Grand Player Piano, and much to my delight, it included MIDI Out and In connections. Further, I inherited a PC from my father where he had accumulated over 170,000 MIDI files from varying genres.

Thus commenced my challenge: to find (or create) a MIDI Jukebox application to navigate through the thousands of MIDI files, enable rating, remote management, and display any metadata that could help me sort and filter through them all. I found a few small apps that were file and folder-based, but none that gave a comprehensive Jukebox experience with customizable Playlists, a queue, and the ability to rate songs as they were played (some of the MIDI songs just didn't fit my taste for the Piano).

And since .NET 8 released with more Blazor features, I knew the time was nigh to craft a Jukebox solution myself, where I could run on an old laptop, and use a (now wireless via Bluetooth) USB MIDI adapter into the piano. The laptop serves as a dedicated web server that runs on the Windows device connected to the Piano.

I first evaluated MIDI NuGet packages with LINQPad--to read through the MIDI files and iventory them into a LiteDB document database. Then play the MIDI files through Windows' sequencer, and switchable to the Bluetooth MIDI adapter to the piano.

Here are the major technologies for the solution:

  • .NET 8
  • ASP.NET Core 8
  • Blazor (server-side)
  • MudBlazor Material UI Components
  • LiteDB Document Database
  • Managed MIDI for MIDI-file reading, parsing, playing

midipianojukebox's People

Contributors

bpmerkel avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.