Path: chuka.playstation.co.uk!news From: Developer Support Newsgroups: scee.yaroze.programming.sound Subject: Re: MOD player Date: Wed, 03 Sep 1997 10:45:37 +0100 Organization: PlayStation Net Yaroze (SCEE) Lines: 92 Message-ID: <340D31C1.6FA4@interactive.sony.com> References: <3408ECA2.D5D11A95@ibm.net> NNTP-Posting-Host: 194.203.13.10 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.01 (Win95; I) James Russell wrote: > > Hi all, > > I've had my Yaroze for about 2 months and work has *just* started to > quieten down enough for me to begin some actual programming :O) > > I thought a good starting project would be to write an Amiga MOD player > (moving up to XM when I can find the file format), to help me learn > about the sound capabilities. However, I'm having a few difficulties, > mainly with the manuals (which, to be honest, look like they were > written by the programmer, not a tech writer). > > 1) I'm totally confused by the VAB format. From what the manual tells > me, a VAB contains the sound samples and up to 128 programs, each with > up to 16 sound tone lists. > So - What the heck is a program? > And after someone comes up with the answer to that: > What the heck is a tone? > What's with these sound tone lists? > How can we edit what programs/lists go into a VAB? > > I understand that for 1 sound sample you might want to have different > ways of playing it back (with different ADSR settings and such). Is this > what a program/tone is? > > It was sooo much easier (and less versatile) on the Amiga when you just > said "Here's the sound, play it at this rate" and forgot about it. > > 2) I may be going down the same dead end as a couple of other people > here - converting a MOD into a MIDI file format, then playing that. > Although I don't know much about MIDI, I was under the assumption that > it would be possible to map a track (from 0-15) to a sample. This was > you'd have 16 MIDI tracks (1 for each sample in a 16 sample MOD) and all > would be Kool & The Gang. But I can't find any documentation on how to > do this. Also, how does MIDI integrate with the 24 voices on the SPU? > > Looks like the only way is to write a MOD player that's called on the > Vertical Blank (Woohoo! Back to the roots!) and use SetUtKeyOn and > SetUtKeyOff. But I don't want to try that until I find out whether the > SEQ way is possible. > > Note to Developer support: The ability to create cool programs is > directly proportional to the quality of the documentation available. As > soon as I figure out what the hoodle hey is going on with sound, I'm > gonna writes me sum *nice* *easy to understand* documentation that > starts from first principles, explains the difference between MIDI and > sampled sound (recall that some programmers have only ever used sampled > sounds), and decently explains the functioning of the SPU. Then I'll > make it available to all. > > TTFN > > J Example: A PROG is, say, a piano. You could use 4 samples, one for each octave, to create a piano playing over 4 octaves. Each of these samples would be a seperate TONE in the PROG. Each TONE can be set to respond to certain key ranges over the keyboard (c1-b1, c2-b2, c3-b3, c4-b4....or what ever). TONES can also have different ADSR settings. So you could point each tone at the same sample, but have different release rates for each one. Basically, TONES are used for MIDI music where multi sampling is necessary (or a drum layout - each key being a different drum) To recap: PROG1-> Tone1 (ADSR/Volume/KeyRange..)->VAG (sample) Tone2 (ADSR/Volume/KeyRange..)->VAG (sample) PROG2 ->Tone1... .....etc..etc.. To create a tracker player, you only need to use one tone in each prog. The program MkVAB can be used to create a VAB from a number of VAG files (Playstation samples). You can use it like an Amiga by: 1) Having one sample/tone per prog. 2) Doing your own ADSR by hitting the volume 3) Write your own tracker using the Vsync(0). When you set a program number in MIDI, it uses the PROG number to play that sound. Tracker to MIDI have problems with pitchbend though, so I would do it under Vsync if I were you. Jason Page