0 Members and 1 Guest are viewing this topic.
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.
...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.
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.
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!
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 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?
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?
...Autumn Technologies' Digimaster for the Commodore 64. With a 1993 copyright...
(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.
What format would I have to save the 8 bit mono wave in to be playable on the Commodore?
...the only absolute must is that your samples be unsigned 8-bit integers
Quote from: commodorejohn...the only absolute must is that your samples be unsigned 8-bit integersExcellent 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 mean fairly sophisticated, with file editing, copy/paste, and 8-bit digis.
Is this software superior? I'd like to a link if so...
I've attached the game I was telling you about that plays 1-bit samples. It sounds best on a real Commodore.
...I crashed Windows XP... hard reset required... it makes me so proud I can still crash modern PCs!
I've attached the game I was telling you about that plays 1-bit samples.
The game is on the disk image "BLANK.D64" which is the only file in the attachement, digi.zip
The WAVE TO 4BIT is terribly slow since it is uncompiled BASIC.
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.
1300 SEI ;Stop interrupts (to give my program 100% of the processor time)1301 LDX #$00 ;Reset volume to zero1303 STX $D418 ;Store it in the volume register of the SID1306 INX ;Increase the volume1307 CPX #$10 ;Is the volume #$10?1309 BNE $1303 ;If not, continue storing the volume in the SID register130B JMP $1301 ;If it was #$10, then the last stored value was #$0F, then reset the volume and start over
1300 SEI ;Stop interrupts (to give my program 100% of the processor time)1301 LDX #$00 ;Reset volume to zero1303 STX $D418 ;Store it in the volume register of the SID.1306 LDY #$F0 ;Begin delay counter at #$F01308 INY ;Increase delay counter1309 BNE $1308 ;Repeat until delay counter reaches #$00 (i.e wraps from #$FF to #$00).1306 INX ;Increase the volume1307 CPX #$10 ;Is the volume #$10?1309 BNE $1303 ;If not, continue storing the volume in the SID register130B JMP $1301 ;If it was #$10, then the last stored value was #$0F, then reset the volume and start over
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.