There was a Korg microKorg under the Christmas tree last year; only because my wife wouldn't let me set it up in November when it was purchased. I did manage to get the manual out of the box before it was wrapped. So for a whole month I read the manual and watched youTube videos.
The microKorg has a vocoder. This suggested that the audio output from an Atari running SAM could be hooked up to the line-in on the Korg. Then the Korg could modifiy, modulate, or magically manipulate the signal to yet unheard sonic stimulations.
Singing has never been one of SAM's strengths. But if auto-tune can make SAM sound this good then maybe I could have been a pop star. The score for "Row Row Row" was in the book "The Musical Atari" by Hal Glicksman, with music arranged by Laura Goodfriend (cc1984) and it seemed like a good place to start the experiments. The factory preset (A-85 Vocoder Chorus) was used to modify the input. I was a bit supprised.
In case you can't remember what SAM sounds like, the input to the vocoder is in this next file.
This was fun but I can't see SAM being my vocalist of choice. There is a chance that a few program changes and the use of the speed control POKE could change my mind.
How it was done.
The score was programmed into MIDI MUSIC SYSTEM software. Voice 1 was the music and was sent to the Korg as MIDI data to play. Voice 2 was programmed to output timing notes on channel 3 to an Arduino. The Arduino would then change the logic state on the STRIG(0) to let the Atari know it should speak the next word. The MIDI data flowed from the MIDIMax interface to the Korg and out the THRU port to the Arduino.
The song was recorded twice. Once starting at middle C and then an octave lower. Then they were offset to produce the round.
I have used the arduino interface a couple of times in the past to trigger events. This is just one optocoupler hooked up between the Arduino and Joystick port trigger.
http://atariage.com/forums/blog/572/entry-14044-sam-raaks-yuw/
The Arduino runs this program to read the NOTEON data and set the trigger
/* SAM Trigger
* This program accepts MIDI data to sequence SAM voice.
*
* When a NOTE ON command for the sellected channel is
* detected, the joystick trigger is turned on for
* 50 milliseconds to trigger the next word to be said.
*/
int trigger = 3;
byte midiData = 0;
byte noteOnCommand = 146; //number representing channel and Command
// 144(noteon)+2(channel 3)
void setup() {
pinMode(trigger,OUTPUT);
digitalWrite(trigger,LOW);
Serial.begin(31250);
}
void loop() {
while(Serial.available()<1){}//wait for data
midiData = Serial.read();
if (midiData == noteOnCommand){ // Note On - Channel
digitalWrite(trigger,HIGH);
delay(50);// give atari a chance to read joystick
}
else{
digitalWrite(trigger,LOW); // reset for next word
}
}
The SAM-Atari runs the following.
1 REM SAM ROW VOICE TRIGGERED BY MIDI
2 REM ---kPack 2019
3 REM Arduino monitors midi input and
4 REM sets trigger when word is to be
6 REM said. Audio output from Atari
7 REM is connected to line-in on the
8 REM microKorg.
10 DIM SAM$(255):SAM=8192
15 POKE 8208,50
20 RESTORE 1000:TRAP 20
30 READ SAM$
35 IF STRIG(0)=1 THEN 35
40 A=USR(SAM)
50 IF STRIG(0)=0 THEN 50
60 GOTO 30
70 REM
1000 DATA ROHW,ROHW,ROHW
1030 DATA YOHWR,BOH4T5
1040 DATA JEH5NT,LIY
1050 DATA DAWN1
1060 DATA DHAH4
1070 DATA STRIY4MM
1080 DATA MEHERAXLIY
1090 DATA MEHERAXLIY
1100 DATA MEHERAXLIY
1110 DATA MEHERAXLIY
1120 DATA LAY4F
1130 DATA IH4SS
1140 DATA BAA4T
1150 DATA AH4,DRIY4MM
The tracks from the microKorg were used as they were recorded. No additional processing was done with Audacity on the PC.
The ATR contained in the zip file is a single density 2.5 DOS disk. The Autorun file is SAM . The disk also contains a test program(VOCODER.BAS) used to let SAM speak the words without the timing. This was used when experimenting with the voice programing on the KORG. The MUS file is for use with the MIDI MUSIC SYSTEM.
These photos were taken to remind future me of the setup before I got organized.
- 1
2 Comments
Recommended Comments