Ok, another BASIC question: I'm wondering if it is possible to play digital audio samples through the fourth "virtual" SID channel from within BASIC?
I've never sampled anything into the Commodore before, but I'm considering checking it out, though I'll need to invest in a Datasette recorder. I was just thinking, if I could actually make use of these 4 bit samples in a BASIC program, that would be ample motivation to delve into this.
It's not built into BASIC, but you could create a machine-language routine and call it with SYS. Playing samples is actually pretty simple; you just write the 4-bit sample value to the volume part of the volume/resonance register. If you're okay with the program pausing during sample playback, all you need to do is loop through the sample at a constant rate; otherwise you'd need to set up an interrupt routine.
Thanks--I kind of figured it wasn't built into BASIC but I had to ask--I try to get BASIC to do EVERYTHING (however slowly) simply because I don't know any other languages. So it seems I'll have to learn some machine language/assembly to incorporate samples into my own programs...
It's worth learning a little machine language even if BASIC is your primary language, juust because of all the possibilities it opens up. Feel free to ask if you have any questions!
You might also think about getting a BASIC compiler. You'll get about a 10x speed boost from most of them (on average).
At this point, I didn't think I would ever try picking up any new programming languages from scratch (as it took me this long just to get somewhat proficient in BASIC)--I also figured if I ever went so far as to delve into machine language, it would probably be on a more modern computer than Commodore. However, I'm starting to reconsider--there's an auction I'm considering bidding on for a breadbox C64 that just happens to include an "absolute beginner's guide to ML", so who knows...
I did end up downloading Blitz! 128 and some other compiler for BASIC 2.0 back in February when I first joined this forum (per somebody's suggestion). After all this time, would you believe I still haven't even tried them out!--just got sidetracked with so many things... I had downloaded them so I could compile a synthesizer BASIC program I was (still) working on in hopes that I could boost the speed between pressing a key and hearing a note sound. If it makes my program run anywhere near 10x faster then maybe it'll just work...
Well, even at 10x speed you're not likely to get a decent sample playback routine, but a BASIC compiler can improve your program's performance in a lot of other ways. As to machine language, you can get a decent start just by perusing the ML section of the Commodore 64 Programmer's Reference Guide, archived on just about every respectable Commodore website.
I know I have the Programmer's Reference Guide somewhere; I'll have to check it out sometime... Switching gears here, breaking off topic--can somebody tell me how sampling is generally accomplished on a Commodore? I ran across a program once that supposedly made a sample from something pre-recorded on a cassette (through the datasette). Is this the way all C64 sampler programs worked or is there some other way of sending an audio signal into the computer? I ask because I recently stumbled into a C64 synth program that supposedly can take an incoming audio signal through the A/V input port... first off, I'm wondering if this refers to the port whose cable breaks off into composite plugs or the RF port--secondly, I thought both these ports were output only(?) Anyway, the program is called "aSid" and I put it on a disk with Star Commander but I cannot get it to work on my C128 (in C64 mode)--maybe it's just not compatible on a C128 (or with the Warp Load cartridge I use), but supposedly the program lets you route the incoming sound through the SID filter and make changes to the filter (and sound going through it) in real time! This seemed pretty unbelievable to me, but then I read that the SID was designed to support an audio input pin making it a capable effects processor.
I'm just wondering if any sampler programs make use of this A/V input method or if they generally get the audio through a datasette? Because if they use a datasette, then I'll have to buy one--and I'd probably only buy a datasette if I needed it for this purpose.
hiya,
Yup the SID does have an input, but it's not an input you can sample from it just gets passed through and output along with the other sounds the SID makes.
If you want to sample, you are better of building a ADC on the userport, not that hard to be honest! If you search the forum you will find a kind soul (I started doing it but he obviously had more time than me and finished it :-) has scanned a book titled "Electronics Projects for your Commodore 64 and 128" .. in that book is a simple project to record audio via the userport.
Regards
Mark
Ruthven,
I recommend Jim Butterfield’s machine language book (either edition) if you can find a copy. The man was a genius at explaining stuff in an easy-to-understand way.
Quote from: Mark Smith on November 19, 2009, 09:24 AMIf you want to sample, you are better of building a ADC on the userport, not that hard to be honest! If you search the forum you will find a kind soul (I started doing it but he obviously had more time than me and finished it :-) has scanned a book titled "Electronics Projects for your Commodore 64 and 128" .. in that book is a simple project to record audio via the userport.
Unfortunately, the download link on this is dead. Does anyone still have the PDF?
Sorry I don't know where you can find it. But if you're shopping on eBay, you might try searching for something called the Covox Voice Master. I think there were two versions. I bought the cheaper version. Anyway it plugs into the joystick port and takes 1-bit samples. I think the more expensive one takes 4-bit samples.
But be careful, there are other "voice" type produces that don't record samples. I had/have one that claimed (and according to my tests true) it has 100% accurate voice recognition (after personal training). But as far as I can tell, this all happens in the cartridge and results are reported back to your BASIC/ML program.
If you're going to learn ML, I recommend starting on a simple CPU like the 6502/8502 of the C128 or similar. The intel pentium etc are truly horrendous! Plus the C128 comes with a nice ML monitor built-in. Althogh it doesn't let you use labels, you don't really nead them when you first start ML programming because your programs will be really short to begin with. Oh, if your ML program crashes (virtually gauranteed), you can reboot your Commodore in 2 seconds... I still want to see a Winblows machine do that!!
I have a BASIC program for the C128 from back in the day that plays some digi-voice when you complete a level or die or win (actually, I don't think the game was winnable!) Now that I have my uIEC, I'm gonna start retrieving those lost gems. I'll make that one a priority for you.
If you have some way to transfer files from your PC (like an X1541 cable or a uIEC), I would just convert your sound to an 8-bit mono (not stereo) wave file on the PC and transfer it to your Commodore. Of course, you'd waste a lot of memory if you're only playing 4-bit digis, but it's simple!
All this talk about playing digital samples made me get out Autumn Technologies' Digimaster for the Commodore 64. With a 1993 copyright, it was developed by Chris Brenner's company named above. Chris was an avid Amiga fan (he even constructed an Amiga 1200 built into the case of a SX-64) and was a member of the Sacramento Amiga Computer Club. Digimaster featured a very Amiga-like GUI, with editing features, like cut, copy, and paste. The package advertises -
"Using an optional audio digitizer, live sound can be grabbed into the computer, edited, and then saved to disk. There is even a utility included which will convert Amiga [IFF] sound samples, giving you access to a vast library of sounds."
"Probably the most impressive feature of this software is its ability to replay sounds in true eight bit digital audio on your Commodore 64 without the need for extra hardware. This is made possible by a revolutionary method of controlling the sound chip inside the Commodore 64."
Well, the optional audio digitizer was never produced by Chris, but he did include a schematic so you could build your own. In fact, a company in Texas did build those digitizers for $30 each (o.k., where did I put mine?).
Not to stray too far off-topic for this 128 forum, Digimaster included 64PlayFile and 128PlayFile, utilities which let you play the Digimaster File Format sounds without having to load up the editor. There were 64Player and 128Player, machine language routines to be included in your Basic or machine language programs in order to play back Digimaster's DFF sound files. There are also 64Routines and 128Routines, a collection of Basic routines for playing back DFF files in your Basic programs. In version 1.1m, 64Player and 128Player are replaced with 64PlayIt! and 128PlayIt!
I should mention this software in the software
collection section of this forum,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: Hydrophilic on November 19, 2009, 03:47 PM...Covox Voice Master. I think there were two versions. I bought the cheaper version. Anyway it plugs into the joystick port and takes 1-bit samples. I think the more expensive one takes 4-bit samples.
I have the more expensive Covox Voice Master, and yes, it does 4-bit sampling. (I didn't know that the Covox Voice Master, Jr., did 1-bit sampling.) The 4-bit sampling on the Covox is really rough to the ear.
Much better was the Digimaster software (though clearer, its volume was low).
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Thanks for all the info guys.
QuoteIf you're going to learn ML, I recommend starting on a simple CPU like the 6502/8502 of the C128 or similar. The intel pentium etc are truly horrendous! Plus the C128 comes with a nice ML monitor built-in.
You make some good points about starting off with ML on a Commodore as opposed to a more modern machine. In fact, now that I think about it--there's really no point in learning ML on a modern machine these days; computers are fast enough where you can do pretty much anything you want in an interpreted language, or even in a "specialty" home-brew language that is just designed for creating games for example.
QuoteI have a BASIC program for the C128 from back in the day that plays some digi-voice when you complete a level or die or win (actually, I don't think the game was winnable!) Now that I have my uIEC, I'm gonna start retrieving those lost gems. I'll make that one a priority for you.
If you can find that and send it to me (or post it here somewhere), I would appreciate it! I'd like to have a look at that code.
QuoteIf you have some way to transfer files from your PC (like an X1541 cable or a uIEC), I would just convert your sound to an 8-bit mono (not stereo) wave file on the PC and transfer it to your Commodore. Of course, you'd waste a lot of memory if you're only playing 4-bit digis, but it's simple!
I have one of those X1541 adapters that I use to transfer .D64 files to 5 1/4" disks. What format would I have to save the 8 bit mono wave in to be playable on the Commodore?--standard .WAV or something more specific like Amiga's .IFF format? What program(s) could I use to play these waves?--does this have to do with that Digimaster software Robert is talking about that can play 8 bit sounds?
QuoteNot to stray too far off-topic for this 128 forum, Digimaster included 64PlayFile and 128PlayFile, utilities which let you play the Digimaster File Format sounds without having to load up the editor. There were 64Player and 128Player, machine language routines to be included in your Basic or machine language programs in order to play back Digimaster's DFF sound files. There are also 64Routines and 128Routines, a collection of Basic routines for playing back DFF files in your Basic programs. In version 1.1m, 64Player and 128Player are replaced with 64PlayIt! and 128PlayIt!
Actually, I think you've strayed back ON-topic by telling me how to access these samples from within BASIC--thanks! I think I may have downloaded Digimaster and copied it to a floppy at some point--if not, I'll have to get it along with any other sampling (or sample manipulating) programs I can find.
Quote from: ruthven on November 20, 2009, 12:19 AMI have one of those X1541 adapters that I use to transfer .D64 files to 5 1/4" disks. What format would I have to save the 8 bit mono wave in to be playable on the Commodore?--standard .WAV or something more specific like Amiga's .IFF format? What program(s) could I use to play these waves?--does this have to do with that Digimaster software Robert is talking about that can play 8 bit sounds?
The format is entirely dependent on how you write your code. You'll probably find it easiest to save your samples as headerless RAW files, but the only absolute must is that your samples be
unsigned 8-bit integers. However, since the standard sample playback method only takes 4-bit samples, you can fit twice the number of samples into the available space by writing a converter program to pack them two to a byte; say, for example, you store the first sample in bits 0-3 and the second in bits 4-7. I'm working on some example code for how to do this, but I still have to get the bugs worked out.
Quote from: ruthven on November 20, 2009, 12:19 AMWhat program(s) could I use to play these waves?
There are a few .wav players for the Commodore. I use Nate (Vanessa) Dannenberg's Sound Studio 3.71 (3.8 seemed to be buggy). Nate also developed ModPlay 64 and ModPlay 128, two programs which can play Amiga .mods.
Quote...does this have to do with that Digimaster software Robert is talking about that can play 8 bit sounds?
No, .wavs are not accessible by Digimaster.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: RobertB...Autumn Technologies' Digimaster for the Commodore 64. With a 1993 copyright...
That's pretty cool he was releasing software in '93 for the 128. The software sounds awesome (ooh, a pun!); I mean fairly sophisticated, with file editing, copy/paste, and 8-bit digis. I've toyed with 8-bit digis myself, but they always have an annoying hi-freq whistle, even using the SID filter. Is this software superior? I'd like to a link if so...
Quote from: RobertB
(I didn't know that the Covox Voice Master, Jr., did 1-bit sampling.) The 4-bit sampling on the Covox is really rough to the ear.
You should hear the 1-bit samples! Well, now you can! I've attached the game I was telling you about that plays 1-bit samples. It sounds best on a real Commodore. VICE on my former PC was OK. On this PC, which is must faster (3+GHz), there is still a bit of stutter in the sound, even if I boost the application's priority to High.
The game itself is uncompiled BASIC, and is pretty lame. Hey I was teenager back then just learning stuff! Sheeeeesh, give me a break. Anyway, use joystick in port#2 for everthing except when you enter NUMBER OF SHIPS TO KILL? (only part that uses keyboard)
It saves high scores. This works fine on my real C128 using the uIEC. For some reason on VICE there was a problem. Maybe true drive emulation is needed, but when I tried to investigate the problem, I crashed Windows XP... hard reset required... it makes me so proud I can still crash modern PCs! (BTW, I was running as normal user, not power user nor administrator)
Although the sound is really poor, as noted above, it is really small! I looked at the code, and it is doing 8kHz playback frequency. With 8 bits per byte, that works out to 1000 bytes per second. All the sounds are in 40 block file (BLOADed to $4000 in BANK1). So there must about 10s worth of audio total. There are 9 samples in the file.
The way this works is a ML program "PLAY" is BLOADed to $1300 in BANK0. Then variable AY is set to 4864 (dec of $1300). Then when needed the program simply does:
SYSAY,n
where n is a number 0 to 8.
The ML program that does the playback is terribly convoluted. I know I wasn't a great ML programmer back then, but that seems too bad to mine. I'm thinking that I mod'd the software provided with Voice Master Jr. If you'd like, I can write re-write it to make it simpler to understand (and make it a lot smaller, not that it should matter)
Basically it just looks at a list of addresses at the start of the $4000 area in BANK1 and then starts playing samples from an address in the list. I think the software originally worked by writing either 0 or 15 to the SID volume register. But I made it sound a little better by changing the values to less extreme. Most of the samples toggle between volume 12 and 14. The timing is done by checking $DD04 to go from negative to positive, in other words, every $80 (128) CPU cycles. This works out to almost 8kHz on NTSC. No idea about PAL.
Quote from: ruthvenWhat format would I have to save the 8 bit mono wave in to be playable on the Commodore?
The method I was talking about (to play 4-bit digis with little effort), is to save as .WAV using encoding/format of
PCM 8.000 kHz, 8 Bit, Mono (7kb/sec)
This is the exact setting shown on Sound Recorder which comes shipped with every version of Windows since at least '95. (Actually, I don't know if it comes with Vista or Win 7, but I assume so).
The .WAV file includes a RIFF header which is not audio samples, so the first millisecond or two of your sound will be corrupt unless you find/write some software to remove the header.
Oh yeah, don't try the "PLAY" software in the attached file because it is for 1-bit, not 8-bit. Maybe you should try the software RobertB recommended. I haven't used it, but with it, I assume you shouldn't have to worry about the RIFF header.
Quote from: commodorejohn
...the only absolute must is that your samples be unsigned 8-bit integers
Excellent point! I forgot about that, since Sound Recorder doesn't tell you if it's signed or not. I am pretty sure it is signed, so conversion would be necessary if you write your own code.
EditI got bored and wrote a BASIC program to convert a .WAV file to raw 4bit audio, "WAV TO 4BIT". Somebody should compile this because it takes several minutes to run in VICE at warp speed. Some error checking would be nice too. But once it is created playing it is simple.
First load the player,
BLOAD"PLAY4BIT",B0
Then load your 4bit digi,
BLOAD"FUEL.RAW",B1,P1024
Then finally,
BANK0:SYS4864
It plays from $0400 up to the end of file (it checks memory address $ae,af the end of last-loaded-file). If it is already in memory or you have mucked up the address by loading other files, then you need to POKE the end address into $ae,af before you SYS
To use with a BASIC program, you would need to change the pointers used by BASIC or change the start-playing-address above $0400, otherwise the sound will clash with your BASIC variables.
Of yeah, it will play a bit rough because of VIC bad lines, but you can use FAST before the SYS. The CPU speed doesn't matter (because of I/O timers) but it is a simple way to blank VIC and avoid bad lines.
/Edit
Quote from: Hydrophilic on November 20, 2009, 08:06 PMQuote from: commodorejohn
...the only absolute must is that your samples be unsigned 8-bit integers
Excellent point! I forgot about that, since Sound Recorder doesn't tell you if it's signed or not. I am pretty sure it is signed, so conversion would be necessary if you write your own code.
I believe Sound Recorder does signed by default, but I can't remember if that's configurable or not. Rather than writing my ownn conversion code, though, I'm using SoX, (http://sox.sourceforge.net/) an open-source audio-conversion utility with a plethora of format options, to convert samples to 8-bit unsigned RAW format; that way, the only conversion utility I had to write was the 8-to-4-bit packer. I'll include SoX and a .bat file in the example package I'm putting together.
Quote from: Hydrophilic on November 20, 2009, 08:06 PM...I mean fairly sophisticated, with file editing, copy/paste, and 8-bit digis.
Yes, Chris got his inspiration from Amiga programs, so that is why you see a graphical representation of the sound frequencies and why you can clip and paste right there on that graph.
QuoteIs this software superior? I'd like to a link if so...
I consider it to be superior. I don't know of any links to Digimaster. I don't even know if Chris has released it as shareware or to the public domain, since it was a commercial product back in the 90's. However, I think I have a phone number and address for him (it was so long ago that I visited him). I can try to contact him.
QuoteI've attached the game I was telling you about that plays 1-bit samples. It sounds best on a real Commodore.
Oooo, thanks! I'm traveling on the road right after work and won't be able to get to it until Sunday.
Quote...I crashed Windows XP... hard reset required... it makes me so proud I can still crash modern PCs!
Yay! ;)
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: Hydrophilic on November 20, 2009, 08:06 PM
I've attached the game I was telling you about that plays 1-bit samples.
Hmm, I don't see where the game attachment is.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
The game is on the disk image "BLANK.D64" which is the only file in the attachement, digi.zip (http://www.commodore128.org/index.php?action=dlattach;topic=3108.0;attach=227)
I downloaded it to make sure it works. The dir listing is:
NFSOUND | raw 1-bit digis |
PLAY | original 1-bit player, ML |
SHIPS | sprite data |
NIGHT FLIGHT! | just RUN this BASIC game |
SCORES | hi score SEQ file |
-- the next files I added cuz I was bored --
FUEL.RAW | 4-bit digi |
PLAY4BIT | new 4-bit player, ML |
WAVE TO 4BIT | new BASIC converter .WAV to .RAW |
The WAVE TO 4BIT is terribly slow since it is uncompiled BASIC. Better to use commodorejohn's suggestion of SoX. ...almost anything would be better... use mine as an educational tool :)
And the game... you're getting way to excited about that! In fact, it is so bad I can't help but laugh when I think about it... it should also be used as an educational tool... or a good joke ;)
Quote from: Hydrophilic on November 21, 2009, 06:08 PM
The game is on the disk image "BLANK.D64" which is the only file in the attachement, digi.zip (http://www.commodore128.org/index.php?action=dlattach;topic=3108.0;attach=227)
Thanks!
QuoteThe WAVE TO 4BIT is terribly slow since it is uncompiled BASIC.
Time for me to crunch it or Blitz it! :)
On the road,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: commodorejohn on November 18, 2009, 01:16 PM
It's not built into BASIC, but you could create a machine-language routine and call it with SYS. Playing samples is actually pretty simple; you just write the 4-bit sample value to the volume part of the volume/resonance register. If you're okay with the program pausing during sample playback, all you need to do is loop through the sample at a constant rate; otherwise you'd need to set up an interrupt routine.
I had to try that for myself to see if it was actually that simple. And it was :)
I wrote a small machine language routine that continuously stores the values $00-$0F into address $D418 (the volume register of the SID). The routine looks like this:
1300 SEI ;Stop interrupts (to give my program 100% of the processor time)
1301 LDX #$00 ;Reset volume to zero
1303 STX $D418 ;Store it in the volume register of the SID
1306 INX ;Increase the volume
1307 CPX #$10 ;Is the volume #$10?
1309 BNE $1303 ;If not, continue storing the volume in the SID register
130B JMP $1301 ;If it was #$10, then the last stored value was #$0F, then reset the volume and start over
This code will create a sound that starts at volume zero and then increases to volume 15 (#$0F), then resets to zero and starts over, indefinitely.
I ran this code in VICE and it produced (a horrible) sound that I then recorded using Audacity. The recorded waveform looked like this:
(http://www.commodore128.org.uk/images/forumpics/Sound%20without%20delay.jpg) (http://www.commodore128.org.uk/images/forumpics/Sound%20without%20delay.jpg)
Ehh... This isn't what I wanted... So I inserted a (very) small delay into the program:
1300 SEI ;Stop interrupts (to give my program 100% of the processor time)
1301 LDX #$00 ;Reset volume to zero
1303 STX $D418 ;Store it in the volume register of the SID
.
1306 LDY #$F0 ;Begin delay counter at #$F0
1308 INY ;Increase delay counter
1309 BNE $1308 ;Repeat until delay counter reaches #$00 (i.e wraps from #$FF to #$00)
.
1306 INX ;Increase the volume
1307 CPX #$10 ;Is the volume #$10?
1309 BNE $1303 ;If not, continue storing the volume in the SID register
130B JMP $1301 ;If it was #$10, then the last stored value was #$0F, then reset the volume and start over
The delay loop counts from #$F0 to #$FF between every increase of the volume. The waveform now looks like this:
(http://www.commodore128.org.uk/images/forumpics/Sound%20with%20delay.jpg) (http://www.commodore128.org.uk/images/forumpics/Sound%20without%20delay.jpg)
And that is exactly what I wanted :)
The waveform should actually be a straight line rising from volume 0 to 15 but the delay in the code makes the line to be not completely straight. And above that the SID emulation in VICE is probably not as good as the real thing. The sound is then recorded in Audacity, probably distorting it further. It would probably look a lot better seen in an oscilloscope connected to a real C128. But still, it's a good example of how it can be done :)
What puzzles me though is that I never actually told the SID to play any tune. I just continuously change the volume of the SID and that in itself creates this sound. Is this a bug in the SID? If so, lucky for us, otherwise playing samples using this technique wouldn't be possible :)
Wow, thanks for that package you put together Hydrophilic! I put it on 5 1/4" the other night and ran it on my C128. I got a real kick out of your game!--It is very similar to a game I started making when I was in High School (in Quick Basic)... mine was also a space flight simulator; cockpit view, chasing down alien craft... complete with High School juevenile language (the cute little 3-eyed aliens (modeled after the ones from Toy Story) would come up on your scanner-view screen and swear at you when you shot at them). You could also insult them by pressing F1-F4 (insults fully customizable, an idea I got from Wing Commander) which would result in them cursing you even more! I never finished my game because I could not for the life of me get the computer to remember the coordinates of the enemy ship once it went off screen. The game would have been so much cooler if I could have incorporated digitized voices like yours! Was that your voice by the way?
Anyway, I haven't gotten a chance to delve too deeply into your code yet. I haven't yet tried the wave converter or 4 bit player, but I'm going to try "Blitzing" it tonight to see what kind of speed difference there is between compiled/uncompiled BASIC... which leads me to my next question (definitely getting off original topic here): this weekend I tried Blitz! 128 for the first time on a C128 BASIC synthesizer program I was working on last February--after Blitz was done doing it's thing, the result was two files written to my disk--"Z/SYNTH" and "C/SYNTH". Is one of these files supposed to be the compiled executable or is the
original file (SYNTH) now compiled so that it should run faster? I ask because both Z/SYNTH and C/SYNTH cause the Commodore to hang; the original file (SYNTH) still runs exactly as it did before--that is, it doesn't appear to run any faster. When I compiled this, from Blitz's menu I chose "1" and later I tried "4"--these were the two options that involved a single drive, something to do with having "RESUME" on or off (I didn't know what it meant so I tried both options as separate tests)--I got no error messages either time.
To bring this back on topic here:
QuoteQuote
Is this software superior? I'd like to a link if so...
I consider it to be superior. I don't know of any links to Digimaster. I don't even know if Chris has released it as shareware or to the public domain, since it was a commercial product back in the 90's. However, I think I have a phone number and address for him (it was so long ago that I visited him). I can try to contact him.
I found Digimaster on NoGames64 (http://www.haddewig.de/nogames64/ (http://www.haddewig.de/nogames64/))--I can't get it to work though; it boots up to the main screen and then I can't do anything (can't move the arrow pointer). I've tried the joystick in both ports--when connected to port 2, the "File" menu comes up for as long as I'm holding up on the joystick. But I can't select anything--the button has no effect and the arrow pointer does not move when I move the joystick or hit any button on the keyboard. So I guess this question is directed to you, RobertB--do you know if this software is controllable by mouse only?
Quote from: ruthven on November 24, 2009, 12:23 AM
...the result was two files written to my disk--"Z/SYNTH" and "C/SYNTH". Is one of these files supposed to be the compiled executable or is the original file (SYNTH) now compiled so that it should run faster?
The original is not modified at all. C/SYNTH is supposed to be the compiled file.
QuoteI ask because both Z/SYNTH and C/SYNTH cause the Commodore to hang...
Ah, something is wrong. :) Either in the original code or in the compiled code that Blitz created.
QuoteI found Digimaster on NoGames64 (http://www.haddewig.de/nogames64/ (http://www.haddewig.de/nogames64/))--I can't get it to work though...
That is not the Digimaster from Autumn Technologies.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: SmallCleverDinosaur on November 24, 2009, 12:11 AMWhat puzzles me though is that I never actually told the SID to play any tune. I just continuously change the volume of the SID and that in itself creates this sound. Is this a bug in the SID? If so, lucky for us, otherwise playing samples using this technique wouldn't be possible :)
Yes, it's a bug in the chip that causes a small pop any time the filter or volume parameters are changed. As I understand it, the pop is limited by the volume register, so you can use this quirk to create output of a given volume. And, of course, rapid changing of the volume level is how sound playback works in the first place. So yeah, it's pretty much the textbook example of a misbug. (http://www.catb.org/jargon/html/M/misbug.html) Lucky for us!
Quote from: RobertBThat is not the Digimaster from Autumn Technologies.
Thanks for the warning so I don't waste my time!
Quote from: ruthvenI got a real kick out of your game!--It is very similar to a game I started making when I was in High School...
Thanks. I did that one in High School too.
Quote from: ruthvenYou could also insult them by pressing F1-F4 ... which would result in them cursing you even more!
Ha, ha, great! I noticed a lot of the other games I've salvaged from back then are full of bad language too. Potty mouth kids, I tell you...
I'll admit that was my voice, but only because there is no foul language this time :)
Quote from: ruthvenI'm going to try "Blitzing" it tonight to see what kind of speed difference there is...
I don't think that would help the game play unless Blitz changes the way PLAY (BASIC command, not the ML digi code) works. You see PLAY can only buffer one note (per voice) at time. So the animation is quite glitchy as BASIC waits for the current note finish.
Also the game uses ML digi player in BANK0 with cross-bank fetches to 10kiB of RAM in BANK1. I don't know how Blitz organizes memory, so the compilied game might be destroying itself by loading the digi-player or 10kiB audio file.
I haven't had much luck with compilers. When I try something like:
10 FORX=1TO100:?X:NEXT
the compiled version crashes. Pretty bad, huh? (don't remember if that was Blitz or Abucus BASIC 128)
commodorejohn is right, the VOL register is amplifying a small DC bias so we are lucky to get this cool feature
Quote from: me on November 21, 2009, 02:42 AMI don't know of any links to Digimaster. I don't even know if Chris has released it as shareware or to the public domain, since it was a commercial product back in the 90's. However, I think I have a phone number and address for him (it was so long ago that I visited him). I can try to contact him.
Contact made with Chris Brenner of Autumn Technologies! I just got off the phone with him, and he has agreed to release Digimaster as donationware (while retaining copyright of the program). He's entrusting our club to carry out all the details -- creating a .pdf of the manual, finding a likely site to host the program and manual, and following through with the collection of donations whether via check/money order or even Paypal.
All of this will be discussed at our next FCUG meeting on December 20.
We even talked about his fabled SX-1200
(Amiga 1200 in a SX-64 case with A600 keyboard),
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: me on November 19, 2009, 04:12 PM
All this talk about playing digital samples made me get out Autumn Technologies' Digimaster for the Commodore 64.
(snip)
The package advertises -
Using an optional audio digitizer, live sound can be grabbed into the computer, edited, and then saved to disk.
(snip)
Well, the optional audio digitizer was never produced by Chris, but he did include a schematic so you could build your own. In fact, a company in Texas did build those digitizers for $30 each (o.k., where did I put mine?).
Found! Named the "Audio Sampler" for Digimaster, SRE Services out of Harlingen, Texas produced these homemade-looking devices. Plug the Audio Sampler into the user port of the C64/128, connect an audio line into the RCA female plug on the AS, turn on the C64/128, and run Digimaster. You now can grab audio samples with your C64/128 at Digimasters' medium or high sample rates (Audio Sampler had problems with low sample rates).
According to the one sheet of instructions which came with Audio Sampler, the device was built from a schematic from Commodore Magazine, volume 1, issue 3. I have not compared the Audio Sampler board layout with the Autumn Technologies schematic for constructing a sampler.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: RobertB
...I just got off the phone with him, and he has agreed to release Digimaster as donationware (while retaining copyright of the program).
Please post links when/if available!
Quote from: Hydrophilic on December 18, 2009, 06:00 PM
Please post links when/if available!
Of course. :)
Must .pdf the Digimaster manual somehow,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: me on December 16, 2009, 01:27 PMNamed the "Audio Sampler" for Digimaster, SRE Services out of Harlingen, Texas produced these homemade-looking devices.
A few days ago I sent an e-mail to Jerry Sears of SRE Services in Harlingen. No response. :( I can only suppose that he no longer has the Audio Sampler hardware.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)
Quote from: me on December 19, 2009, 04:43 PM...I sent an e-mail to Jerry Sears of SRE Services in Harlingen. No response.
Jerry Sears replied today! Here is part of what he had to say,
"I made several but never sold but 1. the others are somewhere in my piles of C64 hardware. I 'll look but not guarantees. (snip) The supply would be what is in the pile 2 or 3 only."
Heh, I'm the one who was his only sale, apparently.
At today's FCUG meeting, Dick Estel volunteered to .pdf the manual and addendum. Now all I have to do is find an appropriate FTP site for the program.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug
The Other Group of Amigoids
http://www.calweb.com/~rabel1/
Southern California Commodore & Amiga Network
http://www.sccaners.org
Quote from: RobertB on December 21, 2009, 02:55 PM...Dick Estel volunteered to .pdf the manual and addendum.
Manual and addendum all .pdf'ed. I was thinking that the front and back package covers must be .pdf'ed, too, because they have a summary of the program itself.
Truly,
Robert Bernardo
Fresno Commodore User Group
http://videocam.net.au/fcug (http://videocam.net.au/fcug)
The Other Group of Amigoids
http://www.calweb.com/~rabel1/ (http://www.calweb.com/~rabel1/)
Southern California Commodore & Amiga Network
http://www.sccaners.org (http://www.sccaners.org)