Jump to content

Search the Community

Showing results for tags 'midi'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Atari Systems
    • Atari General
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Atari VCS
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Classic Consoles
  • Classic Computing
  • Modern Consoles
  • Gaming General
  • Marketplace
  • Community
  • Community
  • Game Programming
  • Site
  • PC Gaming
  • The Club of Clubs's Discussion
  • I Hate Sauron's Topics
  • 1088 XEL/XLD Owners and Builders's Topics
  • Atari BBS Gurus's Community Chat
  • Atari BBS Gurus's BBS Callers
  • Atari BBS Gurus's BBS SysOps
  • Atari BBS Gurus's Resources
  • Atari Lynx Programmer Club's CC65
  • Atari Lynx Programmer Club's ASM
  • Atari Lynx Programmer Club's Lynx Programming
  • Atari Lynx Programmer Club's Music/Sound
  • Atari Lynx Programmer Club's Graphics
  • The Official AtariAge Shitpost Club's Shitty meme repository
  • The Official AtariAge Shitpost Club's Read this before you enter too deep
  • Arcade Gaming's Discussion
  • Tesla's Vehicles
  • Tesla's Solar
  • Tesla's PowerWall
  • Tesla's General
  • Harmony/Melody's CDFJ
  • Harmony/Melody's DPC+
  • Harmony/Melody's BUS
  • Harmony/Melody's CDFJ+
  • Harmony/Melody's General
  • ZeroPage Homebrew's Discussion
  • Furry Club's Chat/RP
  • PSPMinis.com's General PSP Minis Discussion and Questions
  • PSPMinis.com's Reviews
  • Atari Lynx 30th Birthday's 30th Birthday Programming Competition Games
  • 3D Printing Club's Chat
  • Drivers' Club's Members' Vehicles
  • Drivers' Club's Drives & Events
  • Drivers' Club's Wrenching
  • Drivers' Club's Found in the Wild
  • Drivers' Club's General Discussion
  • Dirtarians's General Discussion
  • Dirtarians's Members' Rigs
  • Dirtarians's Trail Runs & Reports
  • Dirtarians's Wrenching
  • The Green Herb's Discussions
  • Robin Gravel's new blog's My blog
  • Robin Gravel's new blog's Games released
  • Robin Gravel's new blog's The Flintstones Comic Strip
  • Atari Video Club's Harmony Games
  • Atari Video Club's The Atari Gamer
  • Atari Video Club's Video Game Summit
  • Atari Video Club's Discsuuions
  • Star Wars - The Original Trilogy's Star Wars Talk
  • PlusCart User's Bug reports
  • PlusCart User's Discussion
  • DMGD Club's Incoming!
  • DASM's General
  • AtariVox's Topics
  • Gran Turismo's Gran Turismo
  • Gran Turismo's Misc.
  • Gran Turismo's Announcements
  • The Food Club's Food
  • The Food Club's Drinks
  • The Food Club's Read me first!
  • The (Not So) Official Arcade Archives Club's Rules (READ FIRST)
  • The (Not So) Official Arcade Archives Club's Feedback
  • The (Not So) Official Arcade Archives Club's Rumor Mill
  • The (Not So) Official Arcade Archives Club's Coming Soon
  • The (Not So) Official Arcade Archives Club's General Talk
  • The (Not So) Official Arcade Archives Club's High Score Arena
  • Adelaide South Australia Atari Chat's General Chat & Welcome
  • Adelaide South Australia Atari Chat's Meets
  • Adelaide South Australia Atari Chat's Trades & Swaps
  • KC-ACE Reboot's KC-ACE Reboot Forum
  • The Official Lost Gaming Club's Lost Gaming
  • The Official Lost Gaming Club's Undumped Games
  • The Official Lost Gaming Club's Tip Of My Tounge
  • The Official Lost Gaming Club's Lost Gaming Vault
  • The Official Lost Gaming Club's Club Info
  • GIMP Users's Discussion
  • The Homebrew Discussion's Topics
  • Hair Club for Men's Bald? BEGONE!


There are no results to display.

There are no results to display.


  • AtariAge Calendar
  • The Club of Clubs's Events
  • Atari BBS Gurus's Calendar

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start










Custom Status



Currently Playing

Playing Next

Found 33 results

  1. Hi all: I have taken the better part of 6-8 hours to create this video, it is a remake of the song by Andy Kim, Rock Me Gently, a MIDI tune. I am also enclosing several MIDI files on 1 Meg disks , these disks do not have DOS on them, you have to use Spartados X with them , whether it be in a cart format or with an U1MB board. anyways disk one should have a Spartados X disk or a Spartados X cartridge Remake of Andy Kim's Rock Me Gently MIDI Files # 1.atr MIDI Files # 2.atr MIDI Files # 3.atr MIDI Files # 4.atr MIDI Files # 5.atr MIDI Files # 6.atr
  2. When a sound is initialized on the MicroKorg, it’s a very simple sound. Reminiscent of the Atari 8 pokey sound created when playing an Advanced Music System II file. Change the OS1 - Wave to Square and the sound seems a little more Atari like. The one thing that you become aware of is that MicroKorg (or any MIDI synth) will play in perfect pitch where the Atari can only be played at an approximation of the pitch. Therefore, a way of detuning a note to match Atari is required. It actually works when the calculated pitch bend setting required to detune the MicroKorg is used. KORG8BIT.BAS was written to read the MIDI data sent to the MIDIMax from the Microkorg keyboard. The Atari reads the data and when a NOTEON command is received, it sends a pitch bend setting and then passes the NOTEON command back to the MicroKorg. Because the MicroKorg's MIDI - LOCAL is set to Off, the keyboard output will be sent to the MIDIMax; not directly to the synth. This allows the Atari to control the synth. To try this out…. Hook the MicroKorg's MIDI OUT and MIDI IN to the Atari MIDI interface MIDI IN and MIDI OUT. MicroKorg Settings Initialize voice: Shift 3,3 VOICE - VOICE ASSIGN = MON PITCH - BEND RANGE = 1 PITCH - VIBRATO = 0 OSC1 - WAVE- SQU MIDI - CHANNEL = 1 (used by program) MIDI - LOCAL = OFF MIDI - CLOCK = EXT Save your sound and global settings if you want. Boot up your Atari with the M: device autorun.sys file and run KORG8BIT.BAS. You should be able to play the MicroKorg's keyboard one note at a time (mono) and hear the effect of the detuning program. I thought there was a possibility that BASIC would cause a noticeable delay, but I didn't feel the program needed to be compiled. The sound is still to clean but to me it sounds a little more like it's POKEY produced. Got one more step before any time is used recording audio files. Program notes: pokey korg.atr "pokey korg.atr" holds the files created to move this project along. They are in the order they were created and how they were used. .BAS are Atari BASIC and .BTX are LISTed Text files. DOS.SYS,DUP.SYS - Atari Dos 2.5 AUTORUN.SYS - MIDI Handler M: device MIDISHELL.BAS - Program lines that are required for using the M: device. TONES.AMS - ADVANCED MUSIC SYSTEM II was used to create a file to play notes C1 - E6 for recording into Audiotonic (Audacity). This way the frequency could be derived from the sample and compared with the standard tuning frequency for each note. NOTES.GMS - A Magic Calc spreadsheet to organize the following data from audio file. MIDI Note Number: 24 - 88 - AMS note range Note: C1 to E6 Standard pitch: Hz Time mark for start of note in audio file Number of Cycles and Time used to calc Frequency of Atari's pitch or …… Audiotonic/effect/change pitch option gives the beginning pitch of a selected segment And then….. Pitch Bend Number needed to change Micro Korg pitch to Atari's. It’s a 14 bit number scaled between center and 1 semitone. 8192 = Pitch bend centered. Assumed linear function. pitch adjust page 1.BMP pitch adjust page 2.BMP A1TOA5.BAS/.BTX - Tests the notes A1-5 to evaluate Pitch Bend numbers. Sends Pitch Bend Command then NOTEON. Adjusted pitches sounded reasonable. PWDATA.BAS/.BTX - data Statements for Midi Note number and Pitch bend. PWDATA2.BAS - program to take PWDATA.BAS and output data statements for the MSB and LSB of a 14bit number. To use with the PITCH BEND MIDI command. PWDATA2.BTX is the file of the Data statements with MSB and LSB to be ENTERed into a program at lines 31000 to 31050 step 10. MIDIIN.BAS/.BTX - simple test program to monitor the data stream from MicroKorg. Watching this data helped identify the MIDI Settings. Number 245 Active Sensing pulse needed to be filtered out by the Atari to keep the data buffers from over writing their data. The Pitch Bend Wheel sends out more data then the Atari can handle. KORG8BIT.BAS/.BTX - This program will accept midi data from the MicroKorg keyboard. Resend it back to the synthesizer with the pitch bend adjustment before the NOTEON command. NOTE: NOTE is an Atari BASIC reserved word and can not be used as NOTEON Or NOTEOFF. KEYON and KEYOFF variable names were used in place of the MIDI commands.
  3. The microKorg was plugged into the MIDIMAX. Then a few simple Atari BASIC programs to control the Pitch Bend Wheel were written for no other reason then I hadn't done it before. A couple of ideas did present themselves as the programs were written. As always, my list of possible projects increases. For many of the adjustable parameters of a synthisizer, the Control Change command (176+channel # -1), Control number (0-127), followed by the set point value (0-127) was adequate. The Pitch Bend wheel was an exception. An exception that was deemed important enough to get its own command code. This pitch bend command number (224+channel #-1) and a 14bit number split between 2 - 8bit words makes it possible to divide the Pitch Bend Range into 16384 (0-16383) increments. When the pitch bend wheel is in the center position, the value will be 1892. The value will be sent in low bit - high bit order. Convert a 14-bit Value to 2 - 8-bit bytes X=Value (0-16833) Most Significant 7 Bit=INT(X/128) Least Significant 7 bits=X-MSB*128 This article gives a much more detailed explanation of pitch bending, Managing MIDI Pitchbend Messages <https://sites.uci.edu/camp2014/2014/04/30/managing-midi-pitchbend-messages/> On the microKorg the pitch bend range can be set between 0 and 12 semitones. Set the edit knob to PITCH and adjust dial 4. A negative range changes the direction of rotation. All synthesizers are not created equal and you may want to consult the manuals. These simple programs should work if yours will accept the Pitch Bend command. The first is the complete program and the other two replace lines 100 - 299970. The programs are in the single density ATR along with the M: driver(autorun.sys) and Dos 2.5. ".BTX" are BASIC TEXT files.microKorg pitch bend.atr Let me know if you come up with any algorithms I might like to try. PBRND.BAS 1 REM microKORG PITCH BEND WHEEL 2 REM RANDOM POSITION 3 REM by Kevin Packard 4/2022 5 REM 100 GOSUB 30000:REM set up variables 200 REM start of main loop 210 REM RANDOM SETTING 220 B=(INT(RND(0)*127)):REM WHEEL SETTING 225 C=(INT(RND(0)*127)):REM WHEEL SETTING 230 PUT #1,A:PUT #1,B:PUT #1,C 240 FOR W=1 TO 20:NEXT W:REM WAIT 250 GOTO 220 29997 STOP 29998 REM ************* 29999 REM set up 30000 REM 30010 CHANNEL=1:REM MIDI CHANNEL 30020 A=(224+CHANNEL-1):REM MIDI COMMAND BIT 30030 B=0:REM LOW 7 BITS 30040 C=0:REM HIGH 7 BITS 32000 REM OPEN MIDI PORT 32010 CLOSE #1 32020 OPEN #1,13,0,"M:" 32030 XIO 40,#1,0,0,"M:" 32040 RETURN PBLOWHI1.BAS 1 REM microKORG PITCH BEND WHEEL 2 REM LOW TO HIGH - SINGLE LOOP 100 GOSUB 30000:REM set up variables 200 REM start of main loop 210 REM 220 FOR X=0 TO 16383 STEP 30 225 C=INT(X/128):B=X-C*128 230 PUT #1,A:PUT #1,B:PUT #1,C 235 NEXT X 240 REM FOR W=1 TO 20:NEXT W:REM WAIT 250 GOTO 220 29997 STOP PBSIN.BAS 1 REM microKORG PITCH BEND WHEEL 2 REM LOW TO HIGH - SINE WAVE 100 GOSUB 30000:REM set up variables 200 REM start of main loop 210 DEG 220 FOR X=0 TO 359 STEP 10 222 Y=8192+INT(SIN(X)*8192) 225 C=INT(Y/128):B=Y-C*128 230 PUT #1,A:PUT #1,B:PUT #1,C 235 NEXT X 240 REM FOR W=1 TO 20:NEXT W:REM WAIT 250 GOTO 220 29997 STOP
  4. Who owns a new or old midi module or synthesizer, and has connected it to his TI-99/4A or other home computer. Which module / synthesizer Which interface, how connected Which software Around 1988 I had a Roland D10, Connected through a CLAB MIDI interface Software was Supertrack 64.
  5. Changing presets/patches/voices/instruments/programs on your MIDI gear was rather easy in the early 80's. Having more the 128 instruments on a digital synth was unbelievable. So unbelievable that the original MIDI standard got a special command number( 192+channel #-1 ) and a 7bit number (0 - 127) to made the change. The MIDI Music System software provided the command Sn to accomplish this. Insert Sn between two notes in a voice and the patch magically changes. Then the future happened and synthesizer manufacturers added banks of 128 instruments. The MIDI controller 32 was assigned the task of controlling the least significant number and controller 0 as the most significant number to designate 128 banks of 128 banks of 128 patches. That's 128*128*128=2097152 patches. Accessing that many instrument voices in MMS requires these commands P32,LSB P0,MSB Sn It is pretty simple as far as MIDI standards are concerned. But..... it seems every manufacture displays patch codes in their own way and deriving these numbers may require a close examination of the manual. I've gone through my MIDI equipment and documented how to calculate the numbers from the front panel displays of the patch information. Your equipment will more then likely be different but you may find this of interest and I'll be able to use it as reference when next I forget. -------------------- MIDIPlus miniEngine USB- a simple midi device with MIDI standard instruments, 127 possible sounds. Three digit display shows sound number. The miniEngine is supplied with a card with the MIDI numbers and names of the patches. MMS command: Sn where n = 0 to 127. Could it be any easier? -------------------- KORG - MicroKorg - This MIDI device contains 128 user definable patches. The patches can be accessed by setting the Dial(bank select) , A/B button(bank side) and the 1-8 buttons(program numbers). These 3 settings define a 7 bit number that sets the patch. The patch displays as (A/B bank side)(Bank Select Dial)(Program button). display = (A/B) (X) (Y) n = (A=0 or B=64)+((X-1)*8))+(Y-1) MMS command: Sn ------------------ Yamaha TG33 - There are 5 banks of 64 voices. 1 - internal programable, 2- Card (card can hold 1 or 2 banks), and 2 - presets. Controller Command 00 and 32 are used to set MSB and LSB for bank. Voice Display = (bank)X.Y Name Set bank (page 104) bank Voice Mode Multi Mode (?) Internal 0 10 Card 1 1 11 Card 2 4 14 Preset 1 2 22 Preset 2 5 25 MMS commands P0,0 MSB P32, bank LSB Sn ,where n = (X-1)*8 + (Y-1) Have not worked with Multi Mode. ----------------- E-MU Proteus 2000 - The Proteus 2000 ships with 4 banks of USER programable memory and 7 banks of COMPSER presets. More programed ROMs can be added. Display: preset location, preset numbers, bank number, name (page 19) MMS command: P0,n Preset location (MSB) USER = 0 COMPSR = 4 more ROM = ? P32,n Bank (LSB) USER = 0-3 COMPSR = 0-7 Sn 0-127 ----------------- KAWAI K1r - Patches can be made as Single(a combination of 4 wave forms) or Multi(a combination of 4 samples. Changing between internal memory and external (card M8) is done on the front panel(I,i,E,e). Single = 0, Multi = 64 Capital letter = 0, Lower case = 32 (I = internal, E = external) A=0,B=8,C=16,D=24 Number = n-1 Single iB-6 = 0 + 32 + 8 + (6-1) = 45 Command S45 Multi IC-4 = 64 + 0 + 16 + (4-1) = 83 Command S83 Switching between internal and card memory during MMS play - unknown how/if it can be done. ----------------- This data is correct until I learn otherwise.
  6. The program I am about to describe should be considered a beta version - of a beta version. I was using it to test out some Ideas for inputting drum patterns so they could be saved as VOICE data files to load into MIDI MUSIC SYSTEM(MMS) projects. It has the capabilities of setting up a 4/4 pattern and then outputting to a MMS voice file. What it doesn't do is play the pattern or check for any kind of error. Most of the patterns are from books, I haven't experimented with rhythms. But I have found many errors in the program that need to be avoided. These two links are the foundation for this program. A8 MMS programing drum tracks - Out of the Pack - AtariAge Forums A8 MMS Voice File Data Explanation - Out of the Pack - AtariAge Forums Underneath the hood of this program may be one of the ugliest programs I have ever written and allowed to see the light of day. The idea of using the joystick input is from Your Atari Computer (YAC). Joystick input Page177 and subroutine 4-33 on page 165 (included on disk). YAC was the only resource needed. Pages on string manipulating have become a little more frayed. If you use the program, try to limit the number of instruments played on the 1/16 notes to 4. You may start to hear a delay when more are played. There is nothing to prevent you from trying to play them all. When naming files, the device "Dn:" is required. Standard Atari DOS filenames are used. The extension must be ".Vnn. Where nn is a number from 01 to 99. MMS automatically saves voice files with the V and then the voice number being saved. When importing the data to MMS the filename requires entry of the file extension but then asks which voice it should be loaded into. Also remember MMS will append the file at the end of anything already in the tracks. The program has zero error protection. There shouldn't be any errors entering the pattern. Make sure a formatted disk is in the drive and file naming rules are followed. If there is an error use "? FNAME$" to see if that is the problem. Sorry but the easiest way to recover from an error is to just type RUN and start over. I think I have found an error in timing caused when the program creates an incomplete Triplet. You can be off by one ^Z and not have it show up in the beats/measure (it gets lost in the round up). It has only happened once, but I was so busy editing the pattern in MMS I forgot to write down what I did. The last thing (that I know of) to considered is that all MIDI drums may not be play back the same. I didn't program in the use of the sustain controller but some synths may need it. It did seem to change up when I switched from the MIDIPlus-miniEngine USB to the Proteus 2000. After the file has been written, the program ends. "RUN" the program to reset the variables and display for the next measure. It's still easier than doing the work by hand. Program: -MMSDRUM.atr Instructions: Design or find a Drum pattern. Load MMSDRUM.BAS Use a joystick to move the cursor within the grid. Press trigger to toggle on or off instrument hit. When done press START and then input file name as "Dn.filename.Vnn". "nn" must be a number between 1 and 99. After the program has saved the pattern, it will end. Re-"RUN" the program to reset the variables for the next 4/4 pattern. To Play: Load MIDI MUSIC SYSTEM software. Press "A" and assign the midi channel for the track you will be programing the drums on(1-20). Press "L" to load voice. Input Filename. If load successful it will ask which Voice to put it in. Voice 21 to 99. Load all your patterns into different Voices. Choose your drum voice track and enter a series of Jumps (Jn) to the voices in the order you wish them to play. Return to menu and press "P". You should hear the Drums if all went well. DRUM200.ATR holds some examples from the book. The .V31, .V32, and .V33 is the voice data created with MMSDRUM. The .MUS, MMS Files, can be loaded and played (be sure to set the midi channel for your setup). DRUM200.atr The following is a simple pattern that was used to photograph the screen. I never saved it but if you try it out, you will agree………. it needs "MORE COW BELL." Modifying the program: If you are going to change an instrument in the drum set, the grid can be changed in Lines 2000 to 20090. Change the name but make the grid line up with the rest of it. The MIDI note to play can be changed in line 2103 to 21140. If you want to change the Velocity setting, they are in line 21010. No accent VELLO = Low velocity. Accent VELHI = High velocity. MMSDRUM program was used to create the drum track for "You Can Take It Back"
  7. Using MIDI MUSIC SYSTEM software to build music compositions seems to fit my skill set. I'm not proficient at reading music but I can translate it. My latest arrangement was a Celtic folk song for flute and drums. Music was entered into MMS and a simple drum pattern was added. It sounded terrible. Turns out that a synthesized flute doesn't need to breath and sounds very mechanical without those breaks. Selected notes were shortened and rests were inserted to maintain timing and give the illusion that a breathing person was playing the flute. Sounded much better but it was tedious work. Then I started to think I might have saved a Voice file and used a program to make the changes. Then import the voice back into MMS. Then it dawned on me that I was going to have to figure out the file structure of a voice file and what the data means. At this time I want to share what I think I know about how to create a voice file to import into MMS. Then someday someone (or myself) might write a useful program to create those files. File header and data structure: First thing that was done was to take a look at what a voice data file contained. A few notes were entered in a voice and then the voice was saved. This short program was written to list the content to the screen. Simply change the filename to match the one you wish to view. Use the cntl-1 key to stop and start scrolling. 10 TRAP 100:COUNT=0 20 OPEN #1,4,0,"D:TEMP.V01" 30 GET #1,A:? A;" "; 33 GET #1,A:? A 37 FOR X=1 TO 3 40 GET #1,A 45 COUNT=COUNT+1 50 ? (A), 56 NEXT X 60 ? :GOTO 37 100 ? "COUNT=";:? COUNT This short voice file listing demonstrates the format of the voice file. You may want to build your own voice files and check the results. 24,0 250,0,0 10,48,0 85,48,0 75,48,0 87,48,0 250,0,0 165,48,0 245,51,255 COUNT= 24 It became apparent that the first two bytes will be the number of instructions in the file. LSB - MSB format. Then the instructions are listed. At the end of the a count of the instruction sets is displayed. This should match the 16 bit number at the beginning of the file. An instruction consists of three numbers. The first designates the specific instruction and the next 2 are for any required data. I am assuming that if the data byte is not required by the instruction then MMS does not clear them to zero. That's the only explanation I have for some of numbers I have seen. The first instruction will always be a measure marker(250). Every voice has a measure marker at the beginning. Check it out. Rests and Notes Rest Rn - 0,LSB,MSB n=0 - 65535 cycles In MMS the duration of the rest is its clock value. In MMS you would most likely assign a clock value as W,H,Q,E,S, T, or Z. Their clock values are listed on page 22 of the manual. The "." and " .. " are used to adjust the number of cycles required for the additional durations. There is also the option of setting the duration by entering the clock value as ^n. Keep in mind that meter will determine the clock value in a measure and to keep all the voices synced the total clock value must remain the same for all measures in a composition. (But you don't have to.) Note instructions are between 1 (C1) and 108(G9). If a tie is used bit 7 will be set making the value above 128. To calculate: MMS note number = (MIDI note number - 23) + (128 * IF tie) The duration is set by the next two numbers much the same as for rests. The Table The rest of the instructions are to manipulate the MMS music settings or MIDI instrument. For more information check the manual. If I missed any I'll add the information if I ever find a need to use them. If the Second or Third number's has not been determined then ND has been placed in the table. In fact, it may not have a purpose. Function MMS Input Byte 1 Byte 2 Byte 3 Rest Rn 0 LSB MSB Note (C1-G9)n MIDI# 24-127 MIDI#-23 (+128 if tie) LSB MSB Tempo Tn 240 35-290 ND Sound Sn 241 0-127 ND Program (CC) Pn,x 242 Controller number Setting 0-127 Repeat REPn 243 0 = forever 1-255 ND End Repeat ENDR 244 ND ND Jump to Voice JMPn 245 1-99 ND RETURN RTN 246 ND ND Change Channel Velocity /CHn VELn 247 247 Channel-1 0-127 255 0 Transpose UP TRUn 248 0-127 ND Transpose Down TRDn 248 Start +256 - n LSB * ND Transpose Zero TRZ 249 ND ND Measure Marker M 250 ND ND Tempo up TUn 251 0-127 ND Tempo down TDn 251 Start +256 -n LSB * ND Pitch Wheel High PWHn 253 ND ND Pitch Wheel Low PWLn 253 ND ND Pitch Wheel Zero PWZ 253 0 ND *= I Think ND = not determined Table edited 11/9/21 I hope this is a good start to understanding voice files. There are going to be some revisions to this table if I find a need to write a program that will import and export MIDI MUSIC SYSTEM Voice files. That may happen If I find that the M: device driver for the MIDIMax will work with Diamond GOS. I'll incorporate the changes when they are brought to my attention.
  8. How do I play a note via MIDIMATE? I'm trying the following code but hear nothing in Altirra: org $6000 main sei ldy #7 lda #0 sta:rpl ^20,y- mva #$28 ^28 mva #$15 ^24 mva #$23 ^2f mva #0 ^2e mva #$10 ^2e mvx #$c0 ^2d ldx #$01 ; instrument jsr send ldx #$90 jsr send ldx #$3c ; middle C jsr send ldx #$7f jsr send mva $10 ^2e cli rts send lda #$10 and:rne ^2e sta ^2e mva #$10 ^2e stx ^2d rts run main end
  9. Does anyone use Cubase on an ST emulator? I created a disk image from my old Cubase floppy disk, so I could use it with NoSTalgia, and whenever I try to run it, I get this error message: "MROS not found!" I thought maybe it was because the data had not been properly extracted from my disk, so I downloaded a Cubase disk image I found online. But still, same error message: "MROS not found!" I even tried several different versions of Cubase, and still no love. Any ideas why this is happening? I never had this problem on my ST, and it's the same Cubase!
  10. Hello everyone and nice to meet you! My name is grumpygamer and I am really grumpy! :D Nah, just kidding! I'm just a dad with an insane (and very expensive) passion for all things retro! Anyways I've come into possession of an Atari 520STfm to discover I can play midi on it! Now back when I was young I owned an Amiga (boooo! :P - really loved it!) and I used to make music on it with Soundtracker. So here I am wondering the following: Is there is a tracker on the ST that supports MIDI and at least 8 channels? Is my Atari good enough? If not which one would be the better one to use? I have it on my desk now and only have 1 FDD with Music maker, I tested it with Kontakt on my pc as a sampler and it works! Now I only need to find a tracker to work with for multi channel! Any help is much appreciated!
  11. MrPastGlory

    the setup

    From the album: Mr.PastGlorys´ collection

    Mr.PastGlory's only Synthcart ensemble
  12. I never really thought about it but a drummer has 2 hands and 2 feet; that's 4 percussion instruments that can be struck at the same time. But are they really? I'm no drummer so the best place to start programming drum patterns was using a book of drum patterns. I chose to start with 200 Drum Patterns by Rene-Pierre Bardet and a chart of the standard MIDI note number for the percussion instruments. MIDI Music System was loaded up and a drum pattern was entered. Two or three voices were used for each pattern - A, B, Break. Then three more MIDI VOICEs were needed to sequence the pattern. I've avoided entering more until now. Trying to understand a voice file data has forced a much deeper understanding of note duration and clock cycles. Notes with the standard duration can be inputted as W, H, Q, E, S ect. or you can input a "^" followed by a 192, 96, 48, 24, 12 ect. clock cycles. As it turns out the drums can be programmed with duration of 1 clock cycle. Play them with a fast tempo and the drum instruments will sound like they were struck at the same time. Of course, MIDI is serial so nothing is played at the same time. "Fast enough" is a rather loose term. The clock cycle is constant for a given note duration. A quarter note is 48 clock cycles. The tempo is used to to set the speed at which the music is played. This a clock cycle period can change from 0.03571 seconds per cycle at 35 beats per minuet to 0.00431 sec/cycle at 290 BPM. Say you want to play a base and snare drum at the start of a 1/16 note. The base and snare are played for 1 cycle and a rest for 10 cycles. That's the 12 cycles required for a sixteenth note. C2^1, D2^1, R^10 or C2^1, D2^11. I have put together a couple of drum solos. RNB1.MUS was without using the ^ duration settings. ROCK1.MUS and RANDB1.MUS were hand coded into MMS voice 51-53. Voice 1 was then programmed with a series of jumps to the patterns. Change up the tempo and hear for yourself when the delay between strikes becomes noticeable. drumtest.atr Now I have a method of programming drum patterns and an understanding of the MMS voice file format. If the M: device works under Diamond GOS I can start automating the task of programming drum patterns.
  13. Hi everyone I'm proud to present the MidiBox TIA Cartridge! This is the first FULL midi synthetizer based on the TIA chip and cartridge cased. This is a DIY project, the firmware is opensource. It was not easy. Not because of the technical issues, just bad karma. In 2011/2012 I made a working firmware and a manager under Max/MSP. Because of personal reasons, I put the project on hold. End of 2012, I received a message from Eptheca who asked me the status of the project. With his help we decided to print 3 PCB’s. Unfortunately during this period, the hard drive of my computer suddenly decided to leave me, and I lost all my work: (( I sent the drive to Shanghai to try to recover my data, but of course my disc was one of the non-recoverable 10% (always this bad karma). So now we had the box and the electronics but nothing to put in it. In February I decided to rewrite everything but it took me some time. ... Done! We've now got a new firmware and the application to manage the box. I am inspired by the version 1 MB-SID. I kept all the features of this engine. I improved the management of banks, I dedicated two envelopes to the voice of the TIA which is free, and a few small details that might please you. Here is the features of it: 1 dedicated envelope for each voices(so 2) with optional non-linear curve and Sync which can be assigned to Amplitude and pitch. 3 specifics Mode to mix Modulation matrix and this env Env+Mods, Env*Mods, Env+(Env*Mods). 2 additional envelopes with optional non-linear curve and Sync which can be assigned to Amplitude and pitch. 4 additional LFOs with different waveforms and Sync which can be assigned to Amplitude and pitch. Pitch Bender Portamento/Glide function with Optional "Constant Time Slide". Delays 1 Arpeggiator for each voice(so 2) with optional Sync. Poly, Mono and Legato Mode Separate keyboard zones for each voice (key splitting) allows to play voices separately Extended Mode for keys(all note reponse) or non extended with offset and length. 1 velocity response for each voices (so 2) with optional CC assignment Free controller assignments to Modulation Wheel and Aftertouch LFOs, Envelopes, Arpeggios optionally syncable via external MIDI clock (one for each;) Bankstick support (4 banks of 128 sound patches per stick, up to 8 can be connected) so 32 banks. And much more. Coming soon: wave and CC sequences which allow more percussive sounds (Wavetables) with dedicated banks. Drum or Fx Kit Presets with dedicated banks. 8 Analog I/O 4bit sampling Atari 2600 Joystick and Video touch pad support. There's no CS on the cartridge version, but there's enough room in FW to add it. If someone wants to create it, you are welcome. This firmware is only for 18f4685. You can add MB-Link too if you need it, PORTA.0-7 and PORTB.0-3 share 8 I/O on the AUX connector. No CS; but I designed a Max/MSP Application (windows and Mac compatible): And it has iDevice support(sorry for those who boycott Apple products): I'm trying to finish a Max4Live version, with a common file between both applications that will retrieve the names of banks, patches and all parameters without having to open the input of the midi track and make a CC request (there's no SysEx in Ableton Live). Now i suppose you want to hear it: http://soundcloud.com/bdupeyron/mb-tia-mantua-preset Voilà!!!
  14. Hello all, I'm getting back into ST MIDI sequencing after a decade (or two?!?) away. The ST software is just so uniquely brilliant and in many cases, there is absolutely nothing like it on the market today. I was wondering if there is a good resource for ST manuals. I can find some on Tim's Atari MIDI World, but I'm hoping there is a larger resource. /ü
  15. I need serial (in/out) MIDI cable or MIDI interface schematic (scheme) which will works with Raster´s Midi Pattern Editor on ATARI 800 . http://raster.infos....tari/mpe2v3.zip Screenshots>
  16. Hi guys, I hope someone could help me I recently brought a Atari ste and got given a E Magic LOG 3 with it. It's like a midi expander box if anyone has any info on what it's used for or if it is purely a midi expander. What sort of price do they go and is it a sort after item. I'm totally new to the st scene so if anyone has any info or knowledge please let us know. *It's not my photo used but looks exactly like that
  17. I started looking at a disassembly of Melody Blaster, after I became curious as to which ECS games supported tape expansions. My hope is to create virtual tape images for jzintv that can be used to allow extra music into the game. As an intermediate step, I'll try creating a ROM hack with new music in it. The ROM follows the standard memory map for 12K Mattel games: 8K in the $5000-6FFF range, and 4K in the $Dxxx range. Most of what's in $6xxx is the Help text, and it overflows a little into $D0xx. After that is the 11 tunes. There are a bunch of calls in the code to functions at $40xx and $41xx, so the ECS "Executive ROM" must be located there. The ECS does have onboard RAM, and I'm pretty sure tunes are loaded there and then parsed by the ECS EXEC. The list of pointers to the starting addresses of each tune starts at $57E7 (cartridge ROM), with the low-order byte listed first, and the starting address for the current tune is loaded into $354 (16-bit system RAM address). The game allows for one extra tune to be loaded into memory, either from a tape or by playing a tune (one channel only). I hope tape tunes aren't limited to a single channel, but I don't know yet. All the music data fits into 8-bit words, probably because that's the width of the ECS RAM. As for the tunes, the first 18 bytes comprise the title. I looked at the first 2 tunes so far, which both had a 9-byte signature starting with 0 1 1 9 6 6 9 4. After that was the data for each of the 4 channels used by the game (2 sprite-based notes per channel). The channels' lines are listed separately, in order from low to high, and not all of them are used. The music data consists of byte pairs: a note ($18 is Middle-C) or $80 for a rest, and then a duration in "ticks". In most cases, channel data is separated by the signatue 1 1 $80 1, but I found an exception in Tune 2 "ROW,ROW THE BOAT". That signature appears twice in a row in Tune 1 "BLASTER'S BLUES" because one channel is not used. In many cases, channels' music data is prefaced with a rest, because another channel has a starting pick-up. The first channel for BLASTER'S BLUES is the left-hand harmony line, which has a small pause to allow the pickup in the right hand melody line. Then the channel-separator signature appears twice, followed by the melody line. Strangely, the fourth channel has a series of rests which add up to 234 ticks, where it is then used to play a second note in the right hand at the tune's end. There are a total of 9 consecutive rests here, the first 8 of which are 25 ticks each ("$19"), and the last of which is 34 ticks ("$22"). There's a little more data here which I haven't yet deciphered. ROW,ROW THE BOAT is played as a round, with the harmony line picking up a measure behind the melody line. The same value $18 is used for the C note in their respective octaves, which leaves me to believe that the ninth byte in the signature following the title contains bits to tell us which channels have octave offsets (in other words, are meant to be played by the left hand or the right hand). The end-of-channel signature is also absent at one point, so maybe the header signature tells us which channels are not used at all? That's as far as I got so far. I'll take the time to study the other tunes later today. Another interesting point is that there will sometimes be tiny spaces between notes at what appear to be arbitrary points: a note played for 2 ticks followed by a 1-tick rest in one hand and for the full 3 ticks in the other hand. That indicates to me that the music data was created by a device that a MIDI keyboard was connected to, and that data was only moderately cleaned up afterwards to get a consistent tempo across all channels.
  18. I have yet to input music into the MIDI MUSIC SYSTEM (MMS) software and have it correct the first play through. I can hear the error as it is played but MMS gives no indication of which measure it might be in. One solution requires an Arduino, MIDI shield with a THRU port, and numeric display. The plan was to program a MMS voice to out put a MIDI command once per measure on an unused channel and have the Arduino count the number of times the command was received. I really didn't put two much effort into figuring out the best way to accomplish this. It worked with what parts were avalible with as little time as possible. It was one of those projects not worthy of documentation until it took me longer to find my notes then to rebuild and use. Now I'll at least have this for reference. ------------------------------------------------------------------------------------------------------------- On the ATARI The MMS software was easy to program. A loop was made to repeat one measure with a couple of SOUNDn commands and channel 16 to output a 0 or 1 to toggle the input to the arduino. The below example is in 4/4 time. For this piece of music, VOICE 20 was programed with the following information. Be sure to {A}SSIGN VOICES from the main menu to the your MIDI channel of choice. Repeat X86 Sound #1 RS Sound #0 RE. RH. EndR The Sound #n command is a 2 byte command. Simple and fast. The Arduino will receive the command and will turn on a digital pin when 1 and off when 0. The REST is a 1/16 beat and gives the display enough time to register a change in pin status. The rest of the Rests make up the 4 beat measure. -------------------------------------------------------------------- The Arduino First prototype In this case the Arduino is an interface between MMS and a digital counter. Turn on pin three and the optocoupler grounds the counter plus lead. Turn off pin 3 and counter is incremented. A push button is also provided to reset the counter. The LED on pin 2 is an indicator that the Arduino is receiving the measure pulse. /* MMS Measure Counter * * Working with MIDI MUSIC SYSTEM it is often hard to know which * measure you are listening to while editing a song. An Arduino can be * programed to accept MIDI data on Channel 16 that will cause a counter * increment. A Voice channel in the MMS can be programed to output * a signal to reset or increment the display of a $1.00 step meter. * * This program will look for a midi program change command on channel * 16 (207). Then read data * 0 for off * 1 for count * */ int ledPin = 2; int countPin = 3; byte midiCommand = 0; byte midiData = 0; byte programChange = 207; //number representing channel and Command // 192(program change)+15(channel 16) void setup() { pinMode(ledPin,OUTPUT); pinMode(countPin,OUTPUT); digitalWrite(ledPin,LOW); digitalWrite(countPin,LOW); Serial.begin(31250); } void loop() { while(Serial.available()<1){}//wait for data midiCommand = Serial.read(); if (midiCommand == programChange){ // Note On - Channel while(Serial.available()<1){}//wait for data midiData = Serial.read(); switch (midiData) { case 0: // Turn off pins digitalWrite(ledPin,LOW); digitalWrite(countPin,LOW); break; case 1: // increment counter digitalWrite(countPin,HIGH); digitalWrite(ledPin,HIGH); break; } } } ------------------------------------------------------------------------------------------ The counter and display unit The counter/display is left-over from a challenge to find something in the dollar store to hack. It turned out to be a step meter. The step meter has two swiches. A sensor switch that is a weighted spring that makes contact as your hips sway and a reset button. If you have a cheep step meter, you can carefully open the case. The case holds the internal parts together and will need to reassemble it. Solder wires to replace switches with external switches and reassemble. Now you should be able to short the wires to see which does what. One pair resets the counter and the other increments the counter. Build the circuit with the Arduino, modified step meter, reset button, 2-330ohm resisters, LED and optocoupler IC. I put it on a prototype board cause I knew it would get used again (and again). The only reason you need the circuit is for the use of the step meter. You may be better off using another display method. --------------------------------------------------------------------------------------------------------------------------------------- Connect your Atari-MIDI interface MIDI Output to the MIDI Input on the Arduino shield and the Arduino Shield THRU to your synth MIDI Input. Press the reset button and start the music. As you listen to the music jot down the measure numbers when you hear something unexpected. Now you have a good starting point for searching out the cause of the discord. Find your own method for counting measures. What ever you come up with will probably be better then my old PLAY-MEASURE-1,10 and PLAY-MEASURE-10,20 and etc. (to the end of time).
  19. What Midi keyboards are you using with your ST's? What is a good beginner one (49 key min) that won't break the bank? Wade
  20. Hi, I'm trying to get hold of some ST software called Easel by Heavenly Music. It's an editor for Roland Sound Canvas SC modules. A review if the full version of the package is here: http://www.muzines.co.uk/articles/heavenly-music-easel/7600 It was also available as Ease Junior desk accessory version: http://www.muzines.co.uk/articles/easel-junior-sound-canvas-editor-accessory-for-atari-st/10799 Any pointers would be appreciated! Thank you
  21. Within the Atari 800 computer manual is a program called Computer Blues. "This program generates random musical notes to "write" some very interesting melodies for the programmed bass." Maybe the first program I typed in . That same program is in the 1030 XE manual. It was while listening to this program and trying to figure out what to do with an Arduino MIDI shield that I thought, "What would Computer Blues sound like if played through a synthesizer?" Gone is my MIDI Mate, CZ-101 and Roland keyboard controller. The TG-33 and DH-100 have been in storage for quite some time along with the ST and the USB to MIDI cord for the Windows computer. A Casio CTK-481 was acquired in a trade and has been neglected until now because now is the time to find out what Computer Blues would sound like on a synthesizer. I don't remember there ever being an easy way to output midi commands to a MIDIMAX (or MIDIMATE) using Atari BASIC. The more I learn about the MIDI controllers and the MIDI standard the easier it is to imagine experimenting using BASIC. Speed and timing may be a disadvantage for BASIC but a quick and easy way to implement ideas may be an advantage. The plan is to convert the SOUND commands to MIDI command data and send it out to the "R2:" port on the 850. "R2:" will be attached to a RS-232 to TTL converter shield attached to an Arduino Uno. The Arduino will read and retransmit the data through a MIDI shield to the sound synthesizer. The serial port baud rate limit of the 850 is 9600 and the MIDI port will be 31250. Shouldn't be a problem for the Arduino to keep up with the Atari. The RS232 Shield Link sprite Store http://store.linksprite.com/rs232-shield-v2-for-arduino/ LinkSprite RS232 Shield V2 for Arduino is being used to read the RS232 signal from the 850. This board has the option of setting jumpers to use D0 to D7 for the TD and RD lines. D5 and D6 are the first available pins and will require the SoftwareSerial library for communications. To test the shield, the "hello world" program from the RTC project was used with Bobterm. I had problems receiving the data until I switched the jumpers around. Someday I hope to be able to make the connections between RS232 devices and have it work the first time, but not today. The MIDI Shield New version https://www.sparkfun.com/products/12898 This SparkFun MIDI shield has been in my shield collection long enough to have been replaced by another version. The old version requires you to use the Hardware serial lines where as the new version allows you to cut some traces and make the new connections. The shield has a PROG/RUN switch that needs to be set to PROGram the Arduino or RUN the program. It is an experimenters board and has 3 push button switches and 2 analog resistors that can be used as programmable controllers. Pins D0 and D1 are used for serial communications and D2-4 are used by the push button switches. https://www.arduino.cc/en/Tutorial/Midi The shield can be tested using the program in the Arduino MIDI Tutorial (It’s a quick read). Connect a MIDI cable from the MIDI OUT on the shield to the MIDI IN of the synth. Stacking the shields makes all the necessary connections. There are no wires. If you don't use the shields a RS232 to MIDI OUT can be constructed for less then $25. A Uno knockoff and ultra compact TTL to RS232 converter can be had for less then $10 each. A 5Pin-DIN socket and 2-220 ohm resistors should be less then $5. Your biggest expense will be the 850 or PR: connection. Wrap it up All the parts seem to work. Next step will be to sit down and write the Arduino program to read the NoteOn data from the Atari and output it to the MIDI device. Then an Atari BASIC program to send the midi commands to turn on and off a note. When that happens the hard part will be over. References: You may find some of these interesting and informative. MIDI Reference Tables https://www.midi.org/specifications/category/reference-tables MIDI Message Chart- https://www.midi.org/specifications/item/table-1-summary-of-midi-message MIDI Control Change Messages https://www.midi.org/specifications/item/table-3-control-change-messages-data-bytes-2 MIDI note number chart http://newt.phys.unsw.edu.au/jw/notes.html How to read MIDI implementation chart(wish I had this 30 years ago) http://midi-tutor.proboards.com/thread/119/interpret-midi-implementation-chart Tutorial on midi data and file structures. Program examples for QuickBasic. MIDI Programming Part 1: MIDI File Basics - MystikShadows http://www.petesqbsite.com/sections/express/issue18/ MIDI Programming Part 2: Data Structures And Timing Formulas - MystikShadows http://www.petesqbsite.com/sections/express/issue19/ Atari's Sound System by Bob Cockroft - ROM Magazine #10 Gives Atari values for specific Notes and more http://atarimagazines.com/rom/issue10/sound_system.php Notes and Volts - Electronics, Guitars and Geekery http://www.notesandvolts.com/
  22. There were several issues left unresolved while programing the MIDI IN interface for the ATARI8 joystick ports. The first was to revert back to using the Cassette Motor Control pin on the SIO port for data flow control. This was accomplished with the AU2PORTA shield design. The second consideration was the startup default joystick pin status. The joystick pins are set to high on startup and then grounded to zero by the joystick switches. There is some reverse logic in all of this that still gives me headaches. An Arduino pin set HIGH will turn on the optocoupler transistor and grounds the Atari Joystick pin resulting in a LOW logic level. The Arduino was programed to set all the joystick direction pins to HIGH at startup. PORTA contained 0. The Arduino inverted the MIDI data, thus the Atari was able to read the MIDI note number directly. This could be made to work but here is where the problem lies…….. I wanted to us an ATARIMAX cartridge to hold the programs to be used to produce the sounds. Read MIDI note number from PORTA (joystick port 1 and 2) and use it as index into the tone tables. The problem lay in the fact that the ATARIMAX menu expected to see the joystick working normally but the Arduino was setting all the pins to ground, thus confusing the ATARIMAX. The problem was temporarily solved by unplugging the Arduino before starting/or restarting the computer. A better solution was required. The solution was to start with all Arduino data pins set LOW, when the Arduino was started or reset. The curser keys on the Atari could be used to select the menu program and space bar would run it. Then the Arduino would read the MIDI note number and set pins according to bits. The Atari would read PORTA as the inverted number. The Atari then used an EOR #255 command to invert it a second time and then use that number as an index into the frequency table. This works as long as the MIDI instrument has not send data to the Arduino before turning on the Atari. A MIDI data byte to be sent to the Atari will set the data pins and the trigger, again confusing the AtariMax menu. Press the Arduino reset to clear the serial data buffer and reset the pin logic before restarting the Atari. At least nothing has to be unplugged. Arduino UNO compatible - AU2PORTA shield - MIDI shield These are the test programs for the Arduino and Atari used to troubleshoot the data transfer. The Arduino reads the MIDI data stream and picks out a channel 1 note on or note off command. It then sends a note number to the Atari; where it is used to turn on the note or turn it off. .ATR contains the M65 source Code and related files. READBYTE.atr .ZIP of the Arduino sketch. Atari_Monosynth_AU2PORTA.zip I think I'm at a good place to decide on my next project. I don't think I will go beyond a mono instrument. Some day I may retry shaping the sound using ADSR envelopes and combine 2 - 16bit tones for some kind of harmonic distortion. Or…………..
  23. I have 9 optocouplers setup to receive data from the Arduino for the SAM Rock You project. Eight for the MIDI data byte from the Arduino and 1 to signal the Trigger when new data is ready to be read by the Atari8. A tenth optocoupler needs to be added so that the A8 can let the Arduino know that it is ready for the next byte. That 10th optocoupler can indicate the status set using the Cassette Motor Control. The Cassette Motor Control line on the SIO port (Pin8) is used to turn the cassette motor on and off. I have used an accessory for the Diamond GOS that sets this bit to control the cassette for audio play back. Even though I wrote the accessory, I can't remember which bit to set but I remembered the program would set that bit to test the circuit. The circuit was put together on a breadboard for testing before soldering onto the prototype board. Preliminary tests proved that the optocoupler would switch states to achieve 2000 bytes/sec. Atari BASIC isn't going to outpace this circuit. The input side of the optocoupler was wired to SIO PIN 8(motor control) and PIN4(ground). The Arduino was programed to read a pin status set by the output of the optocoupler and then turning on/off an LED. The Diamond GOS "ON/OFF CAS" accessory successfully toggle SIO-Pin8 when activated. This simple Arduino program is used to read the optocoupler output attached to Arduino digital pin 4 and turn on the LED attached to pin 6. //check connection between A8 sio cassette //motor pin and Arduino int casMotorPin= 4; int ledPin= 6; void setup() { // put your setup code here, to run once: pinMode(casMotorPin, INPUT); pinMode(ledPin, OUTPUT); } void loop() { if (digitalRead(casMotorPin) == HIGH){ digitalWrite(ledPin, HIGH);} else { digitalWrite(ledPin, LOW);} } Later the prototype was soldered together and added to the Arduino hardware board. The next step is to write the software for the Arduino to pass all relevant MIDI data to the Atari and a short Atari program to monitor the incoming data and test the data flow control. I suppose I should also look over the accessory source code to remind myself how to set the cassette motor control bit.
  24. Testing a simple MIDI interface I knocked up this morning...
  25. Found a good example for using the JUMP command in MIDI MUSIC SYSTEM. Once the notes were entered, I started trying out the patches during playback and found one that seemed to brighten an otherwise dreary day. Of course bells and strings can make any music sound like it was meant for the coming holiday's. This is FIVE PART CANON by Michael Praetorius(1571-1621). Five Part Canon.mp3 -------------------------------------------------------------------------------------- MIDI MUSIC SYSTEM (MMS) has options that can make it easier to work with then its predecessor ADVANCED MUSIC SYSTEM (AMS). The JUMP command is one of them. It works like the GOSUB in BASIC. Voices 1 to 20 are used to output to their assigned MIDI channel 1-16. Voices 21 - 99 can be used to hold sections of music or sequences that can be called from voices 1-20. You can use these sequences by inputting Jn (Jump to voice number n). Just like any subroutine, the music in voice n will play until a RET (return) is encountered. You can expect the same kind of results that might result might get from forgetting to enter a RETURN at the end of a BASIC subroutine. I like to keep it simple but… you can Jump to any one of the voices at anytime from any voice. Things can get pretty messy when you have 5 voices JUMPING around. One subroutine with and extra note can really screw up the timing. (There's a story behind that statement.) The .ATR contains the files for the cannon. Five part cannon.atr I found the music for a FIVE PART CANON by Michael Praeturius in the book "ENJOY YOUR Recorder: The Trapp Family Singers' New complete method of Instruction for the Recorder". Instead of inputting the music in each of the 5 voices, the 10 measures were programed into V21. Then Voices 1 to 5 were used to play the 5 parts. Rests were placed to assure that the music for that voice would come in at the right time. The music as represented by the printed sheet music is in the file FIVEPA21.MUS. CANNON01.MUS developed the music to the next save point. The rest in V21-measure eight was unsettling. A B4Q was put in its place. I wanted v1 to play through 1X before the other 4 voices entered. V22 was programed with 10 whole rests; then V2-5 jumped to V22 before starting. A tie was placed on the last note of music in V21. It is barely noticeable until the end where the extra quarter note is added to the last note played in V2, the last voice to stop playing. The last thing that was done to this file was to transpose the V2 up an octave, V4 down an octave, and V5 down 2 octaves to give it some depth. CANNON02.MUS started out having all the notes beginning at the same time, which made it sound very robotic. No human can play to that accuracy. A slight delay rest was added to 3 voices to make it seem a little less then perfect. V2 was delayed RZ (1/64), V3 got RZ + R^1, and V4 got a RZ+RZ delay. I hope the results are pleasing. CANNON02.MUS was saved and recorded. The Yahama TG-33's P1-13 SP*BelSt preset was used for all voices with only a slight amount of #5 delay effect from the mixer. --------------------------------------------------------------------------------- I have found many MMS music files and 99.9% seem like they may have been converted from AMS files. MMS can do so much more.
  • Create New...