[net.micro.cbm] music application for the c64

jf4@bonnie.UUCP (John Fourney) (08/15/84)

x

I am working on some hardware and software to control an analog
synthesizer using the c64.  I want to build a monophonic sequencer
that records what I'm playing on the synth and stores and replays
the sequence.  I want this thing to work in real-time, so that
when I go from the record to the play mode, it automatically starts
to play the sequence.  Also, I want to have the sequencer synchronized
to a drum machine.

What I have come up with so far follows.  I can read the status of the
drum machine, which puts out a trigger for each "event", by using one
of the joystick ports.  The only memory-mapped address I know is joystick
B's, which is $DC00.
So I can hook up the drum machine to one
of the joystick bits, and then when I read (I'll be using machine
language) from this address, one of the bits will correspond to the
status of the drum machine.  The drum machine trigger is a transition
from +5 to ground.

Similarly, I can find out what's happening with the synth by using
another memory-mapped address.  The control voltage from the synth
will be digitized (6 bits) from an a/d converter.  I want to use
the same address to write data back through a d/a converter to the
synth.  Does anyone know if there is an address I can use without
going inside the machine, or building my own address selector?
Could someone with the anatomy book post the memory-mapped addresses
and what each controls?
Also, what is the best way to hook into the data bus?  I need
bits D0-D7 from one of the ports.  Does anyone have experience 
(sources, names, etc.) in connectors needed for the ports,
especially the
44-pin communications interface?

I would like to know what experience people have in writing
in machine language.  What type of assemblers can you recommend?

I am planning on using this with a Moog synth, but it will be
applicable to quite a few others.  Anyone else interested in this?
Any ideas or suggestions?

thanks,

John          (201) 386-4300 (work)
              (201) 678-3256 (home)

slag@charm.UUCP (Peter Rosenthal) (08/15/84)

byte the bug


	The two joystick ports of the commodore 64 are both bidirectional
parallel ports with bit selectable data direction.  You should
be able to program one of the ports as an output port and use
it to control a d to a converter.                 

	By the way, another way of detecting the drum signal would
be to put it on an interrupt line, the same way that the 
joystick trigger button interrupts the cpu.  This will
cut the requirement for continued polling of the drum line.  

This would allow you to increase the sampling frequency
on your d to a or a to d converters.