Code Monkey home page Code Monkey logo

midislicer's Introduction

MidiSlicer and Midi library

Midi is a small library providing a full featured, easy to use managed wrapper over Microsoft Windows' MIDI API, as well as providing for reading, writing and manipulating MIDI files and in-memory MIDI sequences. It is smaller than other libraries like Wet Dry MIDI and lower level in many ways.

I do some MIDI sequencing and recording and I found it helpful to be able to splice sections out of a MIDI file, but I didn't have a tool that made it easy to do. In the process of creating such a tool, I made a Midi assembly that contained the core MIDI file manipulation options. I also wrote some remedial playback code at first, which used the 32-bit Windows MIDI API.

That library grew as I added more features and shored up what I had. I added some more demos, streaming support, MIDI input support, device enumeration and more. Eventually, I had wrapped maybe 90-95% of the API, and had a battery of MIDI manipulation functions for searching and modifying in memory sequences and files.

In the process, MidiSlicer moved from a first class application to just another demo project, so the solution is still named MidiSlicer - I'm stuck with the GitHub of that name. The core library project is named Midi.

I wrote a comprehensive article at codeproject on using this library, and I recommend using it. The latest version of the code is always here at GitHub.

midislicer's People

Contributors

codewitch-honey-crisis avatar koseng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

midislicer's Issues

Undefined External Error with MidiOutputDevice

Hi there HCW, I am trying to use MIDI for a C# WinUI3 app and got an undefined external error when trying to open a MIDI device. It is not the device because it works with the UWP sample prog, among other things. In your MIDI Library article I have used the (Enumerating MIDI Devices) code and all worked well with the devices being recognized and put into ObservableCollections. When I wanted to add a test button to play a chord (Opening a device and sending output from your article) it gives the error. There is an exception at this line: " _CheckOutResult(midiOutOpen(ref _handle, _index, _outCallback, 0, CALLBACK_FUNCTION));" , in class MidiOutputDevice. Any thoughts? It seems like I may have to use the Windows.Devices.MIDI instead for the MIDI in/out functions.
btw We chatted previously regarding the Library about a year and a half ago and you helped me with the code related to creating a .dll library. However, I put the models from MIDI into my app so I could see exactly what was going on if there was a problem.

MIDI输入会导致软件崩溃

您好:
我在使用这个项目,开发自己的工程。
遇到一个问题是,MIDI输入的时候,会出现软件崩溃的情况。
测试了MidiMonitor也存在同样的问题。

复现步骤:
打开MidiMonitor界面,快速的通过MIDI上发数据到PC,MidiMonitor会崩溃

问题定位:
屏蔽掉_inputDevice_Input函数内的代码。
在原代码里面这里往主线程的控件内写数据,如果不写数据,是不会出现软件崩溃现象的

请问这个问题该怎么解决

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.