IPB

Welcome Guest ( Log In | Register )

14 Pages V  « < 7 8 9 10 11 > »   
Reply to this topicStart new topic
BASSMIDI MIDI synthesiser for Windows XP/Vista/7, A new SoundFont based MIDI synth for Win7/Vista/XP
Lancelot Chan
post Aug 22 2012, 17:14
Post #201





Group: Members
Posts: 11
Joined: 22-August 12
From: Hong Kong
Member No.: 102563



I don't have XMPlay midi plug-in. :|

After Edahs taught me to send Sysex bytes to Cakewalk to do a GS reset, I can select bank now. Thanks!

This post has been edited by db1989: Aug 23 2012, 19:12
Reason for edit: Posts can be edited for up to an hour. Please try to use this facility rather than posting again multiple times. Merged.
Go to the top of the page
+Quote Post
Lancelot Chan
post Aug 22 2012, 18:13
Post #202





Group: Members
Posts: 11
Joined: 22-August 12
From: Hong Kong
Member No.: 102563



Edahs tried XMPlayer and at XMplayer he can changes bank without any problem, even without GS or GM reset. So please check with bassmidi. smile.gif

Also, he mentioned that foobar2000 midi plugin has the same limitation. So please check along as well. Thanks!



I also tested something out. When I try to use my midi keyboard connected with UX16 to the X-FI hardware synth, there was no noticeable delay. But when I try to assign output MIDI port as bassmidi driver, there is a delay. This render me unable to record with the bassmidi device and only reserve it as playback.

This post has been edited by db1989: Aug 23 2012, 19:12
Reason for edit: as above
Go to the top of the page
+Quote Post
RichNagel
post Aug 23 2012, 01:13
Post #203





Group: Members
Posts: 81
Joined: 31-March 11
Member No.: 89441



QUOTE (mudlord @ Aug 22 2012, 04:42) *
How does that work out when you sequence? do you have to select more than 1 synthesiser instance?


As Lancelot replied, you simply assign the various ports to various channels in your MIDI sequencer (of course, after configuring the various MIDI devices within the sequencers MIDI setup and configuration section).

Here's what the MIDI device config looks like in Cakewalk Pro 3.01 (of course, you can select multiple devices, and set their order within that selection box):

http://jasonwilliams400com.startlogic.com/...nfiguration.gif

...and in this screenshot:

http://jasonwilliams400com.startlogic.com/...ional_v3.01.jpg

...you could change the "Port" box for the various channels to assign that specific channel to a MIDI port.

I use this all the time when MIDI sequencing with my SBLive, as I can load a specific SoundFont into one hardware synth (SB Live! Synth A), and another specific SoundFont into the second hardware synth (SB Live! Synth B).

There are also quite a few MIDI files out there (my own included) that use more than 16 MIDI channels. This (of course) allows you to use more than 16 instrement presets/patches within a single MIDI file smile.gif


@Lancelot,

For the bank selection problem, you might try configuring your MIDI sequencer for another bank selection method.

I'm only familiar with the old Cakewalk Professional v3.01, but in that MIDI sequencer you can navigate to a dialog window that has:

Bank Select method

...with choices of:

Normal
Controller 0 Only
Controller 32 Only
Patch 100.127

I've noticed for certain hardware and software synthsesizer that I sometimes had to change the bank selection method in order for the synth to be able to change banks. I don't remember what the setting should be for the BASSMIDI driver (as my WeedsGM3 SoundFont only has a single bank for each patch/preset), but you might try "Normal" for the bank select method (if your MIDI sequencer supports changing that option).

Also, as Mudlord said, you it's also a good idea to send a GS reset sysex for any MIDIs that will be used with the BASSMIDI Driver (or XMPlay's "MIDI Plugin" as well).


QUOTE (Lancelot Chan @ Aug 22 2012, 12:32) *
I also tested something out. When I try to use my midi keyboard connected with UX16 to the X-FI hardware synth, there was no noticeable delay. But when I try to assign output MIDI port as bassmidi driver, there is a delay. This render me unable to record with the bassmidi device and only reserve it as playback.


There is a slight bit of latency with the BASSMIDI driver (approx. 80ms or so), which can make it difficult to sequence (or play your MIDI keyboard) in real-time.

But, if you simply want to synchronize the MIDI tracks of a hardware MIDI synthesizer (such as an SBLive, or your X-Fi) and the BASSMIDI Driver (or another software synth) within your MIDI sequencer:

Some MIDI sequencers (such as Cakewalk Pro 3.01) has a setting box to "slide" the time of a specific MIDI channel in real-time. See this pic that I linked to above ( http://jasonwilliams400com.startlogic.com/...ional_v3.01.jpg )... the "Time+" section allows you to enter a positive or negative number (in MIDI "ticks"), which "slides" the played events earlier (or later) in real-time.

Using that "Time+" box, you can synchronize a software synth to a hardware synth PERFECTLY when the sequencer is playing the song smile.gif I use this quite a bit when I want to synchronize my SBLive (with a SoundFont loaded) with the Yamaha S-YXG50 software synth (when I want to use one of the heavy rock distortion guitars that it provides) smile.gif


Refer to this document for a litte better explaination of the above:

http://jasonwilliams400com.startlogic.com/...XG/YXG50Utl.txt

in the sections "Yamaha S-YXG50 Software Synthesizer WDM Driver Latency" and "Converting Latency Delay to MIDI Sequencer Timebase Ticks".


This post has been edited by RichNagel: Aug 23 2012, 01:19
Go to the top of the page
+Quote Post
Lancelot Chan
post Aug 23 2012, 07:43
Post #204





Group: Members
Posts: 11
Joined: 22-August 12
From: Hong Kong
Member No.: 102563



I tried those bank selecting methods. None worked without having done a GS reset.

I understand the sliding synchronization..... I just want to be able to play the keyboard and have realtime feedback so I can dump my problematic X-FI hardware synth altogether. Now I've to use hardware synth for input, and than bassdriver midi for mixing because only the latter handle the chorus and reverb as it should be.
Go to the top of the page
+Quote Post
kode54
post Aug 23 2012, 07:59
Post #205





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



I asked edahS to test this, but I guess I'll ask the topic to do so instead. Please test if bank changing is any different with these:

http://kode54.foobar2000.org/moo/foo_midi.fb2k-component
http://kode54.foobar2000.org/moo/bassmididrv.exe
Go to the top of the page
+Quote Post
Lancelot Chan
post Aug 23 2012, 08:38
Post #206





Group: Members
Posts: 11
Joined: 22-August 12
From: Hong Kong
Member No.: 102563



I hope the latency issue can be eliminated.... I suppose software synth doesn't always equal to latency or software sampler like Gigasampler won't work. sad.gif



The bank selection still doesn't work on me...

This post has been edited by db1989: Aug 23 2012, 19:10
Reason for edit: as in posts #201 and #202 + removing unnecessary quote of kode54
Go to the top of the page
+Quote Post
[JAZ]
post Aug 23 2012, 18:45
Post #207





Group: Members
Posts: 1711
Joined: 24-June 02
From: Catalunya(Spain)
Member No.: 2383



RE: latency.

XAudio:
const char * err = sound_driver->open(GetDesktopWindow(), 44100, 2, sound_out_float = TRUE, 88 * 2, 30);
DSound:
err = sound_driver->open(GetDesktopWindow(), 44100, 2, sound_out_float = FALSE, 88 * 2, 50);

Interface:
virtual const char* open( void * hwnd, unsigned sample_rate, unsigned nch, bool floating_point, unsigned max_samples_per_frame, unsigned num_frames ) = 0;

I really don't understand why you use those weird settings. I haven't looked in detail if you *really* are setting 30 (or 50) *FRAMES* of buffer size, and using just 88 samples in each frame. (You know.. this is not video)


A normal application would use, for example 6 frames of 768 samples of buffer size, which means 69 milliseconds. This works for me with directsound on my application. Of course, smaller frames should allow for less latency on the MIDI receiving end, but if you have so much audio latency, the gain is lost.

Also, i find it even more strange that you've decided to use XAudio... Why? Why not WASAPI? With wasapi *shared* mode, i have 25ms of latency, and I can get down to 10ms with wasapi exclusive, with an integrated soundcard.

I downloaded the source, and wanted to try this myself (i.e. modify the driver to support wasapi), but I am a bit confused still with the "driver". (Am I really supposed to reboot the machine each time i compile the dll?)


[Edit: corrected a couple of things]

This post has been edited by [JAZ]: Aug 23 2012, 18:55
Go to the top of the page
+Quote Post
kode54
post Aug 23 2012, 21:31
Post #208





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



With the versions I just posted, bank selection should work just fine as long as you don't issue a GM reset, or as long as you issue a GS or XG reset afterward.
Go to the top of the page
+Quote Post
mudlord
post Aug 24 2012, 08:50
Post #209





Group: Developer (Donating)
Posts: 797
Joined: 1-December 07
Member No.: 49165



QUOTE ([JAZ] @ Aug 23 2012, 12:45) *


I downloaded the source, and wanted to try this myself (i.e. modify the driver to support wasapi), but I am a bit confused still with the "driver". (Am I really supposed to reboot the machine each time i compile the dll?)


No, just have to make sure no other apps have loaded the driver. For some reason, things like Origin, the Flash player, and Steam will load it.
Go to the top of the page
+Quote Post
kode54
post Aug 24 2012, 20:40
Post #210





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



Okay, Ian got back to me. This is the correct behavior. GM1 is not supposed to support bank change controls. XMPlay is in error, as he hasn't updated it with that change yet. (Someone reported a file to him which uses GM1 reset, and misbehaves if the bank change messages it contains have any effect.)

I'll go ahead and push the BASSMIDI Driver and foo_midi changes.
Go to the top of the page
+Quote Post
RichNagel
post Aug 25 2012, 15:42
Post #211





Group: Members
Posts: 81
Joined: 31-March 11
Member No.: 89441



QUOTE (kode54 @ Aug 24 2012, 14:40) *
Okay, Ian got back to me. This is the correct behavior. GM1 is not supposed to support bank change controls.


Man, you learn something new every day <grin>. In all of my years of "MIDI-ing", I had NO idea that bank changes weren't part of the GM1 specs.

I 've used them as far back as my original Wave Blaster 1 (and Cakewalk Pro, circa 1994-1995), and simply assumed that was part of the GM1 specs.


QUOTE (kode54 @ Aug 24 2012, 14:40) *
I'll go ahead and push the BASSMIDI Driver and foo_midi changes.


Do you mean that you're going to add the bank change feature to the BASSMIDI Driver (in GM1 mode)? If so, that would be great smile.gif If you are, one small request... add BOTH controller "0" as well as "32" to be recognized as bank change MIDI controllers.

This post has been edited by RichNagel: Aug 25 2012, 15:43
Go to the top of the page
+Quote Post
bennetng
post Aug 25 2012, 16:34
Post #212





Group: Members
Posts: 215
Joined: 22-December 05
Member No.: 26587



QUOTE (RichNagel @ Aug 25 2012, 22:42) *
Do you mean that you're going to add the bank change feature to the BASSMIDI Driver (in GM1 mode)? If so, that would be great smile.gif If you are, one small request... add BOTH controller "0" as well as "32" to be recognized as bank change MIDI controllers.

This would be a nice idea but a real soundblaster and the sf2 format only support one bank select method at a time (either MSB or LSB, not simultaneously). I mean, in order to use all MSB and LSB simultaneously, we need to load 128 separate sf2 files.

This post has been edited by bennetng: Aug 25 2012, 16:36
Go to the top of the page
+Quote Post
kode54
post Aug 25 2012, 19:42
Post #213





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



No, I mean I just pushed the changes to make bank changes work on all modes except for GM1.

And the only thing I can do for bank change LSB is reroute it to bank change MSB. I can't change how BASSMIDI recognizes bank change messages. (It ignores LSB.)
Go to the top of the page
+Quote Post
mudlord
post Aug 26 2012, 02:06
Post #214





Group: Developer (Donating)
Posts: 797
Joined: 1-December 07
Member No.: 49165



and the VST driver is now updated with the same audio output crashfixes as the BASSMIDI one.
Go to the top of the page
+Quote Post
kode54
post Aug 26 2012, 03:19
Post #215





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



I implemented dual port support in both drivers, please test and verify that both ports are acting independently:

http://kode54.foobar2000.org/bassmididrv.exe
http://kode54.foobar2000.org/vstmididrv.exe
Go to the top of the page
+Quote Post
bennetng
post Aug 26 2012, 09:00
Post #216





Group: Members
Posts: 215
Joined: 22-December 05
Member No.: 26587



bassmididrv's volume control is broken again in my system, using win7 x64
Go to the top of the page
+Quote Post
kode54
post Aug 26 2012, 10:50
Post #217





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



Fixed, at the same link, and at the official site.
Go to the top of the page
+Quote Post
bennetng
post Aug 26 2012, 12:03
Post #218





Group: Members
Posts: 215
Joined: 22-December 05
Member No.: 26587



Thanks. I have Roland SC-D70 (SC-8820 compatible) and SONAR producer 5. If you and other developers want to check GS compatibility (such as record MIDI files for references, checking behavior etc) I may be able to offer some help.

SC-D70 manual (appendix section contains some MIDI spec):
http://www.roland.com/support/article/?q=m...&id=1811333

I checked that both ports in bassmididrv seem working independently.
Go to the top of the page
+Quote Post
RichNagel
post Aug 26 2012, 15:00
Post #219





Group: Members
Posts: 81
Joined: 31-March 11
Member No.: 89441



QUOTE (bennetng @ Aug 26 2012, 06:03) *
I checked that both ports in bassmididrv seem working independently.


Ditto, seems to be working just fine :thumbsup: smile.gif
Go to the top of the page
+Quote Post
kode54
post Aug 27 2012, 08:05
Post #220





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



I uploaded a newer version of both drivers here, and BASSMIDI driver at the official site as well.

http://kode54.foobar2000.org/bassmididrv.exe
http://kode54.foobar2000.org/vstmididrv.exe

New is 64 bit support in BASSMIDI, thanks to [JAZ]. I also implemented my own 64 bit support in the VSTi driver, which includes the VST host wrapper from foo_midi, so both 32 and 64 bit drivers can support both 32 and 64 bit VST instruments.
Go to the top of the page
+Quote Post
mudlord
post Aug 27 2012, 11:26
Post #221





Group: Developer (Donating)
Posts: 797
Joined: 1-December 07
Member No.: 49165



And somehow the MSVC projects to compile the driver got narc'ed it seems, and the vst host source isn't there.
And there is a issue on XP systems with CancelIoEx, which is a Vista and up functions. When it could use CancelEx....

bleh, I suppose the source is a "work in progress" for the VSTi driver?
Go to the top of the page
+Quote Post
kode54
post Aug 27 2012, 19:18
Post #222





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



CancelIoEx issue is fixed and uploaded in the same place.

Missing source files have also been pushed to the repository. I also need to make a project file and solution for the driver, which would be easier than using the current batch file method.
Go to the top of the page
+Quote Post
RichNagel
post Aug 27 2012, 20:40
Post #223





Group: Members
Posts: 81
Joined: 31-March 11
Member No.: 89441



Seems that a problem has cropped up with one of the newer versions of the BASSMIDI Driver sad.gif

I'm not sure which version that it was (I installed the one at http://kode54.foobar2000.org/bassmididrv.exe ), but all I hear are a lot of little pops and clicks when playing a MIDI file (no instruments/note/music at all). This when the BASSMIDI Driver is set as the main Windows MIDI device (playing a MIDI file in the WinDoZe Media Player), as well as in my MIDI sequencer.


(edit) BTW, a feature request (of course, after the above gets sorted out): It would most excellent to be able to assign different SoundFonts to the two seperate BASSMIDI Driver synth ports smile.gif

This post has been edited by RichNagel: Aug 27 2012, 20:42
Go to the top of the page
+Quote Post
kode54
post Aug 27 2012, 20:50
Post #224





Group: Admin
Posts: 4505
Joined: 15-December 02
Member No.: 4082



Assigning SoundFonts separately may not be easy, as both ports are currently implemented as the first and last 16 channels of the same instance of BASSMIDI. Implementing separate SoundFont lists would require a separate dialog tab on the configuration program, then loading both lists separately in the driver, then loading the fonts separately into instances of the synthesizer.

I updated both installers to increase the DirectSound latency. I wasn't careful when importing the settings from the updated 64 bit version source. [JAZ] was not aware of how much minimum latency the DirectSound code I use requires.
Go to the top of the page
+Quote Post
RichNagel
post Aug 27 2012, 21:26
Post #225





Group: Members
Posts: 81
Joined: 31-March 11
Member No.: 89441



QUOTE (kode54 @ Aug 27 2012, 14:50) *
Assigning SoundFonts separately may not be easy, as both ports are currently implemented as the first and last 16 channels of the same instance of BASSMIDI. Implementing separate SoundFont lists would require a separate dialog tab on the configuration program, then loading both lists separately in the driver, then loading the fonts separately into instances of the synthesizer.


Understood, thanks for the info smile.gif


QUOTE (kode54 @ Aug 27 2012, 14:50) *
I updated both installers to increase the DirectSound latency. I wasn't careful when importing the settings from the updated 64 bit version source. [JAZ] was not aware of how much minimum latency the DirectSound code I use requires.


Still having a problem with the new version. I'm not hearing the rapid clicks and pops (like I was before), but only hear the first note or so of the MIDI file, and then nothing/silence.

This post has been edited by RichNagel: Aug 27 2012, 21:29
Go to the top of the page
+Quote Post

14 Pages V  « < 7 8 9 10 11 > » 
Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 25th April 2014 - 04:31