Jump to content

Search the Community

Showing results for tags 'mms'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Atari Systems
    • Atari 2600
    • Atari 5200
    • Atari 7800
    • Atari Lynx
    • Atari Jaguar
    • Dedicated Systems
    • Atari 8-Bit Computers
    • Atari ST/TT/Falcon Computers
  • Gaming General
  • Marketplace
  • Community
  • Game Programming
  • Site
  • Classic Gaming News
  • 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 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
  • 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
  • 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


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
  • ZeroPage Homebrew's Schedule

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 5 results

  1. 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 = 3 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.
  2. 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.
  3. 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 /CHn 247 1-16 ND 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 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.
  4. A second Atari8 running SYNDRUM3.BAS was added to the MIDI chain without timing problems. There didn't seem to be a delay between the sounds from the two computers when playing 2 drum sounds on the same beat. Listen to the drum patterns and judge for yourself. Two Drum mp3s.zip THE SECOND DRUM Since the SYNDRUM program only allows one percussion sound, I pulled my first 130XE out of storage to be used as a second percussion sound source. The broken keyboard was replaced with a Transkey back in early 90s. One of the guys at the user group was so disturbed by the hole left from the missing keyboard that he made me a vacuum formed insert. It’s the computer I want to be buried with. I had forgotten that the SYNDRUM3 program displayed a title screen and required a "press any key" to continue. It was easier to edit the program then find a keyboard to plug into the Transkey. A line was inserted to bypass this holdup. 30085 RETURN A second Arduino interface was built with a Arduino Uno(clone), MIDI shield with an IN, OUT, and THRU port, and optocoupler circuit. This time, a prototype shield was used as the base for the optocouplers. It’s a little more permanent. The original circuit was moved to the 130XE because a joystick cable was used to make the connection, the DB-9 plug used on the second setup had the wings on the sides and could be used on the 800 without modification. The THRU port is an important feature when using more then one MIDI Sound Module. All data that is coming into the MIDI IN port from the control computer is passed on to the next MIDI device through the THRU port. MIDI OUT data from the sound module is not added to the data stream or passed to the next sound module. Both MIDI/Arduino interfaces receive the same data stream but are programed to look for data specific to the MIDI Channel they are programed for. In this case Channel 10 and Channel 11 was used for the SYNDRUM computers. Drum Patterns Two Drum MMS_MUS_ATR.zip Three drum patterns from the book "200 Drum Machine Patterns" by Rene-Pierre Bardet where modified to be played by the two Atari8s. The patterns consist of a Part A, Part B and BREAK. Using the MIDI MUSIC SYSTEM(MMS), each part of the pattern was programed into different Voices. Six total MMS voices were used with one measure in each voice. MMS uses Voice 1 to 20 as output voices. 2 voices were used to make the calls to play the voice segments in the pattern: A-B-A-Break. This was repeated 5 times. The 2 voices were also assigned to MIDI Channels 10 and 11 before playing. The audio outputs were patched into the mixer, combined and recorded. The EQ was used to drop the high frequencies and the bass was increased. Then the audio inputs were panned slightly left and right to give them a little separation. (I don't know if this is typical. I found that the gain setting for the 130XE needed to be much lower then the 800.) Several different TEMPOs were recorded and one with the FX generator. Loosing much of my hi frequency hearing has effected the way I hear music and when I'm doing the recording it probably effects what you hear. I've been using headphones that have a great bass response to set up the mixer for recording. So, I'm not sure what your hearing when you listen to these MP3 files. What's next? I want to get away from the solder fumes and the technical end of this and just try to use the available equipment/software to be musically creative. Of course my first two creative thoughts require solder fumes and programming.
  5. Since the Switched On Bach album was released in 1968 and the Atari 800 was introduced in 1979, it seemed fitting that I would should start with the 1979 Atari and fade into the 1990 Yamaha TG-33. Brandonburg #3 third move.mp3 NOTES: Music File origin: Sheet Music VBURGM3.MUS for Atari RECORD.MUS for TG-33 RECORD.INF for TG-33 channel assignments Control Computer: 130XE Sequencer Software: MIDI Music System by Lee Actor Voice 1 - PAT9 Voice 2 - PAT10 Voice 4 - PAT8 MIDI out: MIDIMAX Sound Source: Atari 130XE (#2) MIDI in: Arduino Software: MONOSYN_1-Byte_Data_rC.ino Monitor output to mixer Software: ADSR0D.M65 (recompiled for each voice settings) (.Included READMIDC.M65) - PAT8.OBJ PAT9.OBJ PAT10.OBJ Loaded from ATARIMAX Cart. Yamaha TG-33 Sound Card VC3303 - Voice Data Card Multi C1-15 CLASSIC Voice 1 = Channel 5 Voice 2 = Channel 5 Voice 4 = Channel 4 Mixer: Behringer Xenyx 1202 FX Mic One input - Atari monitor port LINE IN 5/6 - Yamaha TG-33 FX : #3 MID HALL 1 Recorder: PC - Audacity 2.1.2 File: Brandonburg #3 third move.aup - Sync tracks and trim - Fade in and out TRACK12.atr
  • Create New...