Comments (12)
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.
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.
DllImport
s 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.
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.
Do you mean to move it to another project inside the solution?
from drywetmidi.
Yeah that's what i mean
from drywetmidi.
It makes sense. I think I'll make a small release soon and then will plan library restructuring.
from drywetmidi.
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.
@andreasbalzer I've created new issue #95 from your comment.
from drywetmidi.
@andreasbalzer #95 is fixed.
from drywetmidi.
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.
@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.
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)
- HELP !!! Notes in panel to midi file?? HOT 9
- please help a noob HOT 6
- Remove all notes example from the README not working HOT 9
- Using wetdrymidi in C# project causes error CS0009
- InputDevice event listening crash HOT 2
- Crash when running in Unity on M2 MacBook HOT 3
- MidiDeviceException Internal error HOT 9
- Android Support
- Unity cannot exit after use HOT 10
- MidiClock sync problem HOT 6
- MIDI Tempo changes count returns 1 but the song has 6 tempo changes. HOT 1
- add il2cpp mode HOT 5
- CustomChunk no mididata throw error HOT 4
- CSharp Code Error HOT 2
- MIDI File returns error: InvalidMetaEventParameterValueException HOT 1
- Unable to send Note-On event to device HOT 8
- Cannot get track name to change HOT 10
- How to use DryWetMidi in Visual Basic (VS 2022) ? HOT 20
- Plans for MIDI 2.0 Support? HOT 2
- Skipping notes HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drywetmidi.