GithubHelp home page GithubHelp logo

Comments (12)

mdsitton avatar mdsitton commented on July 3, 2024

Also looking at the code i could see other functionality as fitting into seperate assemblies as well, but those aren't quite as core to making it fully out of the box cross platform.

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

Hi,

Yes I know there are libraries with cross-platform devices API. I have plans to make DryWetMIDI fully cross-platform but there are more important tasks at now related to what people really need from the library.

DllImports pointing to WinApi functions are not problem for .NET Core library. More than that, .NET Core itself uses them. Also .NET Core 3 brings WPF and WinForms support, but for Windows only at now. So it's not absolutely bad if some part of a .NET Core library is targeting specific OS :) Of course I'll make it cross-platform somewere in the future.

At the beginning it was supposed that the library will provide API only for MIDI files. But I see that working with MIDI devices (sending/receiving events, playing back) is very important thing that people actively use. So I decided to extend the library to cover more scenarios (and judging by letters from users this decision was right).

from drywetmidi.

mdsitton avatar mdsitton commented on July 3, 2024

I'm not saying to remove the midi device support. This is just a suggestion about reorganizing it into smaller chunks of functionality.

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

Do you mean to move it to another project inside the solution?

from drywetmidi.

mdsitton avatar mdsitton commented on July 3, 2024

Yeah that's what i mean

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

It makes sense. I think I'll make a small release soon and then will plan library restructuring.

from drywetmidi.

andreasbalzer avatar andreasbalzer commented on July 3, 2024

Adding on the request, I noticed OutputDevice.GetByName("Microsoft GS Wavetable Synth"); in UWP apps in debug mode works, but release mode fails with "'Unresolved P/Invoke method 'winmm.dll!midiOutGetNumDevs' from this method. Please look for this method in build warnings for more details. '" as UWP has a dedicated abstraction to be used https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/midi

A means to use existing cross-platform libraries would be great, or a way to add support for other platforms by app developers.

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

@andreasbalzer I've created new issue #95 from your comment.

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

@andreasbalzer #95 is fixed.

from drywetmidi.

dan-oak avatar dan-oak commented on July 3, 2024

For people like me, who just landed here after finding out about the problem, could you guys maybe suggest how to hack around the missing support problem? Maybe by adding specific dlls to project assemblies or anything else. I'm developing a Linux version of a game and the code is already failing on OutputDevice.GetAll() by trying to call winmm.dll. I'm not familiar currently with a way to package this library (and potentially any other ones down the code) into my assemblies.

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

@dan-oak Unfortunately Devices API of the library doesn't support Linux. Right now I'm in process of macOS support, but I can't provide any date when DryWetMIDI will support Linux.

from drywetmidi.

melanchall avatar melanchall commented on July 3, 2024

DryWetMIDI 6.0.0 has been released which has changed internal structure. So now the library includes 4 binaries: 1 main dll and 3 native binaries for cross-platform Devices API. So it seems it's not good to split the library even further.

from drywetmidi.

Related Issues (20)

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.