You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(90) |
Sep
(38) |
Oct
(22) |
Nov
(3) |
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(40) |
Feb
(119) |
Mar
(236) |
Apr
(41) |
May
(45) |
Jun
(10) |
Jul
(9) |
Aug
(12) |
Sep
(5) |
Oct
(17) |
Nov
(2) |
Dec
(3) |
2006 |
Jan
(23) |
Feb
(36) |
Mar
(49) |
Apr
|
May
|
Jun
(1) |
Jul
(11) |
Aug
(11) |
Sep
(15) |
Oct
(30) |
Nov
(36) |
Dec
(13) |
2007 |
Jan
|
Feb
(1) |
Mar
|
Apr
(1) |
May
(3) |
Jun
(7) |
Jul
(4) |
Aug
(1) |
Sep
(19) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
2008 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
(5) |
Dec
|
2009 |
Jan
(26) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(26) |
Sep
(6) |
Oct
(5) |
Nov
(6) |
Dec
(6) |
2010 |
Jan
(3) |
Feb
|
Mar
(5) |
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(6) |
Aug
(8) |
Sep
(220) |
Oct
(9) |
Nov
(27) |
Dec
(33) |
2012 |
Jan
|
Feb
(4) |
Mar
(9) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2013 |
Jan
(6) |
Feb
(20) |
Mar
(6) |
Apr
(3) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(17) |
Nov
(2) |
Dec
|
2014 |
Jan
(9) |
Feb
(1) |
Mar
(11) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(2) |
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Joe E. <jo...@em...> - 2005-05-15 04:58:49
|
Rib Rdb wrote: >On 5/14/05, Joe Emenaker <jo...@em...> wrote: > > >>Also, what does everyone else think about JSL being able to receive a >>patch even when the SysexGetDialog isn't open? For example, if JSL is >>just sitting there, and you dump a patch from a synth, it could pop up a >>message saying "JSL just received a patch dump which looks like a Alesis >>DM5 Bank. Would you like to save it in your current library or discard >>it?". Then, all the SysexGetDialog class would need to do is arrange to >>send out dump requests (and notify the receiving mechanism that a >>certain type of patch is expected). >> >> > >Would it even need to do the notification? We'd just need to make sure >the incoming messages were routed correctly, wouldn't we. > > I've thought about it some more... and here's another idea of how the sysex input queues could work: 1 - A message comes into a given MIDI interface. 2 - The queue manager would get a list of all of the synthdrivers using that interface as the input (unless the user has selected to not use mutliple MIDI interfaces, in which case it gets a list of all of the synthdrivers). 3 - It checks to see if any of those synthdrivers recognize the patch *taking into account* the input interface and channel/deviceID of the patch versus that of the synthdriver. 4 - If it finds a perfect match, then it adds it to the current library. If it doesn't then it checks all of the synthdrivers to see if they recognize the patch *without* taking into account the input interface and channel/deviceID. If it *does* find a match this time, then there are a few possible reasons, which the user might want to choose between: A - This is a one-time patch dump from some device. Accept it and do nothing else. B - This is a dump from one of the hardware devices in the synthdriver list, but it has changed interfaces and/or channel/deviceID without that data being updated in JSL. Accept the patch *and* change the interface/channel/deviceID of the matching synthdriver to match that of the incoming patch. C - This is a dump from a new device. Accept the patch, and add a new device to the list of synthdrivers. D - Discard the patch entirely. The nice thing is that "B" would be handy for handling problems where a misconfiguration is preventing any communication between JSL and the hardware device. "C" would make it *super* easy to add new instruments to the list of synthdrivers *provided* that JSL could somehow go through all of the available drivers... not just the ones in the users list of configured ones. If it did this, imagine how easy this would be for new users. Basically, they could run JSL, plug their MIDI interface into something, do a patch dump from it, and JSL would magically configure the driver for it. It would make it pretty difficult to *not* have success with JSL. Just a thought. - Joe |
From: Joe E. <jo...@em...> - 2005-05-14 21:07:51
|
Rib Rdb wrote: >On 5/14/05, Joe Emenaker <jo...@em...> wrote: > > >>I think I'm going to investigate implementing a "listener" system with >>the midi input queues.... where various parts of the program add >>themselves as "listeners" to be notified when a message comes in. Seems >>like a better way than to have SysexGetDialog running a timer to poll >>the inport. >> >> >That sounds good. Perhaps each listener should also have a regular >expression or something specifying which messages it wants to get. > > Well, I'm trying to do things the same way the JFC does things... and they usually do things like that with "filters". For example, go look at java.io.FileFilter. It's an interface with one method: boolean accepts(File f) and then you can make your own filters, or use one of a few pre-made generic ones. So, I was thinking of making a pre-made filter which let you turn on/off the various classes of messages: PC, CC, sysex, note on/off, panic, etc. However, there are two reasons I won't be doing that *quite* yet. First, my "QueueObserver" interface only notifies that a message was received and it lets you know which queu it came into. It doesn't give you the actual message. Second, it looks like the lowest-level sysex handlers in JSL immediate discard any non-sysex messages. This is why the MidiMonitor window never shows any CC's, PC's, etc. >>Also, what does everyone else think about JSL being able to receive a >>patch even when the SysexGetDialog isn't open? For example, if JSL is >>just sitting there, and you dump a patch from a synth, it could pop up a >>message saying "JSL just received a patch dump which looks like a Alesis >>DM5 Bank. Would you like to save it in your current library or discard >>it?". Then, all the SysexGetDialog class would need to do is arrange to >>send out dump requests (and notify the receiving mechanism that a >>certain type of patch is expected). >> >> >Would it even need to do the notification? We'd just need to make sure >the incoming messages were routed correctly, wouldn't we. > > Well, I think that, from a user-experience point of view, you wouldn't want various sysex dumps just accumulating in your libraries. If the SysexGetDialog were open, then it could automatically insert them... but I think that, if you didn't have the dialog open, then you're not really "expecting" anything coming in, so it's probably nice to have JSL ask the user. Of course, we could also make this an on/off option, where the user *could* decide to automatically accept incoming dumps. - Joe |
From: Joe E. <jo...@em...> - 2005-05-14 08:05:44
|
Joe Emenaker wrote: > ... the SysexGetDialog class regularly polls the queue and, > apparently, steals the messages out of the queue to put in its *own* > queue. This other queue, in SysexGetDialog doesn't appear to be > accessible to the Driver subclasses. > > The reason for this *seems* to be so that the SysexGetDialog can show > a running count of the bytes received. However, there's no reason it > can't do this while leaving the messages in the original queue. I think I'm going to investigate implementing a "listener" system with the midi input queues.... where various parts of the program add themselves as "listeners" to be notified when a message comes in. Seems like a better way than to have SysexGetDialog running a timer to poll the inport. Also, what does everyone else think about JSL being able to receive a patch even when the SysexGetDialog isn't open? For example, if JSL is just sitting there, and you dump a patch from a synth, it could pop up a message saying "JSL just received a patch dump which looks like a Alesis DM5 Bank. Would you like to save it in your current library or discard it?". Then, all the SysexGetDialog class would need to do is arrange to send out dump requests (and notify the receiving mechanism that a certain type of patch is expected). - Joe |
From: Daniel L. <soc...@ma...> - 2005-05-13 21:53:56
|
----- Original Message ----- From: "Daniel Lyons" <soc...@ma...> Alright, my problem is the midi connection afterall. Well, I pumped the thing through jdk 1.4.2 with the LinuxCharDev thing in, = and the 1.5.0 version - and neither pass the loopback test nor generate a n= ote. Any pointers? Everything else works fine.. I've tried using my main midi d= ev and subsidiary ones linked with aconnect and snd_virmidi. Anyone know? To: "JSynthLib Development" <jsy...@li...> Subject: [Jsynthlib-devel] Help? Date: Fri, 13 May 2005 14:50:58 -0500 >=20 > I'm trying to just get this thing working... >=20 > I've started trying to make a SingleEditor, and it's not working. >=20 > I know JSynthLib is sending MIDI to the keyboard. >=20 > I also know that the sysex string is correct, because when I send=20 > it the bytes straight to the keyboard with a different utility it=20 > works. >=20 > This is what I've got: >=20 > For the Model I just call the superclass and nothing else: >=20 > ---------------------------------------------------------- > public YamahaS80Model(Patch p, int offset) { > super(p, offset ); > } > ---------------------------------------------------------- >=20 > For the Sender, I did this: >=20 > ---------------------------------------------------------- > class YamahaS80Sender extends SysexSender { > private byte[] b =3D { > (byte) 0xF0, 0x43, 0x10, 0x64, > 0, // HIGH > 0, // MID > 0, // LOW > 0, // DATA > (byte) 0xF7 > }; > public YamahaS80Sender(int parameter, int source) { > } > public YamahaS80Sender(int parameter) { > } > public YamahaS80Sender(int high, int mid, int low) { > b[4] =3D (byte) high; > b[5] =3D (byte) mid; > b[6] =3D (byte) low; > } >=20 > public byte[] generate(int value) { > // b[2] =3D (byte) ((channel - 1) + 0xF0); > b[7] =3D (byte) (value); > return b; > } > } > ---------------------------------------------------------------- >=20 > And in the single editor, I'm just playing with two widgets: >=20 > ---------------------------------------------------------------- > addWidget(cmnPane, > new ScrollBarWidget("Volume", patch, 0, 0x7F, 0, lw, > new YamahaS80Model(patch, 0), > new YamahaS80Sender(0x40,0x00,0x00)), > 0, 1, 5, 1, 1); > addWidget(cmnPane, > new ScrollBarWidget("Pan", patch, 0x01, 0x7F, -64, lw, > new YamahaS80Model(patch, 1), > new YamahaS80Sender(0x40,0x70,0x21)), > 0, 2, 5, 1, 2); > -------------------------------------------------------------- >=20 > Any ideas why this isn't working? >=20 > Thanks!! >=20 > Dan >=20 >=20 >=20 >=20 >=20 > -- > ___________________________________________________________ > Sign-up for Ads Free at Mail.com > http://promo.mail.com/adsfreejump.htm >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by Oracle Space Sweepstakes > Want to be the first software developer in space? > Enter now for the Oracle Space Sweepstakes! > http://ads.osdn.com/?ad_ids93&alloc_id=16281&op=3Dclick > _______________________________________________ > Jsynthlib-devel mailing list > Jsy...@li... > https://lists.sourceforge.net/lists/listinfo/jsynthlib-devel --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |
From: Joe E. <jo...@em...> - 2005-05-13 20:13:47
|
Rib Rdb wrote: >That could be a possibility. I think what we really need though is a >way for drivers to start receiving messages as they come in. For >example, some synths (including the motif for some things) use a 2-way >communication protocol to transfer data. I don't think this type of >thing is currently supported by JSynthLib. > > I looked at this closer last night and what I discovered confirms your suspicion. Interestingly, if the messages were left in the sysexInputQueue for that driver's inport, then the driver *would* be able to get to them. However, the SysexGetDialog class regularly polls the queue and, apparently, steals the messages out of the queue to put in its *own* queue. This other queue, in SysexGetDialog doesn't appear to be accessible to the Driver subclasses. The reason for this *seems* to be so that the SysexGetDialog can show a running count of the bytes received. However, there's no reason it can't do this while leaving the messages in the original queue. Perhaps the messages should just be left in the original queue? - Joe |
From: Daniel L. <soc...@ma...> - 2005-05-13 19:51:20
|
I'm trying to just get this thing working... I've started trying to make a SingleEditor, and it's not working. I know JSynthLib is sending MIDI to the keyboard. I also know that the sysex string is correct, because when I send it the by= tes straight to the keyboard with a different utility it works. This is what I've got: For the Model I just call the superclass and nothing else: ---------------------------------------------------------- public YamahaS80Model(Patch p, int offset) { super(p, offset ); } ---------------------------------------------------------- For the Sender, I did this: ---------------------------------------------------------- class YamahaS80Sender extends SysexSender { private byte[] b =3D { (byte) 0xF0, 0x43, 0x10, 0x64,=20 0, // HIGH 0, // MID 0, // LOW 0, // DATA=20 (byte) 0xF7 }; public YamahaS80Sender(int parameter, int source) { } public YamahaS80Sender(int parameter) { } public YamahaS80Sender(int high, int mid, int low) { b[4] =3D (byte) high; b[5] =3D (byte) mid; b[6] =3D (byte) low; } public byte[] generate(int value) { // b[2] =3D (byte) ((channel - 1) + 0xF0); b[7] =3D (byte) (value); return b; } } ---------------------------------------------------------------- And in the single editor, I'm just playing with two widgets: ---------------------------------------------------------------- addWidget(cmnPane, new ScrollBarWidget("Volume", patch, 0, 0x7F, 0, lw, new YamahaS80Model(patch, 0), new YamahaS80Sender(0x40,0x00,0x00)), 0, 1, 5, 1, 1); addWidget(cmnPane, new ScrollBarWidget("Pan", patch, 0x01, 0x7F, -64, lw, new YamahaS80Model(patch, 1), new YamahaS80Sender(0x40,0x70,0x21)), 0, 2, 5, 1, 2); -------------------------------------------------------------- Any ideas why this isn't working? Thanks!! Dan --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |
From: Rib R. <ri...@gm...> - 2005-05-13 17:25:18
|
Sounds good to me. On 5/13/05, Joe Emenaker <jo...@em...> wrote: > As it is now, SysexGetDialog executes a Driver's sendPatchRequest method > from the actionPerformed method in its actionListener. This means that > the Driver's sendPatchRequest runs in the GUI event thread. >=20 > What *that* means is: sendPatchRequest takes a long time (like, with > getting an entire Bank), the entire GUI of JSL freezes.... which defeats > the point of having a progress-bar (which I was working on) and also > defeats the purpose of having regularly-updated "XXX bytes received" > counts in the dialog box. >=20 > On my machine, I just experimented with having SysexGetDialog start a > separate thread to call sendPatchRequest, and it worked like a charm. > GUI updates happen during lengthy (as in... a 60 seconds...) patch dump > requests. >=20 > Does anybody have any objections to my committing this to CVS? >=20 > - Joe >=20 >=20 > |
From: Rib R. <ri...@gm...> - 2005-05-13 17:24:06
|
That could be a possibility. I think what we really need though is a way for drivers to start receiving messages as they come in. For example, some synths (including the motif for some things) use a 2-way communication protocol to transfer data. I don't think this type of thing is currently supported by JSynthLib. On 5/11/05, Joe Emenaker <jo...@em...> wrote: > Joachim Backhaus wrote: >=20 > >>Is there a > >>way to do this? > >> > >> > >Yes, > > > >use > >Thread.sleep > >as you can see in my QuasimidiQuasarSingleDriver. > > > > > Well, I was hoping for something a little better than Thread.sleep. >=20 > Thread.sleep requires a try/catch block, and it also requires you to > wait *longer* than the time needed to transmit, in order to make sure > you don't accidentally start the next transmission too soon. >=20 > Does anybody see any value in a method like: >=20 > sendAndWait(SysexHandler h, int count, int timeout) >=20 > where the message would be sent, and wouldn't return until "count" new > sysex messages had been received or "timeout" seconds (or milliseconds) > had elapsed. If the timeout is reached, an exception would be thrown. >=20 > - Joe >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by Oracle Space Sweepstakes > Want to be the first software developer in space? > Enter now for the Oracle Space Sweepstakes! > http://ads.osdn.com/?ad_id=3D7393&alloc_id=3D16281&op=3Dclick > _______________________________________________ > Jsynthlib-devel mailing list > Jsy...@li... > https://lists.sourceforge.net/lists/listinfo/jsynthlib-devel > |
From: Joe E. <jo...@em...> - 2005-05-13 09:22:39
|
As it is now, SysexGetDialog executes a Driver's sendPatchRequest method from the actionPerformed method in its actionListener. This means that the Driver's sendPatchRequest runs in the GUI event thread. What *that* means is: sendPatchRequest takes a long time (like, with getting an entire Bank), the entire GUI of JSL freezes.... which defeats the point of having a progress-bar (which I was working on) and also defeats the purpose of having regularly-updated "XXX bytes received" counts in the dialog box. On my machine, I just experimented with having SysexGetDialog start a separate thread to call sendPatchRequest, and it worked like a charm. GUI updates happen during lengthy (as in... a 60 seconds...) patch dump requests. Does anybody have any objections to my committing this to CVS? - Joe |
From: Joe E. <jo...@em...> - 2005-05-11 21:38:44
|
Daniel Lyons wrote: >What I'm really looking for is a slider with an editable label > That would be handy. However, it might be equally useful just to make the existing slider accept arrow-buttons for single-digit adjustment (if they don't already). >>First step is to write a driver that can receive and recognize the >>patches dumped from the S80. >>Next, make it so that JSL can request those patches. >>Next, unpack whatever 7-bit encoding their using, if any >> >> I forgot to insert: Get/Set patch names. - Joe |
From: Daniel L. <soc...@ma...> - 2005-05-11 21:17:24
|
----- Original Message ----- From: "Joe Emenaker" <jo...@em...> To: "Daniel Lyons" <soc...@ma...> Subject: Re: [Jsynthlib-devel] XML/SynthEd/S80 Driver Date: Wed, 11 May 2005 12:03:16 -0700 >=20 > Daniel Lyons wrote: >=20 > > I guess SynthEd is in a dev coma. > > > > > Yeah. However, I'd *love* to convince *these* dudes to come on=20 > board: http://nmedit.sourceforge.net/screenshots.html >=20 > or... at least let us bring their editor in. Heheh, that's cool looking. What I'm really looking for is a slider with a= n editable label - eg, so I can type in "120" for an exact 120 rather than = sliding between 115 and 123 or something (which I've found annoying). This= can be helpful when syncing up echos to tempos and whatnot. I intend to a= dd that in to JSynthLib after I'm done with everything else (assuming there= 's not one in there yet... at least it didn't seem to work like that for my= linux system). > First step is to write a driver that can receive and recognize the=20 > patches dumped from the S80. > Next, make it so that JSL can request those patches. > Next, unpack whatever 7-bit encoding their using, if any > Next, start working on an editor without real-time senders > Last, add in the senders. Yeah, I'm making the Single Editor first. I want to make sure I can get th= at working before I continue - that's the important part for me, although I= 'll probably need all the features in (banks/performances/voices/save/load)= . Seems like it's mostly getting a small part working, then adding the res= t is just a matter of cutting and pasting from the sysex docs, more or less. --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |
From: Joe E. <jo...@em...> - 2005-05-11 20:50:05
|
Joachim Backhaus wrote: >>Is there a >>way to do this? >> >> >Yes, > >use >Thread.sleep >as you can see in my QuasimidiQuasarSingleDriver. > > Well, I was hoping for something a little better than Thread.sleep. Thread.sleep requires a try/catch block, and it also requires you to wait *longer* than the time needed to transmit, in order to make sure you don't accidentally start the next transmission too soon. Does anybody see any value in a method like: sendAndWait(SysexHandler h, int count, int timeout) where the message would be sent, and wouldn't return until "count" new sysex messages had been received or "timeout" seconds (or milliseconds) had elapsed. If the timeout is reached, an exception would be thrown. - Joe |
From: Joe E. <jo...@em...> - 2005-05-11 19:05:52
|
Daniel Lyons wrote: >I guess SynthEd is in a dev coma. > > Yeah. However, I'd *love* to convince *these* dudes to come on board: http://nmedit.sourceforge.net/screenshots.html or... at least let us bring their editor in. >Looks like I was wrong.. maybe my S80 can handle one parameter at a time, although I couldn't get that to work through JSynthLib yet. The MIDI spec charts are a bit omplicated. But I think there are maybe 3 ways to transmit changes or something. > > Right. There's usually a way to send a whole patch at a time (for getting/sending banks and patches), and the senders are for when you fiddle with GUI widgets in real-time. First step is to write a driver that can receive and recognize the patches dumped from the S80. Next, make it so that JSL can request those patches. Next, unpack whatever 7-bit encoding their using, if any Next, start working on an editor without real-time senders Last, add in the senders. - Joe |
From: Rib R. <ri...@gm...> - 2005-05-11 18:11:56
|
On 5/10/05, Daniel Lyons <soc...@ma...> wrote: > I'm trying to write a driver... >=20 > My S80 send and recieves some paremeters in groups in the sysex messages,= like: >=20 > [header info] [13 byes for 13 different patch adjustments] [end info] >=20 > Where you have to send it out in a group. >=20 > Does JSynth lib handle this well? I've been poking around at the source = and am unsure. >=20 > So like, if you adjusted one of those 13 adjustments, I need JSynth to se= nd the parameters for all 13 with the changes on the adjusted one. I guess the way to do it would be to make a ParamSender that knows about all thirteen parameters. Also, I'm curious how are you designing your driver. I started creating the XML driver to solve the problems dealing with multiple sysex messages and the huge number of parameters that the Motif has.=20 I'd assume the S80 has the same issues. |
From: Daniel L. <soc...@ma...> - 2005-05-11 16:47:56
|
I guess SynthEd is in a dev coma. Looks like I was wrong.. maybe my S80 can handle one parameter at a time, a= lthough I couldn't get that to work through JSynthLib yet. The MIDI spec c= harts are a bit omplicated. But I think there are maybe 3 ways to transmit= changes or something. I don't know, it's not easy I suppose. I think I'm going to write a short = perl script to write directly strings directly to the divice and see if I c= an get that working. Cheers, Dan ----- Original Message ----- From: "Rib Rdb" <ri...@gm...> To: "Daniel Lyons" <soc...@ma...> Subject: Re: [Jsynthlib-devel] Driver writing help Date: Wed, 11 May 2005 08:34:08 -0700 >=20 > On 5/10/05, Daniel Lyons <soc...@ma...> wrote: > > Woops, sorry - I went off the thread and back on with my replies. >=20 > That's probably my fault -- my emails to the sourceforge list aren't > going through. >=20 > > The XML interface looks cool, I noticed there's another=20 > > opensource project doing patch editting using XML in it (I=20 > > presume for the synth description). Might not be the worst idea=20 > > to have the same XML format, then you could dig from both worlds=20 > > of Drivers for, perhaps, more synths (SynthDescription might be a=20 > > better word over drive.. or SynthInterface). > > > > They're at: http://synthed.sourceforge.net/ >=20 > I had planned to be compatible with synthed, however their design > seemed too restrictive and all development seems to have stopped. >=20 > > I guess support for my weird Yamaha S80 interface would be nice,=20 > > sine I'd guess the Motif series uses it, and from the docs I know=20 > > some others use it. > > > > Which is multiple values get crammed into one sysex string - E.G.=20 > > There's a 13 byte string for an oscillator and some parameters,=20 > > then a 29 byte string for the Amplitude, then a 27 byte one for=20 > > the pitch, and so on. > > > > I guess I'm going to make sets of Model/Sender pairs for each of=20 > > those for now... and work from there. >=20 > Actually I'm pretty sure the Motif sends all it's parameters one at a > time except for a few bitmasks. >=20 > Do you mean you're going to have a separate class for each set of > parameters? It seems like there should be a way to use one class that > can work for all the groups (although I can't really think of a good > way at the moment) --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |
From: Joachim B. <jba...@pi...> - 2005-05-11 08:11:23
|
> Is there a=20 > way to do this? Yes, use Thread.sleep as you can see in my QuasimidiQuasarSingleDriver. It helps much to look at other drivers. Regards, J. Backhaus > -----Urspr=FCngliche Nachricht----- > Von: jsy...@li... > [mailto:jsy...@li...]Im Auftrag von Joe > Emenaker > Gesendet: Mittwoch, 11. Mai 2005 09:52 > An: JSynthLib Development > Betreff: [Jsynthlib-devel] Some questions about BankDriver >=20 >=20 > So... I just started trying to make a BankDriver, and I've got some=20 > questions. >=20 > In this case, there's no way to request an entire bank. Instead, you=20 > have to issue a series of requests for individual patches.=20 > I'm sure that=20 > there are plenty of other devices like this. >=20 > First question: Is there some way of "throttling" or flow-controlling=20 > the sending of requests. If I send out 100 single-patch requests all=20 > rapid-fire, the hardware device gets confused and doesn't end=20 > up sending=20 > 100 single patches. I need to send a request, wait for the patch to=20 > come, send another request, wait for the patch to come, etc.=20 > Is there a=20 > way to do this? >=20 > Second question: Since my bank data is composed of multiple single=20 > patches, the bank data matches my sysexID from my=20 > SingleDriver. So, the=20 > banks are being recognized as single patches. Do I have to override=20 > acceptsPatch(Patch p) in my SingleDriver like: >=20 > boolean acceptsPatch(Patch p) { > return(super.acceptsPatch(p) && p.getMessages().length =3D=3D = 1); > } >=20 > and do similar in the BankDriver? Is there an easier way? The=20 > patchSize=20 > variable would come in handy here, but the patches on this=20 > device vary=20 > in size. >=20 > - Joe >=20 |
From: Joe E. <jo...@em...> - 2005-05-11 07:52:04
|
So... I just started trying to make a BankDriver, and I've got some questions. In this case, there's no way to request an entire bank. Instead, you have to issue a series of requests for individual patches. I'm sure that there are plenty of other devices like this. First question: Is there some way of "throttling" or flow-controlling the sending of requests. If I send out 100 single-patch requests all rapid-fire, the hardware device gets confused and doesn't end up sending 100 single patches. I need to send a request, wait for the patch to come, send another request, wait for the patch to come, etc. Is there a way to do this? Second question: Since my bank data is composed of multiple single patches, the bank data matches my sysexID from my SingleDriver. So, the banks are being recognized as single patches. Do I have to override acceptsPatch(Patch p) in my SingleDriver like: boolean acceptsPatch(Patch p) { return(super.acceptsPatch(p) && p.getMessages().length == 1); } and do similar in the BankDriver? Is there an easier way? The patchSize variable would come in handy here, but the patches on this device vary in size. - Joe |
From: Joe E. <jo...@em...> - 2005-05-11 07:42:11
|
Daniel Lyons wrote: >The XML interface looks cool, I noticed there's another opensource project doing patch editting using XML in it (I presume for the synth description). Might not be the worst idea to have the same XML format, then you could dig from both worlds of Drivers > except for the fact that we've got a lot more drivers than they do.... and the drivers can be a lot of work to write. Personally, I'd be a little annoyed if someone took all of our drivers and then dropped them into their project and started claiming the same device support. Now, having said that, the one reason for us to consolidate formats is this: Back when the XML-driver idea was porposed two years ago, one of the benefits mentioned was that, if it was flexible enough and got popular enough, there'd be the posibility that manufacturers would provide XML editor descriptions themselves. As things stand now, a company like Roland isn't going to spend the resources to provide drivers for a new synth for MidiQuest, UniSyn, SoundDiver, JSL, SynthEd, etc, because it's too much work. However, if they could provide a single file and have support for the synth on a variety of editors, then they just might do it. - Joe |
From: Joachim B. <jba...@pi...> - 2005-05-11 05:14:15
|
Hi, > I guess support for my weird Yamaha S80 interface would be=20 > nice, sine I'd guess the Motif series uses it there is already a synthdriver for the Yamaha Motif: http://cvs.sourceforge.net/viewcvs.py/jsynthlib/JSynthLib/synthdrivers/Ya= mahaMotif/ This may help you perhaps. Regards, J. Backhaus > -----Urspr=FCngliche Nachricht----- > Von: jsy...@li... > [mailto:jsy...@li...]Im Auftrag von > Daniel Lyons > Gesendet: Mittwoch, 11. Mai 2005 05:37 > An: jsy...@li... > Betreff: Re: [Jsynthlib-devel] Driver writing help >=20 >=20 > Woops, sorry - I went off the thread and back on with my replies. >=20 > The XML interface looks cool, I noticed there's another=20 > opensource project doing patch editting using XML in it (I=20 > presume for the synth description). Might not be the worst=20 > idea to have the same XML format, then you could dig from=20 > both worlds of Drivers for, perhaps, more synths=20 > (SynthDescription might be a better word over drive.. or=20 > SynthInterface). >=20 > They're at: http://synthed.sourceforge.net/ >=20 > I guess support for my weird Yamaha S80 interface would be=20 > nice, sine I'd guess the Motif series uses it, and from the=20 > docs I know some others use it. >=20 > Which is multiple values get crammed into one sysex string -=20 > E.G. There's a 13 byte string for an oscillator and some=20 > parameters, then a 29 byte string for the Amplitude, then a=20 > 27 byte one for the pitch, and so on. >=20 > I guess I'm going to make sets of Model/Sender pairs for each=20 > of those for now... and work from there. >=20 >=20 >=20 >=20 > ----- Original Message ----- > From: "Rib Rdb" <ri...@gm...> > To: "Daniel Lyons" <soc...@ma...> > Subject: Re: [Jsynthlib-devel] Driver writing help > Date: Tue, 10 May 2005 17:10:06 -0700 >=20 > >=20 > > On 5/10/05, Daniel Lyons <soc...@ma...> wrote: > > > > > > > I guess the way to do it would be to make a ParamSender=20 > that knows > > > > about all thirteen parameters. > > > > > > Ok. So.. that tells me that there isn't a great way to handle=20 > > > this in the core. :) > > > > > > > Also, I'm curious how are you designing your driver. I started > > > > creating the XML driver to solve the problems dealing=20 > with multiple > > > > sysex messages and the huge number of parameters that=20 > the Motif has. > > > > I'd assume the S80 has the same issues. > > > > > > I was just going to do it straight out.. I guess, yes, a whole=20 > > > lot of sliders, maybe in a scrolling window. > > > > > > Let's see, a patch as 218 common byes and 4 wave configurations=20 > > > at 200 bytes each.. > > > > > > So probably something like 700-800 widgets? HRM! I was going to=20 > > > have tabbed panes for waves, maybe. > > > > > > Perhaps a nice design would be to have the main editor window=20 > > > have buttons which bring up pop-up windows - so you could pop-up=20 > > > the different effect windows and voice windows as desired - thus=20 > > > having whatever controller groups on screen as desired. > >=20 > > That's what I was thinking. JSynthLib seemed to run way to=20 > slow when I > > had that many widgets loaded at once. > >=20 > > > The XML driver sounds intriguing, how's the progress of that? =20 > > > That sounds very interesting . As of yet I've been using the .20=20 > > > code rather than grabbing the repos version - just so i had=20 > > > something stable to play with. > >=20 > > The XML driver currently supports librarian support for single (but > > not bank) patches, and simple editors. Simple editors means a single > > window and no complex widgets like envelopes. I have ideas=20 > on how to > > implement more complex editors, but haven't had time to=20 > implement it. > > I don't know when I'll get around to bank support. > >=20 > > If you're interested, I'm creating a tutorial on what's currently > > possible with the XML driver. I'm putting it on Joe's wiki. There's > > not much there yet, but the url is > > http://joe.emenaker.com/Wikka/wikka.php?wakka=3DXmlExample >=20 >=20 > --=20 > ___________________________________________________________ > Sign-up for Ads Free at Mail.com > http://promo.mail.com/adsfreejump.htm >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by Oracle Space Sweepstakes > Want to be the first software developer in space? > Enter now for the Oracle Space Sweepstakes! > http://ads.osdn.com/?ad_ids93&alloc_id=16281&op=3Dick > _______________________________________________ > Jsynthlib-devel mailing list > Jsy...@li... > https://lists.sourceforge.net/lists/listinfo/jsynthlib-devel >=20 |
From: Daniel L. <soc...@ma...> - 2005-05-11 03:36:52
|
Woops, sorry - I went off the thread and back on with my replies. The XML interface looks cool, I noticed there's another opensource project = doing patch editting using XML in it (I presume for the synth description).= Might not be the worst idea to have the same XML format, then you could d= ig from both worlds of Drivers for, perhaps, more synths (SynthDescription = might be a better word over drive.. or SynthInterface). They're at: http://synthed.sourceforge.net/ I guess support for my weird Yamaha S80 interface would be nice, sine I'd g= uess the Motif series uses it, and from the docs I know some others use it. Which is multiple values get crammed into one sysex string - E.G. There's a= 13 byte string for an oscillator and some parameters, then a 29 byte strin= g for the Amplitude, then a 27 byte one for the pitch, and so on. I guess I'm going to make sets of Model/Sender pairs for each of those for = now... and work from there. ----- Original Message ----- From: "Rib Rdb" <ri...@gm...> To: "Daniel Lyons" <soc...@ma...> Subject: Re: [Jsynthlib-devel] Driver writing help Date: Tue, 10 May 2005 17:10:06 -0700 >=20 > On 5/10/05, Daniel Lyons <soc...@ma...> wrote: > > > > > I guess the way to do it would be to make a ParamSender that knows > > > about all thirteen parameters. > > > > Ok. So.. that tells me that there isn't a great way to handle=20 > > this in the core. :) > > > > > Also, I'm curious how are you designing your driver. I started > > > creating the XML driver to solve the problems dealing with multiple > > > sysex messages and the huge number of parameters that the Motif has. > > > I'd assume the S80 has the same issues. > > > > I was just going to do it straight out.. I guess, yes, a whole=20 > > lot of sliders, maybe in a scrolling window. > > > > Let's see, a patch as 218 common byes and 4 wave configurations=20 > > at 200 bytes each.. > > > > So probably something like 700-800 widgets? HRM! I was going to=20 > > have tabbed panes for waves, maybe. > > > > Perhaps a nice design would be to have the main editor window=20 > > have buttons which bring up pop-up windows - so you could pop-up=20 > > the different effect windows and voice windows as desired - thus=20 > > having whatever controller groups on screen as desired. >=20 > That's what I was thinking. JSynthLib seemed to run way to slow when I > had that many widgets loaded at once. >=20 > > The XML driver sounds intriguing, how's the progress of that?=20=20 > > That sounds very interesting . As of yet I've been using the .20=20 > > code rather than grabbing the repos version - just so i had=20 > > something stable to play with. >=20 > The XML driver currently supports librarian support for single (but > not bank) patches, and simple editors. Simple editors means a single > window and no complex widgets like envelopes. I have ideas on how to > implement more complex editors, but haven't had time to implement it. > I don't know when I'll get around to bank support. >=20 > If you're interested, I'm creating a tutorial on what's currently > possible with the XML driver. I'm putting it on Joe's wiki. There's > not much there yet, but the url is > http://joe.emenaker.com/Wikka/wikka.php?wakka=3DXmlExample --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |
From: Daniel L. <soc...@ma...> - 2005-05-10 16:50:08
|
I'm trying to write a driver... My S80 send and recieves some paremeters in groups in the sysex messages, l= ike: [header info] [13 byes for 13 different patch adjustments] [end info] Where you have to send it out in a group. Does JSynth lib handle this well? I've been poking around at the source an= d am unsure. So like, if you adjusted one of those 13 adjustments, I need JSynth to send= the parameters for all 13 with the changes on the adjusted one.=20 Thanks, Dan --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |
From: Joe E. <jo...@em...> - 2005-05-09 23:51:11
|
If you have a patch in your library that isn't recognized by JSL, it says the driver is "Unknown" and sets the comment to "Probably a ##### patch. Size: ####". If you try to *receive* a patch that isn't recognized *into* your library, JSLis supposed to do that as well, but doesn't even get that far. It throws an exception. When searching through the code, I discovered that there are *two* places where the "Probably a ##### patch..." comment is set, depending upon whether the patch was loaded from a library, or received via sysex: in AbstractLibraryFrame: private void chooseDriver(IPatch patch) { patch.setDriver(); if (patch.hasNullDriver()) { // Unkown patch, try to guess at least the manufacturer patch.setComment("Probably a " + patch.lookupManufacturer() + " Patch, Size: " + patch.getSize()); } } and in Driver.fixPatch: // driver not found pk.setDriver(null); //reset pk.setComment("Probably a " + pk.lookupManufacturer() + " Patch, Size: " + pk.getByteArray().length); JOptionPane.showMessageDialog(null, "You requested a " + this.toString() + " patch!" + "\nBut you got a not supported patch!\n" + pk.getComment(), "Warning", JOptionPane.WARNING_MESSAGE); This (having two bits of code trying to do the same type of job) is probably not a good idea. I propose a few changes which could clean this up: - If no driver accepts a patch, instead of setting the driver to null, it is set to the GenericDriver. - The GenericDriver will have the code that sets the comment to "Probably a ##### patch..." - Joe |
From: Joachim B. <jba...@pi...> - 2005-05-09 12:32:29
|
Hi, maybe you expect to much.=20 I personally definately don't have the time to read all your postings to this list, understand them and give an answer! Regards, J. Backhaus > -----Urspr=FCngliche Nachricht----- > Von: jsy...@li... > [mailto:jsy...@li...]Im Auftrag von Joe > Emenaker > Gesendet: Sonntag, 8. Mai 2005 02:03 > An: JSynthLib Development > Betreff: [Jsynthlib-devel] Is anybody even *seeing* these emails? >=20 >=20 > Has everyone just finally added me to their blacklist or something? >=20 > I send "What does everybody think about this idea?" messages=20 > to the list=20 > and nobody says a single thing. >=20 > - Joe >=20 |
From: Steven S. <ste...@co...> - 2005-05-09 12:04:32
|
-----Original Message----- From: jsy...@li... [mailto:jsy...@li...] On Behalf Of Daniel Lyons Sent: Sunday, May 08, 2005 9:19 PM To: JSynthLib Development Subject: Re: [Jsynthlib-devel] Is anybody even *seeing* these emails? Hi Joe, You haven't made my prestigious black list yet. No one alive really had, YET! I haven't done all that much on the S80 driver yet other than put a few basic gears in place. You know how it is, program all week long and on the week-end it's not so tempting. I'll continue on, however. [Steve Schmidt] I have to echo the above response. I'm working on an editor for the Korg Triton rack. Its like 2500 lines of code so far and I just don't have much time to work on it, but I'll keep going. Also, I need to stop once in a while and just play some music. I for one appreciate the work that you core developers are doing and the assistance I've gotten from you along the way. Gambatte! (Keep going!) |
From: Daniel L. <soc...@ma...> - 2005-05-09 01:18:41
|
Hi Joe, You haven't made my prestigious black list yet. No one alive really had, Y= ET! I haven't done all that much on the S80 driver yet other than put a fe= w basic gears in place. You know how it is, program all week long and on t= he week-end it's not so tempting. I'll continue on, however. I was curious about the XML driver thing. It seems promising - for if you = wanted to have a patch library in a native C compiler, if they interpreted = the XML format the same way - the drivers would already be there. Or havin= g a sequencer flip through custom patches or settings on the fly - a plugin= could use the XML drivers already in place. Abstract, ain't it? :) heers, Dan ----- Original Message ----- From: "Joe Emenaker" <jo...@em...> To: "JSynthLib Development" <jsy...@li...> Subject: [Jsynthlib-devel] Is anybody even *seeing* these emails? Date: Sat, 07 May 2005 17:03:13 -0700 >=20 > Has everyone just finally added me to their blacklist or something? >=20 > I send "What does everybody think about this idea?" messages to the=20 > list and nobody says a single thing. >=20 > - Joe << smime.p7s >> --=20 ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm |