Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Concerning: foo_midi (Read 7719 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Concerning: foo_midi

Right, I've downloaded foo_midi from Kode54's page, and it states that I need "a GM-compatible DXi, such as Edirol Sound Canvas DXi or Hyper Canvas."

I've searched for these, and found they were retail products.

What are is a sound canvas/GM-compatible DXi and is there a free equivalent?

Concerning: foo_midi

Reply #1
a "DXi!" is a Direct-X Software-Synthesizer

So, basically Sofware-MIDI through Direct-X.

- Lyx
I am arrogant and I can afford it because I deliver.

Concerning: foo_midi

Reply #2
Why do we need a "Dxi" to make this plugin work with foobar while nothing is needed with the in_midi plugin for Winamp? And where can a Dxi be found?

Concerning: foo_midi

Reply #3
Yeah, any reason why the plugin doesn't appear to work with the standard Midi devices e.g. the Microsoft Software Synthesizer that's the default on everyone's windows installation?

Concerning: foo_midi

Reply #4
There's no way to get the output of those in the audio processing pipeline  - DSP's, ReplayGain, sample-accurate seeking and whatever else would not work. You could just as well use Winamp without those features

Concerning: foo_midi

Reply #5
OK, so were can i find a compatible plugin for foo_midi?

Concerning: foo_midi

Reply #6
Quote
There's no way to get the output of those in the audio processing pipeline  - DSP's, ReplayGain, sample-accurate seeking and whatever else would not work. You could just as well use Winamp without those features

I don't mind having not having those snazzy features for .midi's. I just want to play them on my favourite audio player, 'tis all.

Concerning: foo_midi

Reply #7
Quote
I don't mind having not having those snazzy features for .midi's. I just want to play them on my favourite audio player, 'tis all.

Unfortunately for you, your favorite player requires proper input plugins to support those features to fit in with the rest of the architecture. This is unlikely to change.

Concerning: foo_midi

Reply #8
Beh, so there won't be a free midi plugin for foo_midi in the near future..

A question: I stumbled across this thing while searching for "DXI MIDI" in google.

http://www.directxfiles.com/developers.htm < Would this be what I need?

Concerning: foo_midi

Reply #9
I want to know why not VSTi? Many people said that VSTi is better than DXi.

Concerning: foo_midi

Reply #10
For one, VSTi does not support System Exclusive messages. Actually, it was because I already had experience using DXi synthesizers and found an example host in the SDK.

I have never actually used any VSTi host sequencers. Plus, the idea of having to install the same plug-in in multiple directories, or guess which common directory the user has their plug-ins installed in would be a minor pain.

 

Concerning: foo_midi

Reply #11
Kode54 please explain me how to make this plugin work. What exactley must I download (or buy) ??

Concerning: foo_midi

Reply #12
Quote
Kode54 please explain me how to make this plugin work. What exactley must I download (or buy) ??


I second this.

Concerning: foo_midi

Reply #13
For now, you must acquire a proper DXi synthesizer. Either Virtual Sound Canvas DXi, or Hyper Canvas. As far as I know, only the former supports GS MIDI, including SysEx messages for activating multiple drum channels.

I decided not to support the synthesizer properties dialog just yet, as each instance of the synthesizer would need its own dialog. I've also found that most of them don't remember preferences across sessions, unless I happen to support saving the performance data. I found that performance data is usually around 300KB, and includes a LOT of data specific to the synthesizer state for the current or most recently played sequence data, including current instruments, volume levels, reverb levels, (which can only be changed by standard SysEx with VSC DXi... damn you Hyper Canvas for not being GS.) possibly even lots of internal state variables such as the last used volume envelopes and whatnot. Too much song specific data to store just to remember a polyphony level higher than the default.

There's also the LiveSynth Pro DXi, but it has some annoying deficiencies:

1) It cannot load more than one SoundFont to each bank number. You cannot load a GM bank to bank 0 and then overlay a GS add-on bank starting at bank 0.
2) It cannot be configured to load a certain preset or bank at startup. It will always have to be reconfigured for every single instance. Modifying foo_midi to always keep one instance running and reset it between songs is too stupid for me to consider.

Maybe, with luck, someone will write a DXi interface into TiMidity++. That is, if TiMidity++ supports multiple instances in one process. Even though (I think I remember) it's C++, it might use static variables and such...

Writing a frontend to the TiMidity++ executable is not a good idea. For one, the process contains no mechanism for triggering a "clean" shutdown without modification, such as what zdoom requires. Terminating the task is probably not the cleanest way to shut it down.

Plus, each instance will then load its own copy of the current instrument bank. It will not be able to keep the bank resident for the session, with the option to unload it at any time. Start up, reload instrument bank, render until terminated, unload set, shut down. Every time.

I suppose the same problem of reloading exists for the current DXi's, but at least they share the instrument bank across instances. No, I am not modifying it to keep one instance running. Resetting it between songs would probably be flaky at best.

Concerning: foo_midi

Reply #14
Quote
I decided not to support the synthesizer properties dialog just yet, as each instance of the synthesizer would need its own dialog.

When shall we expect config dialog support (even without saving)? How many synth instances are initialized during average foobar session?

Concerning: foo_midi

Reply #15
One instance is created every time you play a file, and then destroyed when you stop. How do you like the idea of reconfiguring every time that happens? No, I do not like the idea of keeping one instance running the whole time and somehow resetting it properly and starting a new MIDI stream through the same graph.

Concerning: foo_midi

Reply #16
Quote
How do you like the idea of reconfiguring every time that happens?
[a href="index.php?act=findpost&pid=210042"][{POST_SNAPBACK}][/a]

I like this idea  So if there's no real dificulties in implementing command to popup configuration, it would be nice to have it.

Concerning: foo_midi

Reply #17
I guess I found a bug.. When I try to load .rmi file, foobar says "Reaing info" and stops responding, taking all CPU power.

Also, it would be nice if .mid and .rmi extentions could be associated with foobar using foo_assoc.exe.

Concerning: foo_midi

Reply #18
Please upload the problem file and I will fix it soon. As for DXi config, I have no intention of making a resident DXi instance. I may make a system for popping up the properties dialog on a fresh instance from configuration just for setting the defaults, but complain to the developers of those expensive plug-ins for not supporting a global system or per user default somewhere in the registry or under your user profile directory. Even in sequencer software, it has to be a rather a pain just to save an empty file with their plug-ins inside or save a huge performance data file on disk just to restore your basic defaults every time you start a new project.

LiveSynth Pro is the most annoying example because it doesn't load any preset on startup and probably doesn't support performance data to store presets either. The only option is to manually load a preset every time you start an instance, so forget about ReplayGain scanning your files while you play them.

Concerning: foo_midi

Reply #19
Quote
Please upload the problem file and I will fix it soon.[a href="index.php?act=findpost&pid=244520"][{POST_SNAPBACK}][/a]

It happens to me with any midi file with RIFF header (*.rmi). I'll upload it later, when I'll be at home again

Quote
As for DXi config, I have no intention of making a resident DXi instance.

I know it  All I wanted is just some config dialog popping up every time a new song loads, so I'd be able to adjust volumes of each instrument. Of course this should be configured, coz not everyone would be happy with such dialog popping up every time

PS: Maybe I don't understand something.. I'm sorry, if so..

Concerning: foo_midi

Reply #20
Kode54: Couldn't you include a button for the dxi's settings dialog?

I have got a midi out vsti (you never told us that the plugin handles vsti), which basicly outputs the same as a plain midi plugin would. This means that the files would sound the same as in my midi composing program, and my software keyboard.
But when I enable it, it gives no sound, probloby because it isn't set up.

Concerning: foo_midi

Reply #21
Uploaded example RMI file. Here it is: fureli~1.rmi

Edit: Seems like it's fixed in new version. Thanks, Kode54