Hi Folks,

I guess it's time that I surface and say a few words about JAMMER Live in this forum. I stay pretty busy developing software and styles so I don't get over here too often.

My name is David Castles. I am one of the lead developers of JAMMER Live. I guess a little background is in order since most of you don't know me.

I started developing MIDI software about 10 years ago with the birth of JAMMER Professional and have been developing music composition and MIDI software full time for the last 10 years. In the 7 years before that I designed software for digital recording telecommunications hardware and ROM based microprocessor operating systems for intelligent computer terminals. Before that... I was a professional musician working in Atlanta GA and on the road for about 5 years with various bands. I am a writer, a vocalist, and a recording artist, and I play guitar, keyboards, and bass. The other members of the development team are also seasoned professionals with both musical and computer expertise.

Having said that, let's talk about JAMMER Live and what it can do for you. JAMMER Live was developed as a professional tool for both writers and performing artists. Don't let the price tag fool you. We just wanted everyone to be able to afford this software. JAMMER Live was developed with an open architecture in order to give you a lot of flexibility in setting up whatever types of jams you can imagine. The number of styles you can preload or patches you can use in a jam or in a style is limited only by your hardware.


----- About Changing Styles on the Fly -----

With hardware accompaniment, the manufacturer knows what patches are being used in each style and can access those patches directly. In the world of software, a program must send MIDI messages to the various MIDI devices to access patches which can result in several problems if you try to do it on the fly.

Problem 1 - MIDI Choke
If you are in the middle of a jam and try to load a style that accesses 8 new patches, the software must initialize each of these new MIDI channels to the settings stored in the style for each musician. This could result in sending out 8 patch messages followed by 8 level messages, 8 pan messages. 8 reverb messages, 8 chorus messages, and even some expression controllers. And after that, would come all of the notes that play on beat 1 in the style. Because MIDI is sent serially and each message takes a given amount of time to be transmitted, sending this many messages out all at once can cause a noticeable delay or gulp in the music known as MIDI choke.

JAMMER Live avoids this problem by knowing what channels and patches are to be used before the jam begins and initializing them before starting the jam. During the jam, some controllers are still sent out to control levels, reverb, chorus, and pan as grooves change and fills occur, but JAMMER Live keeps track of the state of each controller on each channel and only sends out controllers when that state changes minimizing the number of actual controller messages required to be sent when a groove changes or a fill occurs.

Problem 2 - Insufficient Channels
With JAMMER Live, you can access up to 512 MIDI channels in a jam session (32 ports x 16 channels per port). You are only limited by the number of MIDI ports and MIDI devices that you have hooked up and configured for use. If you have a single port card and a single MIDI output device, then you are limited to using 16 channels during a jam (not a big limitation unless you're doing symphonies). However, if you tried to load styles on the fly and exceeded your system's available channels, you would be unable to load the style properly during the middle of the jam, something you do not want to experience in a live performance. Therefore JAMMER Live calculates and initializes all of the MIDI channels needed before the jam starts to insure that there will be no unwanted surprizes during the jam.


----- Loading Styles Before the Jam -----

Before you start a jam, you can load as many styles as you like. After loading a style, you can lock down the performance events so that they will not be unloaded when loading the next style. You can even lock down selected grooves from various styles and build a custom jamming landscape. After loading your desired grooves, fills, intros endings etc, you can customize the triggers for each of these in the Performance Event Editor. This open architecture allows you to create highly customized and robust jam sessions. This setup can then be stored as a song or a new style. The song format is recommended for a performance you want to repeat in the future since it saves more information than a style file. Note: A style file will only save the grooves, intros, fills etc that you have performance events define for.


----- Sending Patches and Controllers -----

JAMMER Live has been updated to process incoming patch messages and controller on the user's channel. The updated version will be available for download in a few weeks. Check the SoundTrek web site (www.soundtrek.com) in a few weeks for availability.


----- About Playing Different Riffs Over Different Chord Types -----

Instead of using different riffs for different chord types, JAMMER Live adapts riffs to fit the chord they are playing over by adjusting notes on the fly to accomodate the current chord. This is a large part of what I do as a musician when playing a musical theme or phrase over different chords. Of course with "wildcard notes", JAMMER decides what scales would be good to use over the given chord and composes notes on the fly using the selected scale.

We discussed using different riffs for different chord types in the early development of JAMMER Live but decided on using the "fit to chord" approach for several reasons.

One problem you can run into with the other approach occurs when you play two or more chord changes during a bar or during a single groove riff. Aligning the new chord specific riff mid bar to where the chord changed can lead to awkward timing splices and awkward groove alignment especially if the chord changed on an offbeat eighth note boundary. JAMMER Live avoids this problem by not starting a new riff mid bar but continuing on with the current riff and simply adapting the riff notes to the new chord type. While aligning riffs to chord boundaries within a measure can produce some interesting results, it seems more like something a computer would do rather than what a human would play.

Another issue we dealt with was leadins. JAMMER Live riffs support leadins or parts that play ahead of where the main riff starts leading you into the riff. Here you run into a problem if you are trying to play chord specific riffs and encounter a chord change at the bar line after you've already started the leadin based on the chord in the previous measure. Once again JAMMER Live avoids this by adapting the riff notes to the new chord type and playing the leadin into the riff seamlessly over the chord change.

One last issue with chord specific riffs is that using it requires you to create a lot more riffs. If we created a piano groove in JAMMER Live that contained 5 riffs to give it variety, doing the same for major, minor, m7, maj7, and dominant 7, would mean creating 25 total riffs instead of 5.


----- Please Stay in Touch -----

I appreciate the open discussions you are having in this forum and will be glad to help out in any way I can. I don't always have the time to check out all the boards around so, if you have a specific technical question for SoundTrek, please email us at support@soundtrek.com and we will be glad to help out the best we can. We are always interested in knowing how you use JAMMER Live and what other features you would like to see us implement in the future.

Thank you for your business and support!

Keep jammin,

Dave Castles
SoundTrek