Showing posts with label ida pro. Show all posts
Showing posts with label ida pro. Show all posts

Negative Tuning on the Prophet VS

One of the items on the VS wish-list from Jason Proctor (Vector Surgeon VS Editor/Librarian) is negative tuning values. In the stock OS, Coarse values range from 0 to +24, and Fine values range from 0 to +99. This ultimately makes all de-tuned patches slightly sharp. [Edit: Or, like SCI did, you can do a "negative" tuning by setting Coarse: 11, Fine: 90, for example]

I figured out a way to do this, but it's not a simple change.




You can see that the positive values are still stock, which gives 5 octaves of tuning range compared to the original 3 octaves. I did this expecting to keep factory patches compatible (eg if the original patch was set to +20, it would still be +20) but that was a dumb assumption. As the video shows, this works fine in the edit mode, but it is unsaveable as a patch.

The VS sets the bit-depth of each parameter as it saves & loads based on an array in the code. Here is the MIDI chart compared with the stock bit array:


In order for the VS to save a negative tuning value the # of bits has to be 8, for a signed parameter. The issue is that once any of these values change all internal patches and even sysex becomes corrupt since the bits are being unpacked incorrectly.

There are a few options to make this work though:

  1. Rebuild the factory set by hand to be compatible with the new scheme. This would make it harder for people with their own libraries & patches.
  2. Include a power-on diagnostic-style routine that loads whatever is currently in parameter memory with the correct bit-unpacking, then re-save with the new bit scheme. Users would load their sysex (it would look corrupt), restart into this mode, then resave. I am not even sure this would work, but I'm gonna give it a shot.

Prophet VS v1.4 bug

I've been informed of a bug in my modified VS OS that causes wave 126 to not be silent anymore. Looking at it now I understand the problem, and it was a dumb mistake on my part.

Not knowing quite where things were in the ROM and space being an issue, I put all my code at the very end of the ROM. That just happens to be where Wave 126 (silence) is.

I have since (unrelated to the bug) made the code relocatable and started optimizing. The original assembler Sequential Circuits used seemed to not optimize forward branches, so all were word length when sometimes byte length would have worked. This freed up tons of space in the main part of the code so this bug has already been unintentionally fixed for the next iteration.

Anybody who has already purchased v1.4 can get a free new copy of the corrected version.

Prophet VS Diagnostic Easter Egg

For people who have gone through the VS assembly code (or even just the ASCII in the *.bin file) it is rather common knowledge that within the table of display text there is a chunk that reads:

'I LOVE SUZY, JON'
' AND JASMINE ! 

One thing I think people don't realize is that in r1.0/r1.1, each with more extensive diagnostics than r1.2, there is a way to have that message pop up on the LCD screen.

In the diagnostic main menu loop there is some extra code not in r1.2 (highlighted):


Btst #5 and #6 corresponds to buttons "Name" and "Enter" respectively, and they are used to select which diagnostic to run. Btst #1 corresponds to "Master Tune" and will branch to a routine that displays the message as long as the button is held down.



Not terribly useful but fun to know!

Prophet VS Service Manual (Text Section) and Other Info

Here are some bits that are occasionally found online but I don't think they are all in the same place: Incremental adjustment (>= OS...