My initial thoughts were to keep my modular system all analog. The
other side of the room is full of digital stuff. I even drive my
modular with an Arp CV keyboard. However, having the PSIM has been a
lot of fun and Brice got me thinking about using the PSIM to
interface my Roland SC-7. It's a small self-contained GM synth.
I originally wanted to verify the MIDI functionality as I was
designing my own panel and wanted to get everything included that
would be useful. I ended up with MIDI in/out, 4 CV controls, and a
SpeakJet. I have a picture of it in the photo section.
The code I have running is basically the input and output drivers.
The input is interrupt driven into a ram buffer. Since this is
running at a 31.5 kbaud, data is received every 317 uS it has to be
interrupt driven and buffered. I didn't worry about driving the
output via interrupts as I figured the code would take probably that
long to generate the next data byte.
Most of my programs are midi out. I've used midi-in code to remove
real-time active status bytes from the midi stream.
For midi output, Brice wrote a couple of programs that I have
adopted. The one I like best simply converts CV to MIDI. Nothing
real fancy but it allows CV control of note, octave, and program
change. You can get some real interesting patterns going driving a
GM synth with 4 LFOs. I have a program now that I'm working on now
that has 5 digital counters that I multiply by the input CVs, sum,
and drive the GM note and program.
I've modified the CV to midi program to quantize the input CV and
watch for changes. Whenever I see a change I generate a trigger
pulse, gate, and midi data for the GM synth. I get some really neat
glissandos with it.
The SpeakJet takes 9600 baud data so I also drive that with the PSIM.
I've written a couple of programs that output phrases based on CV
inputs. I've even taken the output of the SpeakJet as input into my
Vocoder. That was interesting.
In order to play with the SpeakJet to build phrases, I needed to use
the PhraseAlator program. This wants to talk directly to the PSIM so
I adapted my midi code to receive serial data from the PC. I made an
adapter (just a diode and resistor) to connect the RS-232 cable to
the midi in. I adjusted the code for 2400 baud input so I wouldn't
need flow control to the PC. The program simply takes the SpeakJet
data stream from the PC via the midi in port, buffers it, and
redirects it to the SpeakJet.
Adapting the receive buffer from the midi code, I wrote a program
that samples trig, gate, and cv, and stores the timestamps. Then,
via timer interrupts, outputs the same signals at a variable delay.
This program is really neat. I drive one VCO with the keyboard
signals and another with the delayed signals. I've limited the
program to a max of 3 seconds but there is no reason it couldn't be
300 seconds. I also wrote an arpeggiator program which is an
adaptation where I output user defined and predefined sequences based
on a root note.
Just for grins I wrote a dual J-K flip flop with preset and clears.
Just the thing you need for complex gating and triggering. This
evolved into a user-defined 4 counter program that generates up to
256 stage pseudo-sequences that I use to drive CVs. This is what I
am currently adapting for driving the GM synth.
Continuous back to back midi data streams really stress the PSIM data
processing rate but it will process the data as fast as I can play it
on a keyboard. Adding timer interrupts puts it right up against the
processing limit as far as I can tell.
It's a wonderful fun module that has really provided much more
capability than I ever thought. I'm having fun building long
self-running sequences that include my Roland SC-7 as well as all my
modules. In fact, I have adapted my Roland to a 1U MOTM panel so I
can install it in the same cabinet.
I also have a Kurzweil ribbon controller and want to write the
program to convert that midi stream to cvs. I haven't gotten to that
yet.
Dave
--- In SynthModules@yahoogroups.com, Larry Hendry <hendrysr@y...>
wrote:
> Dave, I do not yet have my PSIM. So, I am still rather uneducated
as
> to what it will do in many aspects. I am particularily interested
in
> what data you are communicating with the MIDI in and out ports. Is
> this just real time data? Or, have you manipulated the MIDI ports to
> input or output code or values in the code? What kind of
> communications are possible at the MIDI port. My dream would be
that
> PSIM programs could be exchanged like a sysex file via the MIDI
port.
> Of course, that may be a pipe-dream.
> Larry Hendry (extremely code stupid)
>
>
> --- djbrow54 <davebr@e...> wrote:
> > I've interfaced my PSIM both to the SpeakJet and with MIDI in and
> > out, both of which are serial interfaces using J3 and J5. It
would
> > be quite easy to add RS-232 drivers to either of these
connectors.
> > J5 would be better since the serial communications is done in
> > hardware. My PSIM Template code in the code fragments folder
> > already have the serial input and output code. You would just
have
> > to change the baud rate from MIDI to whatever baud rate you
wanted.
Show quoted textHide quoted text
>
>
>
>
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Take Yahoo! Mail with you! Get it on your mobile phone.
> http://mobile.yahoo.com/maildemo