Jump to content





A journey to Bach's Invention 1 and other miscellaneous updates

Posted by k-Pack, 16 September 2018 · 187 views

MIDI
A journey to Bach's Invention 1 and other miscellaneous updates

After recording PRELUDE1.MP3 it seemed that the Atari BASIC sound program needed to be reprogrammed in assembly.  I got out the MAC65 cart and two days later things were so messed up I wasn't sure if it was the Arduino and/or Atari software or the Arduino interface hardware giving me the headaches. 
 
I decided to go back and setup the equipment/software as it was for  "house of the Rising sun".  That seemed to work fine and it still did.
 
I couldn't just turn it off and start programming.  I had  hookup the MIDIMax and played some MMS songs and then I wondered what it would sound like if I used  the TRU connection and the miniEngine USB as a second sound source.  As it turns out,  the notes received on the Atari and miniEngine  could be mixed to create some unique sounds.
 
Later the software was stripped down to simplify the logic for conversion to assembly language. The simplified BASIC program was tested, compiled with MMG compiler and loaded on a MAX FLASH cart.  Good news 'cause I don't need a monitor and disk drive to set up an Atari for sound generation.
 
Attached Image
 
Before the assembly programing commences(again), this recording of Bach's Invention 1 was made.  A 130XE, MIDIMax and MIDI Music System software send data out on channel one to the Arduino and same data was used bythe Atari800 and miniEngine Organ(#19) sound.  The synths were on separate inputs to the mixer and then panned left and right.
 
Two tracks were recorded one for MMS voice 1 and another for voice 2.  The pan settings were changed to each track.  Timing notes were recorded so the music tracks could be synced. These time notes were not deleted before exporting to an MP3.  This is that file:
 
Sound file
Attached File  invent01.mp3 (1.8MB)
downloads: 22
 
Program files
Attached File  INVENT01.zip (16.65KB)
downloads: 20
 
What else has been going on:
 
1- The initial design of an Arduino shield to be mounted between the Arduino and MIDI shield has been competed using Fritzing.  The shield will hold the optocouplers and resistors that connect the Atari joystick ports and SIO motor control pins to the Arduino digital pins.  I haven't really decided if or from where I am going to order.  I only need one If multitrack recording techniques are going to be use.
 
2- I found a 3D printer model of the SIO design made by Norm8332 on Thingiverse.  An AtariAge forum subject was started (sometime ago) with the link to the model.
 
http://atariage.com/...00800600xl-etc/
 
I'm still learning how to 3D print and forgot to take into account the shrinkage of the print material(PLA).  The first attempts(5) were a little loose in the socket and the contacts were hard to get inserted.  Since only 2 pins are needed for feedback from the Atari to the Arduino, it only takes a little effort to clean out the holes.  Not sure I would want to do it for all 13.
 
I measured  a 2.6% difference between the printed and original.  So of course, I did a test print on the plug at 1.03X and found it to be a little tight.  Next I'll try 1.026X.
 
Attached Image
 
3- Having the software run from the AtariMax cart. is going to make life a lot easier.  Just slip the cart into the slot and bootup. Hit return and away we go. No need for monitor or disks drive…accept…
 
The joystick port is set by reverse logic.  Turning on an Arduino pin turns on the optocoupler grounding the joystick pin to 0.  At boot up the Arduino turns on all pins that ground the joystick port pins.  The AtariMax menu expects only one pin to be grounded and gets confused when they all are. 
 
The setup() function needs to be programed to toggle the joystick trigger pin to start program one on the menu whenever the Arduino is turned on or reset.  I just have to remember to turn on the Atari first.
 
Who am I trying to kid.  Is it really going to be that easy?






Latest Visitors