From: Peter G. <pet...@gm...> - 2009-01-05 12:15:42
|
Hi, I'm trying to write my first driver for Roland SPD-11 "Total Percussion Pad" If anybody here is interested in giving me some support, it would be very much appreciated. I've got almost no experience with Java or any other programming language, but I do know the required sysex information and I've been tinkering with dmaker in 2003/2004 to get a driver for the SPD-11 working for an outdated Cubase version. This time I want to do it in an open-source project like JSynthLib. To get an overview, I've put some info together on these pages: http://spd-11.wikispaces.com/JSynthLib_driver http://spd-11.wikispaces.com/sysex http://spd-11.wikispaces.com/sounds (the names of the sounds, in JSynthLib's array format) http://spd-11.wikispaces.com/JSynthLib-dia (UML diagram) Thanks for the wonderful JSynthLib program, I'm already using the KorgX3 driver and will share some patches with great pleasure (in case any X3 owner reads this ;-) Cheers peter |
From: Michael H. <pat...@ya...> - 2009-01-13 16:29:30
|
Hi Jsynthlib ppl, I have been sending emails to admin's to try to get me added as a developer but no one is home. I am not even sure the lights are on. LOL Can someone help me get added as a developer? And should we get someone who is current added as an admin? Here's a couple of questions. I am about to start development of a device driver for an upgrade kit that I developed for the Korg Poly-800 MK1 and EX-800. The kit provides a a memory upgrade with brand new firmware including comprehensive SYSEX and MIDI controller implementation among many other new features. First question: Should I create the device driver as KorgHawk800 (where HAWK-800 is the name of my upgrade kit)? Or should we create a convention for non manufacturer custom device implementations? All of my SYSEX code use Korg's manufacturer ID and Poly-800 device ID codes, so I think it should go in as KorgHawk800. But that's just my opinion. Second, a the moment, the sysex implementation includes single patch dump sends and receives as well as a bulk dump command but I have not yet implemented any sysex for the operating patch memory. I have implemented MIDI controllers that can edit the operating sound in real time. Does jsythnlib support using MIDI controllers to edit/change real time sound memory? Or do I need to implement a SYSEX to control the operating memory? Thanks all, Mike H ________________________________ |
From: Peter G. <pet...@gm...> - 2009-01-14 13:53:47
|
On Tue, Jan 13, 2009 at 5:29 PM, Michael Hawkins <pat...@ya...>wrote: > Hi Jsynthlib ppl, Hi Michael > > > I have been sending emails to admin's to try to get me added as a developer > but no one is home. I am not even sure the lights are on. LOL > > Can someone help me get added as a developer? > > And should we get someone who is current added as an admin? I'm not aware of the activity on this list, you're the first sign of life I get since subscribing here two weeks ago :D My current project is writing my first driver for a Roland Spd-11, and I'm new to Java too, so it's some kind of a struggle here. I hope there will be more people responding, because i also don't have any experience administrating a source-forge project. JSynthLib is just too great to let it silently die ... > > Here's a couple of questions. > > I am about to start development of a device driver for an upgrade kit that > I developed for the Korg Poly-800 MK1 and EX-800. > > The kit provides a a memory upgrade with brand new firmware including > comprehensive SYSEX and MIDI controller implementation among many other new > features. > > First question: > > Should I create the device driver as KorgHawk800 (where HAWK-800 is the > name of my upgrade kit)? > > Or should we create a convention for non manufacturer custom device > implementations? > > All of my SYSEX code use Korg's manufacturer ID and Poly-800 device ID > codes, so I think it should go in as KorgHawk800. But that's just my > opinion. I agree with that opinion. +1 = 2 > > > Second, a the moment, the sysex implementation includes single patch dump > sends and receives I suppose you use a "singleDriver" for this ? > as well as a bulk dump command and a "bankDriver" for this ? but I have not yet implemented any sysex for the operating patch memory. Do you mean you have to finish overwriting the sendPatch(Patch p) method ? I have implemented MIDI controllers that can edit the operating sound in > real time. These MIDI controllers are written in a sequencer I guess, not in JSynthLib ? JSynthLib doesn't support MIDI sequencer atm I think. here's the help description of core.Driver.playPatch(Patch p): void core.Driver.playPatch(Patch p) Play note. plays a MIDI file or a single note depending which preference is set. Currently the MIDI sequencer support isn't implemented! See Also:Patch.play()ISinglePatch.play() > > > Does jsynthlib support using MIDI controllers to edit/change real time > sound memory? Or do I need to implement a SYSEX to control the operating > memory? There's a piece about "faders" and "fader banks" in the documentation but I didn't use it yet. I think that's what you're looking for... *Although Editing on-screen using a mouse or keyboard is efficient and all editing functions can be realized this way, JSynthLib also provides another, optional, method to edit controls-- Faders. A Fader is simply a knob or a slider you might have on a synthesizer or fader box which sends a MIDI control message, when moved. Almost all synthesizers have at least one or two, and some advanced ones such as the Kawai K5000S have as many as sixteen or more. In addition, there are "Controller Surfaces" you can buy which consist only of Faders (either as knobs or slider). * *These faders are generally used to edit parameters on synthesizers, but have two major drawbacks. First, they are often designed to work only on a certain, hardwired parameter or only for a particular synthesizer. Second, its difficult to picture what's happening when editing this way, because you don't get any visual feedback. You can't simply look at a Controller Surface and tell what the current settings are for the parameters (unless you have a motorized controller surface). * *JSynthLib allows you to overcome these limitations. If you have a Controller Surface or other source of MIDI Controller Messages which has at least 16 Faders, you can edit any synthesizer supported by JSynthLib and see visual feedback on your computer screen. * *To set up your controller surface, look under Window->Preferences->MIDI. Look at that section in this documentation for help on setting these up. Once set up, when you move a fader, the corresponding control in the active Editor Window will move. * *As you probably realize, however, there are usually more than 16 controls in an editor window. This is where the concept of fader banks come in. A fader bank is a group of 16 controls which respond to faders. You can choose which bank your fader movements are sent to either by using the 15th and 16th buttons on you Controller Surface (if your controller surface supplies buttons and well has faders) or by using the "Next Fader Bank" Option on the toolbar. Note that the labels for the controls in the currently selected fader bank are darkened slightly. To determine which fader bank and fader number will move a particular control, simply let the mouse cursor hover over the label for that control and a tool-tip will pop up with this information. * > > > Thanks all, > > Mike H > Nice to hear from you. Cheers Peter G |
From: Joe E. <jo...@em...> - 2009-01-15 07:08:25
|
Michael Hawkins wrote: > Hi Jsynthlib ppl, > > I have been sending emails to admin's to try to get me added as a developer but no one is home. I am not even sure the lights are on. LOL > I got an email a while back from *someone*... don't know if it was you... and they asked to be a developer and I responded by asking them to describe their Java and/or CVS experience. Never heard back. > Can someone help me get added as a developer? > *I* can. But, again, what's your Java experience? Have you worked on any other Sourceforge projects before? > And should we get someone who is current added as an admin? > Yeah... we should probably have more than one admin who's provably alive... especially since I fly a lot. :) Are you the one who just petitioned to take over the project on SourceForge? > First question: > > Should I create the device driver as KorgHawk800 (where HAWK-800 is the name of my upgrade kit)? > So, you're proposing that as a new driver name? There isn't a KorgHawk800 already that you're planning on adding to? > All of my SYSEX code use Korg's manufacturer ID and Poly-800 device ID codes, so I think it should go in as KorgHawk800. But that's just my opinion. > Well, if you use the same codes as a stock 800, then that could be an issue. I /think/ JSL just queries the Sysex ID and then asks each driver if they know how to deal with that device. I don't remember what it does if multiple drivers claim to be able to drive it. Ideally, it would give the user a choice of the drivers... however, it might just use the first one that claims it can do it. What might be preferable is to write/ammend a Korg800 driver so that it could detect (via additional Sysex commands, perhaps) the presence of the HAWK-800. > Second, a the moment, the sysex implementation includes single patch dump sends and receives as well as a bulk dump command but I have not yet implemented any sysex for the operating patch memory. I have implemented MIDI controllers that can edit the operating sound in real time. > > Does jsythnlib support using MIDI controllers to edit/change real time sound memory? Or do I need to implement a SYSEX to control the operating memory? > I wouldn't think that it would support changing stuff via controllers, since those CC messages would be seen by all devices on that channel, no? The original developers were kinda paranoid about stuff like that. It's probably best to change the current patch parameters via Sysex... like most other devices do. - Joe |