home *** CD-ROM | disk | FTP | other *** search
-
-
-
- Some spotty documentation for the RGS program Nov 28 1988
-
-
- Introduction:
-
- RGS is a sonic spectrum editor. It allows you to paint a sonogram using
- specialized 'brushes' and then synthesize the corresponding audio
- waveform. It is an "evolved" version of my older program DRW/DRWj. The
- main added features in RGS are that there are now 256 levels of amplitude
- to choose from and the ability to synthesize while you are drawing in
- nearly real time, as well as increased user friendliness. How "real" the
- time is depends on the number of samples per pixel you choose...more on
- this later. Let's just say that it's like having a wall of 69120 sinewave
- generators, each with their own amplitude knob(0-255). Note also that the
- samples created by real-time synthesis are noisier than the results of
- the "Synth" mode.
- The version on this disk is a new version which is considerably more
- friendly than all the previous ones. More friendliness is added daily.
- Most of the improvements are :
- the removal of the control comb after all these years...
- the removal of the ill-concieved "flying window"
- the reversion back to a low-res/non-interlaced screen.(speed reasons)
- a set of (gasp) menus to replace the control comb functions..
- cosmetic re-arrangement of the screen (still in progress)
- ability to read old DRW, DRWJ and RGS screen formats.
-
- Versions older than Sep 23 88 are "cloned" by me at home.(An ugly
- interlaced version was cloned many moons ago by Phil Burk). The JForth
- Cloner is a program which cuts all the unneeded JForth code out of a
- turnkeyed module. It performs a few other optimizations as well. The
- main difference is that instead of being 270K long, it is under 75K !
- You can definitely use this version on a 512K machine!!!
-
- The program presents you with a dark grey area where time is on the
- x-axis, frequency (actually phase increment) is on the y-axis and color
- represents the amplitude of the sinewave at that point in time and phase.
- RGS takes this information and creates a digital sample which corresponds
- to the spectrum on the screen. Sonograms may be loaded and stored, sound
- files may be analyzed into sonograms and resulting sounds may be saved as
- IFF 8SVX files. It allows you to play the sound (both channels) with the
- mouse controlling frequency and stereo pan. There are two MIDI modes which
- send chords derived from the sonogram to MIDI sound generators which,
- when coupled with a properly constructed microtonal scale, may allow your
- synth to talk or make other sampled noises (with very very low fidelity).
-
- Caution:
- There is no 'UNDO'. Because it is written in Delta Research's JForth,
- certain operations are slower than they need to be (although I did my best
- with Synth and BandPass Modes and real-time synth). Filename handling may
- be unfriendly should you make a typo or two - I suggest you type NIL: if
- you can't find the right file. There are several other annoying things
- that I won't mention.
-
- The Screen:
- The RGS screen is a low-res, non-interlaced 4-plane screen, (capable of 16
- colors). There is one window on the RGS screen, but occassionally I switch
- back to Workbench's screen for data input. (this is being phased out..)
- RGS has several Modes, which are described below. Which mode RGS is in
- determines how the mouse movements and keystrokes etc. etc. are
- interpreted. The current Mode is displayed in the Title bar of the RGS
- screen.
-
- At the top of the window is the Color Bar. In RGS amplitude is expressed
- as a color. Since there are 256 amplitudes but only 12 colors, the color
- bar groups several amplitudes into each color. You select which amplitude
- you want to draw with by clicking on the color bar - the true amplitude
- value is written on the end of the bar. The mapping between color and
- amplitude can be changed with the Zone mode (see below), and the screen
- is refreshed using the new mapping with the NewScreen mode. There are two
- palettes I use for the Color bar: one has a radically different color for
- each block of amplitudes (since this makes it easy to distinguish
- transitions) and the other has a more-or less continuous shades-of-orange
- palette, which is easier on the eye (but less accurate for "understanding"
- the sound). You can swap from one to the other with the \ key (or the new
- Palette menuitem in Process menu.)
-
- The interesting part of the screen is the 128 by 270 pixel drawing area.
- The y-axis corresponds to phase (percieved as frequency) and the x-axis
- corresponds to time. The y-axis units are displayed as "samples per cycle"
- on the top of the drawing area. The reason that I don't show Hz or some
- other standard measurement is that the sample that RGS generates can be
- played back at a great number of speeds, which makes "frequency" very
- misleading. The 'speed' number is on the far left, wich is also known as
- the Amiga period number. This number is the number of color clocks (an
- internal timing unit) between output samples. The two numbers work
- together like this, for example: To get a tone near 440Hz,
-
- 3579546 CC/sec/(440 cycles/sec*16 samples/cycle) = 508.458 cc/sample
- (with a line drawn on the 16.00 mark on the y-axis...)
-
- so the period should be 508. This kind of calculation is largely
- irrelevant, since the period can be instantly changed with the mouse so
- as to retune the sound. Also contributing to the irrelevance factor is
- the whole purpose of RGS, which is to allow complicated sounds to be
- created without needing to know what the numbers are.
- Just in case, note that Middle C (523.3 Hz) is is 428.
-
- The x-axis is also displayed on the top of the screen, expressed
- as the byte offset from the beginning of the sample.
-
- If you are in Doodle mode, the drawing mode mnemonic comes after the
- x-axis location number.
-
- RGS actually has two drawing and sound areas: BufA and BufB. The one
- currently on the screen is noted after the drawing mnemonic.(Not seen
- until you use buffer B). See 'Buffers' for more info.
-
-
- To the side of the drawing area is a square box, which I call the Blob.
- The size of the blob can be changed by clicking in the Blob's box. The
- Blob is used as a brush or averaging area in the "doodle mode".
-
- Underneath the Blob is a phony prop gadget which provides some fairly
- constant numbers used in Doodle mode. Clicking in the box provides a
- number from 1 to 32 which is used in various ways.
-
- Underneath the drawing area are a few lines of status information :
-
- The Volume setting for the synthesis operations (changed with + and -
- keys).
- The settings for time axis in samples per pixel (changed with the Reset
- and Bandpass Modes).
- The state of the real-time synthesis (changed with the G key or menu
- item). This shows whether the real-time synthesis is on or off and what
- variant of it is in effect.
- The state of the period lock toggle (~), which keeps the period constant
- for better control during a performance.
- The State of the harmonic handle and the phase/time Locks.(up/down arrows
- and numeric pad).
- The status of the MIDI modes (changed with F-keys). The meanings of this
- cryptic line are divulged in the section on MIDI.
-
-
- The MODES:
-
- There are several states into which the program may be put: all of them
- are accessed via the keyboard buttons. The first letter of each mode puts
- you in the corresponding mode, and case is ignored. The modes are also
- available from Menus (the Mode menu, to be specific). When you enter the
- program, the Help window is displayed as an obnoxious gesture. When you
- hit the enter key, you will be in "Play" mode.
-
-
- The modes are:
-
- T)op D)oodle S)ynth P)lay R)eset W)rite B)andpass I)input O)utput Q)uit
- M)idi U)ltraMIDI Z)oneSet X)onedSynth N)ewscreen A)lternateBuffer
-
- ( The syntax "F)oobar" dates from UCSD Pascal : it simply means you
- need only type the first letter if you don't want to use the menus. )
-
- Help Key gives the screen size, current release Date
- and my address and credits.
-
- But wait.. there's more! The arrow keys and keypad buttons also are used
- under various modes. The MIDI modes use the "F" keys, Escape and Delete,
- and sprinkled about the board are a few more flags and toggles.
-
- P)lay mode may also be accessed via the space bar, which is handy for
- stopping a lengthy S)ynth-mode, N)ewscreen, B)andpass, U)ltra and M)idi
- modes and a few other time consuming operations in the D)oodle mode. The
- space bar also shuts off the internal audio in case of neighbor's
- complaints.
-
- For certain operations, when the operation is finished, you will be put in
- Play Mode , since it is the safest mode to be in.
-
- Real time (graphic) toggle:
-
- The letter G toggles on and off the "graphic synthesis", i.e. the real
- time synthesis mode. This is also available in the process menu.
- When G is off, RGS acts a lot like an odd paint program. To get the sound
- corresponding to your image, you'll need to use X)one or S)ynth modes.
- When G) is on, all D)oodles are simultaneously synthesized, pixel by
- pixel. Also, the pan and period information (as under Play mode) is
- captured and held constant while you draw. There are four synthesis
- modes(!) which are gotten to by the non-keypad numerals 0,1,2, and 3.
-
- "0" means the entire sample is played in a loop (but Zoned synthesis is
- played in its own loop which is the size of the Zone) .
-
- "1" splits the screen into left and right halves (conveniently divided if
- you do a T)op mode), each panned and tuned as with G)'s mode 0. The two
- halves play in synch.
-
- "2" again plays the whole sample, but one channel is made slightly faster
- than the other. This causes some groovy phasing effects and chorusing,
- beating, etc. etc.
-
- "3" acts like "0" except that zoned synthesis does not affect the size
- of the sample being played. This lets you draw an interesting spectrum and
- zone-synth sections of the screen , which are instantly mixed into the
- sample.
-
- Some things don't work very well with the real time "G" mode. For
- example, Inc and Dec won't have much effect unless the "prop gadget" is
- set above 16. This is due to the trick I use to do the synthesis, which is
- to take the difference between the existing amp and the new amp and add
- the (scaled) resulting sine to the sample. Trouble is, the scaling chops
- out lots of subtle changes. (If I go to a 16-bit sample, this will go
- away). Real-time also overloads faster, and is less accurate in general,
- since I refuse to sum the entire row, scale and replace it as theory
- demands. However, for many complicated sounds (or compositions, if you
- wish) it works well. The biggest kick is drawing something, then erasing
- parts of it and hearing that harmonic drop out of the mix!
- You can improve the fidelity (at the cost of getting closer to clipped
- levels) by using the "+" key to make new synthesis louder ("-" to make it
- softer). Doing this also improves the response of the Inc and Dec
- functions.
-
- Top mode:
-
- T)op Clears the screen to grey ( amplitude 0), then goes directly to
- D)oodle mode. It also wipes out the sound sample buffer. You can also
- use the letter K to do this.
-
-
- Doodle Mode:
-
- D)oodle mode is the main drawing mode. It works with the Left and Right
- menus to allow the sonogram to be drawn and processed. You set the
- drawing functions of the left and right buttons by selecting the function
- from the appropriate menu. When you draw, you use either button to get
- either of the two drawing functions. The active function is shown as a
- user-unfriendly 4 letter mnemonic. While you draw, the phase number and
- the byte offset are continuously updated.
-
- Normally, the drawing goes on where ever the "Pen" is pointing, but
- you can grid-lock the drawing position by using the keypad buttons.
- "8" increases the frequency lock interval, while "2" decreases it.
- (Technically, it constrains the Y-value, and not the phase/frequency).
- Frequency locking is useful for constant-toned sounds without harmonic
- movement. "4" and "6" do the same for time locking. You can make nifty
- rhythms with this feature by using "Blob" or "CpBl". "5" resets the
- grid to 1,1. These locks are nicely reported below the drawing area.
- The top constraint is 64 in both cases.
-
- The left and right arrows can be used to increment or decrement the
- drawing amplitude (color) by 1, which is good for fine tuning the
- amplitude for a -cut operation. Also, the comma button may be used to
- "pick" the color beneath the pointer (as in a certain famous paint
- program).
-
- Also Also, the + and - buttons control the scale factor (Volume) for
- the synthesis section. This is a number which the sum of all the
- samples per time period is divided by. The smaller this number, the
- louder the sample, and the greater the chance that it will overload
- and need to be clipped. However, fidelity is improved by making this a
- low number.
-
- The up and down arrows control the Harmonic Handle, which is posted above
- the grid numbers .. read on for more about its uses.
-
- The Doodle mode actions are grouped in a nearly logical fashion.
-
- Dos and Lines:
-
- Dot A dot of the selected color is continuously dropped on
- the screen while the left mouse button is depressed.
-
- Line A continuous line is drawn while the button is down. Note that
- the line cannot be drawn from right to left.. to encourage
- 'proper temporal flow'.
-
- CycL Does a ramp-like colored line, speed of cycle is based
- on the Prop value.
-
- Blobs:
-
- Blob The Blob of Blob box fame is deposited. (You can resize the blob
- by clicking in the blob box.)
-
- Wipe A Blob-sized Eraser, suitable for putting on the "other" button.
-
- CycB Draws a Blob while changing the colors, speed is based on
- the prop value.
-
- Ramps:
-
- Ramp A line at this frequency is 'ramped' up to the selected color,
- then back down again. A ramp is always summed into the current
- screen background. The rate at which the ramp ramps is
- controlled by the phony prop gadget.(Low number == long, slow
- ramp).
-
- R-Dn Ramps down from the color under the pointer, using the rate from
- the prop gadget.
-
- R-Up Ramps up (backwards) from the pointer position, like ramp down.
-
- Fill operations:
-
- Fill Fills this frequency with this color, until it hits a color
- differing from that under the pointer.
-
- Fil2 Does a ramp-fill up to the pointed-to color from the colors
- at the edges. Close relative of FilC and Mow. Works well
- as a fancy Fill.
-
- FilC Fills like Fil2, except the 'peak' color is the current color,
- not the replaced color.Great for doodling sounds.This will work
- on grey areas as well, making little spots of color.
-
- Mow Fills like Fil2, but ignores 'peaking', just ramps from
- left color to right color.( Doesn't work on grey areas).
-
-
-
- Harmonic operations:
- Harm A dot in the suitable color and rate is summed into the screen
- at harmonics determined by the current Frequency space settings.
- The Pointer represents the harmonic specified by the Harmonic
- Handle (controlled by Up and Down Arrows). It only writes forward,
- and connects points continuously. Harm can be used to create a
- harmonic framework for subsequent alterations, using color #1 as
- the base color. If you are stuck generating a long, ugly harmonic,
- hit space bar. The yellow line which pops up is a guide which
- shows the end of this harmonic line's segment (i.e. how much
- more it has to do before it reads the mouse again).
-
-
- Xcld Excludes all but harmonics near this time period. The pointer
- is on the Harmonic Handle (adjustable with the up and down
- arrows). Xcld is good for cleaning up Bandpass filtered spectra.
- Space stops the process as with Harm. If you Xclude on top
- of a Harmonic spectrum, you get comb-filter-esque effects.
-
-
- Frmt Draws a portion of the harmonic spectrum (i.e. formant) specified
- by the setting of the Harmonic Handle, and the prop gadget
- value. Not as nice as I had hoped.
-
- Averaging and filtering:
-
- Avg Averages a Blob-sized area around the pointer, then averages the
- average with the non-0 colors within that area. Note: use skinny
- horizontal Blob for best results.
-
- Filt Averages (within the pointed-to blob area) the colors with the
- next colors in the same frequency. Blends disparate colors.
- The formula is the phase-conserving s=( S(i-1)+2*S(i)+s(I+1)+2 )/4
-
- Increment and decrement:
-
- Inc Adds "Prop gadget amount" to the spot under the pointer.
- Length is Blob's length.
-
- Dec Decrements this spot by the prog gadget amount.
- Length is Blob's length.
-
- Inc0 Increments if there is a non-0 color in the Blob
- shaped area under the pointer. For making soft areas louder.
-
- Dec0 Decrement, but not all the way down to 0.(Like Inc0). Because
- the shape is not erased, it's easy to change amplitudes of
- formants using Inc0 and Dec0.
-
- Copy operations:
-
- From sets the 'from' point for Copy and CpBl.
- You must click the left button.
-
- To sets the 'to' spot for a Copy.
-
- Copy Copies 'pantograph'-style for those of you who remember Images,
- based on the 'from area' going to the 'to' area. (area is
- Blob sized). Also, no 0 levels are copied.
- CpZn Copies the current Zone to where the pointer is. The pointer
- indicates the upper left corner. (see Zone Mode)
-
- CpBl Copies a blob shaped area from "From" to the pointer,
- ignoring "0 levels". Nice to stick "from" on the other button
- and fly around, moving stuff.
-
- Processes:
- In former versions of RGS, some of these "overall" processes were
- assigned to drawing tools. This seems inappropriate. So a new menu holding
- these processes has been made. Synth Zone and Xsynth have also been moved
- here, and may be dropped from the modes menu in the future.
-
- -Cut removes all amplitudes quieter than the current one from the
- sonogram. Nice for cleaning BPFs. You must click the left
- button on the main drawing screen. You can stop the
- process with the space bar.
-
- Norm tries to maximize the final sample's signal to noise ratio
- by finding the 'loudest' column and rescaling all the amplitudes
- to make that loudest volume be just below clipping (at the
- current Volume level). DANGER: with 'high' volumes this
- tends to 'green' up everything if your sample is not too loud.
- This works best if you are trying to tone down a clipping
- sound. (You could also re synthesize at a 'higher' Volume
- number.)
-
- Life performs an automaton-like transformation of the sound in
- the current Zone. I change the algorithm a lot, but it
- has something to do with the average of the amplitudes
- at certain just intervals from the current one. You must
- click on the drawing area to activate it. Hitting space bar
- will stop the process. Since it generally lowers amplitudes,
- stick "Inc0" on the other button to pep it up.
-
- Zone,Synth and X-Synth are covered as modes.
-
- The Real-time synthesis switch is also here (G).
-
- The Palette switch is also also here. (\) You get either 'Rainbow' or
- 'Orange Spread'. Rainbow is good for discerning the levels, while
- Orange Spread looks a whole lot better.
-
- The Period lock switch is also also here. (~) this locks the period number
- to whichever is in effect so you can change modes without accidentally
- resetting the period.
-
- A)lternate Buffer Mode:
- Buffers:
-
- To allow primative undos and 'A/B'ing, I now have two buffers, named
- BufA and BufB. You can swap them with the 'A' key, or the A/B menu item.
- The swap is instantaneous, but the screen must regen with the new
- information. If there's nothing in the other buffer, or you are going to
- do something which regens the screen anyway, just hit the space bar.
-
- One more trick involving A/B is only available from the menu:
- you can copy a 'zone area' from the 'other' screen to this one. For
- example, you can keep a copy of a spectrogram in 'B' and work on
- pieces of it in 'A', splicing etc. etc. Impress your friends:
- draw a sonogram in BufA, swap to empty BufB, Zone the entire space,
- turn on the Real-time synth, and select copy A/B. The sound in the other
- buffer will be generated from the high frequencies down as it copies!
-
-
- Zone Mode:
-
- This mode sets up a "Zone" which operates with the "Life" function
- and also with the XoneSynth funtion and CpZn. Click on one corner of the
- area of interest, draw out the rectangular Zone and release. You
- are now in Doodle Mode.
- You can also rescale the color-to-amplitude mapping by clicking
- first on the new "low limit" in the color bar, and then dragging
- to the higher limit. All new drawing will be using that palette.
- You may recreate the screen in the new mapping, using the
- N)ewScreen mode or erase the screen with T)op Mode.
-
- Newscreen Mode:
- This mode erases the screen and redraws the spectrum in the new colors.
- This allows you to see spectral details which may be too subtle
- to show up otherwise. For example, the B)andpass filter creates a very
- accurate analysis, so you can zoom in on those low amplitude levels.
-
- Synth Mode:
-
- S)ynth erases the sound area and then creates the waveform by additive
- synthesis. You may cut the sound short by hitting the space bar to go
- directly to play mode. This mode may be slow at times, but it depends on
- the current sample/pixel settings. All grey areas are skipped (their
- amplitude is zero) so thinly populated sonograms generate faster.
- Technicians will note that I am using fixed point arithmetic and a custom
- sine-lookup table to make this calculation, which is merely the scaled sum
- of the (scaled) amplitudes at each frequency times the properly phased
- sine at that frequency. Simple, eh? The real-time synth's method is to add
- a single frequency's properly phased sine wave to the existing sample,
- which means that numerous low-order bits must be discarded, resulting in
- poorer quality.
-
- X)onesynth Mode:
-
- This is merely a mode where the synthesis is confined to the zoned area:
- (see Zone Mode). This is the ultimate bandpass filter!. It loops only the
- synthesized portion , just like Synth, unless you are using 'synth mode
- #3', which is designed not to for precisely this reason .
-
-
- Play Mode:
-
- P)lay plays the sound area. Moving the mouse vertically changes the Amiga
- 'period' (i.e. frequency.) The range of periods can be changed by the up
- and down arrow keys (up decreases period range, down increases it). "So,
- how long can that sample be, in seconds?" The longest sample RGS generates
- is 270*256 bytes = 69120. The new highest period is 6348 (which
- corresponds to a sample rate of 563.88 Hz). 69120 samples at 563.88 Hz is
- about 2 minutes and 3 seconds. Keep the frequencies low and you've got a
- Top 40 hit!!!.
-
- The following modes require some names and numbers from the keyboard.
- I hope to eliminate this primative stuff soon. There are some hints in
- these windows as to what the numbers should be , but no 'Cancel' buttons.
- Sorry - when they become requesters, they'll be more fun.
-
- Reset Mode:
-
- R)eset resets the frequency and time spaces. The maximum total number of
- 8-bit samples RGS can work with is 69120 (270 * 256). It flips to the
- workbench input console window. The first number is the number of samples
- each pixel on the x-axis represents (1-256). You then input the wavelength
- of the top frequency line in units of one hundred cycles per sample. This
- corresponds to the little phase number on the screen during Doodle mode
- times 100. This is the sign of a lazy slob who didn't want to parse a
- decimal point. Thus, for 2 samples per cycle, say 200, for 4, say 400. A
- similar wavelength is asked for which corresponds to the lowest harmonic.
- I treat 0 as infinity, otherwise it should be a larger number then the
- upper limit: longer wavelengths mean lower frequencies. Equivalent Hz
- values are displayed after these numbers are input (assuming a period of
- 238 which corresponds to a sample frequency of 15040 KHz).
-
- Finally, the MIDI Level is asked for, which is the maximum number of MIDI
- note events the MIDI modes should transmit. DX7s can have 16, while
- TX81Zs can only handle 8. Setting this to a low number in Ultra mode may
- overload your synth's MIDI buffer and cause you to lose your lease.
- The screen will flip back after a second allowed for you to digest this
- info. The number of Samples/horizonal pixel is available for your
- perusal on the screen.
-
- These settings apply to both buffers, but may not in the future.
-
-
- Write Mode:
-
- W)rite writes the sound area to an IFF 8SVX sample file, for use by such
- programs as may use IFF samples. A filename is prompted for, the
- instrument name, your favorite "Period" number for tuning purposes - you
- can use 0 to mean the one used now in play mode - and a number of octaves
- (which merely decimates the sample). Remember: it's best to keep IFF files
- short since a lot of programs can't handle more than 24K. RGS can make a
- 64K sample, and therefore a 128K IFF file! It's a good idea to give the
- IFF file a suffix which your playback program expects, so I don't put one
- on.
-
- Bandpass Mode:
-
- B)andpass is the heterodyne filter. A name of a sound file is prompted
- for, then a starting offset within the file (so you may skip to an
- interesting section). The end offset for the file is prompted for, and
- the sample size is computed from these two numbers. You can enter 0 to
- mean the end of the file. The frequency limits are next, exactly as they
- are in Reset mode. The record 'K' is asked for, which is the record size
- log to base 2 (i.e. 5=32, 10=1024 ...) Under 7 is pretty speedy, but
- decent usable work appears at about 9 or 10. Lastly, the phase and sample
- skip numbers are prompted for: this lets you scoot over the sample to get
- an overview before commiting yourself to an 8-hour bandpass analysis. You
- may stop the process by hitting the space bar.
- This is not an FFT because it is more geared to the parametric nature
- of the program. Technically, it is a sonogram where color represents
- amplitude. Again, it uses fixed point arithmetic. No hokey suffix is
- required for this sound data file, and in fact, any format soundfile
- (except compressed or inverted-byte) will be read, since I ignore the
- fileheaders! RGS has a more accurate Bandpass filter than DRWj, because
- RGS can hold a wider and more complete range of amplitudes. The quality of
- the filter results is dependent on the ratio of the record length to 2^K .
- Obviously, trying to analyze a wave longer than 1 record is futile. On the
- other hand, detail is lost if the record covers too many cycles. In
- theory, I shouldn't even attempt to analyze sounds with wavelengths
- greater than half the sampling frequency, but eh! sometimes interesting
- stuff shows up in there.
-
- "You canna change the laws o'physics!" - Mr. Scott.
-
- A sneaky way to audition a sample that you may want to analyze is to read
- it with Bandpass mode, give it a low "K" and hit the space bar when it
- starts. "Play" mode will let you play it now. In fact, you can write on it
- in G) mode, thus combining high-quality samples with low quality
- synthesis! In double fact, you can go directly to W)ritemode and turn it
- into an IFF sound!
-
-
- FFTMode is in the works .... commented out until I figure out what's
- wrong with it. It should make some kinds of analysis quicker.
-
-
- O)utput writes the sonogram to a disk file. I)nput reads it from a
- disk file. The R)eset parameters are also saved. I generally give these
- files a .RGS suffix, to distinguish them from sample and IFF files. No
- suffix is automatically appended, though. RGS outputs a more accurate file
- than DRWj, even though it is the same size (73728 bytes). Future:
- compression. The official name of this new expanded format is the Poop
- format. I can read older formats from DRW and DRWj , RGSI, RGSH and other
- variants of the program with I)nput mode. This is why I prompt for
- "Compress or Corner" . Corner gives the lower left corner of the sample
- (in case the file is bigger than the screen). Compress will take a larger
- file and skip rows and columns until it fits on the screen. The period and
- phase numbers are adjusted to take the compression into account.
-
-
- MIDI Mode:
-
- MIDI mode first runs through each line and picks the loudest "MIDILevel"
- amplitudes at all horizontal times. Then, you enter a performance mode
- where RGS sends up to 16 notes to the synthesizer, based on which record
- the mouse points at and the MIDI Level parm (see R)eset). Color becomes
- velocity (0-99). Holding the left button down increments the sample
- pointer at a steady pace. The time between transmissions depends on the
- "y" co-ordinate of the mouse. Note! the screen is re-written to show you
- who the winning frequencies are, but the actual data is unchanged. After
- doing a MidiMode, you may want to regen the screen (N).
-
- Even though I use "running status", your synth may block up. If you have
- a microtonal synth which can be programmed to a pure scale of harmonics
- for all 128 notes with 16-note polyphony, you can get the synth to
- simulate the same harmonic space that RGS provides (although only an 8th
- as powerful). I have done this on a Dx7/E!gen.2 and a TX81Z. You should
- (canonically) use a linear velocity sensitive sinewave as the patch to
- play. Obviously, other patches and scales cause other effects.
- Whoop-de-doo! With the aid of the BPF function and some good samples, the
- DX can talk!
-
- U)ltraMIDI
-
- This MIDI play algorithm doesn't do any preprocessing, it just takes the
- pointed-to time slice, finds the harmonics (based on the harmonic handle)
- and outputs up to 16 to MIDI. In short, the screen is a formant guide.
- Holding the mouse button down sends an advancing MIDI stream to the synth.
- This is like an swarm of MIDI bees. Little dots show up in your picture to
- show you where the MIDI notes came from.
-
- In both of these MIDI Modes, the F Keys send certain useful real-time MIDI
- messages, incrementing or decrementing the number (mod 128 of course):
-
- - +
- --------
- F1 - F2 : Patch numbers
- F3 - F4 : Pitch Bend
- F5 - F6 : Controller number (default:1=mod wheel, 2=BC, 3=DX AT, 7=VOL)
- F7 - F8 : Controller value ( default: 0)
- F9 - F10: After Touch
-
- also, Escape sends All Notes Off and resets the control parameters
- without retransmitting them. Just toggle the Fkeys of the controls
- you wish to reset.
-
- The MIDI Channel can be incremented with the Delete key.
-
- All the MIDI parameters are displayed below the draw space in this order:
-
- Limit, Channel, Program, Pitchbend, Aftertouch, Control # , Control value.
-
- Note that swapping channels may leave notes ringing, and if the machine
- doesn't respond to "ALL NOTES OFF," you are in BIG NOISY trouble. Why not
- leave a little blank space to park the mouse while you change the channel?
-
- Quit Mode:
-
- Q)uit gives you a chance to play Marble Madness or F-18 Interceptor.
- Maybe one day, I'll even ask if you really wanted to quit!
-
- The Future:
- RGS is an obvious relative of my other programs DRWj and DRW. It is
- written in Delta Research's Jforth. The new Cloner/compressor will make
- future versions easier to put out. It works great... much better and
- easier than I had feared. This is why the program is less than 75K long!
- Immediate improvements will be the elimination of the workbench
- questions, perhaps a real file requester (gasp!) and some way to specify
- frequency/ time limits with the mouse and not a calculator. I may also
- put a real FFT in , just to see if there's a big accuracy difference.
- I've been thinking of translating the spectrogram into a MIDIFile, for
- the purpose of uploading to a score writing program, in case someone
- wants to make an orchestra talk. Also, the I)nput mode may read IFF ILBM
- files (pictures to you) to answer stupids questions like, "what does it
- sound like when you load this picture in?"
-
- The next related step, if any, will probably be a vector based system
- written in assembler. It should also have sound double-buffering and
- Bigger than the screen bitmaps and perhaps 16-bit sound (calculated,
- anyway). There will need to be a way to store samples larger than
- floppies and play samples larger than memory holds (!). If prodded, I will
- make the "IFF 8SVX to Mirage" transporter program, since I have a Mirage
- rackmount synth to test it on.
-
-
-
-
- Ye Olde Copyright Notice:
-
- This is MINE ALL MINE HA HA AHA AH AHA HAHAHAHAHAHAHAHA!!
-
- Remember: Software kills! Use this tool wisely!
-
- Like most shareware, you are free to copy this as long as you don't charge
- for the copies that you give away. As a matter of fact, I tell people that
- they MUST copy the program if they wish to be a fully licenced user
- (whatever that may be.) In lieu of money, which I'm not interested in,
- consider calling your local educational institutes and show their music
- department this program. You are free to include this program in your
- thesis bibliography.
- If you use this program in performance (and some of the modes are now
- quite suitable for it) I would like to hear about it. If you are a
- developer making your own Amiga music program and would like to steal some
- of my ideas - I stole 'em first! but call me, and you can steal some more.
- Part of the idea is to make sure that commercial programs similar to this
- are a lot more powerful and friendly.
- I am in no way associated with Intelligent Music - don't expect them to
- answer any questions about this program. I'm just taking up their generous
- offer to piggyback RGS on the M Sound/Extras disk. You may want to use RGS
- to make 8SVX samples for M to play. I suggest you go for all 5 octaves.
- M also likes to have an .info file for the samples with "FILETYPE=8SVX"
- in it, which RGS does not provide. Use the "see all filenames"
- option to find an RGS sound, or copy an existing .info file. These samples
- are also useful in any other 8SVX IFF Music program.
-
- I am after activism as a shareware concept. Money I don't need. And, it
- won't buy you a single thing.. there are no guarantees implied in this or
- any software. Neither can I say when or if the improved versions will
- appear. If you send a kitchy postcard to me with your name and address,
- the chance that you will be informed of improvements to RGS will increase.
- For your information, I collect "C.T. Art - Colortone" sunsets and beach
- scenes from previous decades.
-
- You can get to me here:
-
- J Henry H Lowengard
- 43 W 16th st. apt 2D
- NYC 10011-6320
- also via IEMUG's MIDI boards:(MIDI-NET)
- ENIAC (212) 751-2347, IEMUG (405) 733-3102
- and CompuServe: 76625,2425
-