Jump to content

pixelpedant

Members
  • Posts

    1,121
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by pixelpedant

  1. An old Compute! article I'd run into a short while back and the heading "The Singing Computer" inspired me to try my hand at encoding pitch-manipulated (i.e., "sung") speech for the TI 99/4A (albeit for use in XB, which does not allow speech pitch to be directly modified, but rather, if at all, adjusted via bitwise speech pattern manipulation). So for funzies, here's a short TI synthesised song I put together (on real iron), in principle for my dear wife, but which you might get a kick out of as well.

     

    Further details are available in the linked video and in my TI Synth Editor thread. If anyone else is looking to do similar, you may find a chart I compiled of TI speech pitch/frequency equivalencies in practice (i.e., what a pitch value of "111111" or "63" produces, in terms of sound frequency) useful.

     

    I'd include source, but honestly, there's nothing too interesting there. It's just reading the speech data from files and putting some words on screen, really. But if anyone wants it, I'll get it off my TI 99.

    • Like 5
  2. Should this HDMI issue become a problem, I would rather see the MK2 modified to use a VGA output and wait another 3 to 6 months for its release for a design to use the VGA instead.

     

    Beery

     

    I'll also put my name in as one who'd not only be satisfied with a reworked/delayed VGA MK2, failing the HDMI option, but absolutely ecstatic about it. By and large, my entire huge, complicated retro a/v signal routing/processing/display rig is analogue, so a VGA MK2 would kick ass. Either pads or pins (probably pads would be more space economic and flexible from a cross-platform standpoint) for RGBS or RGBHV would be awesome. But I'll be happy with whatever comes along, in the end :)

    • Like 1
  3.  

    That monitor is awesome!

     

    It does look pretty cool. Practical, too, though. It's a 1987 Panasonic BT-M1310Y. Accepts all of Composite, YUV, RGBS and YPbPr, and provides autotermination or passthrough (in this case, to upscale, capture and digital display) as desired. And it has a really good set of front panel picture controls, which help clean up the TI video a *lot*. Which is key, since I'm still waiting to get my hands on an F18A, so I'm still on composite.

    • Like 1
  4. UPDATES:

     

    The package linked in the initial post has now been updated to include source. Source has been cleaned up somewhat. A lot of bugfixes have been implemented.

     

    If anyone would like to see an example of what custom speech made by phonetic recombination and pitch/energy editing using this tool looks like, you can see an example in this video here.

     

    If you'd prefer not to watch the whole video, a demo of the TI speaking an invented phrase with custom intonation created using the tool ("Hehehehe...wipeout!") can be seen precisely here.

    • Like 4
  5. Between XB 2.7, HDX server and a NanoPEB, I find navigating, transferring and running programs pretty efficient and quick. Workflow looks something like this, starting from wherever (with XB 2.7 almost always in the cart slot)

     

    - Fctn+ to exit to XB 2.7 main menu

    - "U" to enter CFHDX to grab files from a connected share

    - "HDX1",Enter,Fctn2 to select any files to copy,Fctn6,C,Fctn+ to return to main menu

    - "1","2" or "3" if I want to check the contents of the disk I'd been copying files to.

    - Usually "A" to go back into XB itself.

    - "OLD DSK#.WHATEVER" to load desired program

     

    So it's zero cart swaps or disk swaps, and about 30 seconds, to copy some files, and make use of them, for me, usually. Even noting every single keystroke, it doesn't look like much. And the workflow's going to be pretty much the same whether they're going to be loaded in XB or EA. I don't feel like that's a big ordeal. But the XB 2.7 cart has a lot to do with that.

  6. Can your software find where (what addresses) exactly in a module the individual words or phrases are located. Do you know a simple method to accomplish this?

     

    Nah, but you could certainly do a probabilistic analysis which returns likely candidates I figure, based on the fairly consistent structure of the speech samples. Always must begin with "01100000 00000000 ????????? ???0????" for example (where the first unknown byte is pattern length, and in the next byte, energy is unknown, but the repeat bit must be zero).

    • Like 1
  7. Yeah, I would have included the code, but it's still a complete bloody mess as a result of the project just kind of having begun as "hey, I bet it'd be fun to decode a speech pattern" and grown willy-nilly from there in all sorts of random directions until it ended up as this. Now that all the basic problems are solved, I'll likely clean it up - maybe do a full rewrite - and release the code once there's something sufficiently readable that it might be of use to someone.

  8. Hey folks. I've been toying around with TI 99/4A speech synth lately, and decided it would be fun to write a TI LPC speech pattern exploration and editing app in the spirit of the venerable Speecoder, but for use on modern PC, and with some more comprehensive and user friendly spreadsheet-style editing options. At this point, I figure it's worth sharing, in case anyone else wants to poke around a few speech patterns, or mess around with modifying/editing/combining them, using this tool. It's a quick way to, e.g., get your TI 99/4A talking like Max Headroom, if you feel like it. Or to subsample a pattern to make new words. Or to combine portions of two patterns. You can see what the app looks like here:

     

    FVl3tbN.png

     

    The app is a Windows executable and comes packaged with the standard speech synth vocabulary listed in the Extended BASIC manual (consisting of 370 words, it appears to me). Use on Linux will be achievable via included source on your Python installation of choice, provided necessary module dependencies.

     

    Included patterns were fetched via XB CALL SPGET on real iron, and transferred via Ti99Hdx. As a consequence, they're in individual V9T9 format files, and the program will save in this format as well. Sound patterns are saved in 255 byte fixed length records. This does impose a (255 byte) limitation on output. However, no built-in vocabulary (not even "THAT IS INCORRECT") exceeds this limit, as the pattern duration itself must be recorded as a one byte value. So this is in keeping with normal (and unavoidable) parameters.

     

    The program does not in all respects enforce the entry of, or modifications resulting in, valid pattern data. Warnings are provided for values which are out of bounds for a field (e.g., "16" would be an invalid value for a frame's "Energy" nibble), but the user is not, for example, prevented from failing to terminate a pattern with the value '15' (i.e., 1111) as will be found in all provided patterns.
    Note that simple Copy/Paste functionality is implemented using the clipboard, so patterns can be copied and pasted between two separate instances of the program, when combining patterns (or within a single instance, of course). This is particularly important when creating new sounds from phonetic components.
    BE ADVISED: Results when feeding these patterns to emulators are likely to be inconsistent. But you should have good luck (as I have) on real iron.
    UPDATES:
    06/24/2018 - Many bugfixes, cleaned up source somewhat, added source to package,
    07/02/2018 - More bugfixes, overhaul of decoding process and cleanup of source.
    07/05/2018 - Ported to QT5. Packaging moved to cx_Freeze. High-DPI scaling implemented.
    TO DO:
    - GUI pitch adjustment control for selected ranges?
    - GUI energy adjustment control for selected ranges?
    The app may be found here:
    Current Version: v1.3:
    Previous Version: v1.2:
    Previous Version: v1.1:

    • Like 13
  9. Hi, do you use the actual version of TI99DIR ?

     

    Yeah, the 6.3a version from http://www.ti99-geek.nl. Would have tried earlier versions if I could find any for download, but couldn't locate any.

     

    AFAIK TI99Dir can only copy whole disk images to the nanoPEB CF card. I cannot see the content of volumes or copy individual files.

     

    Yeah, that would appear to be the case, in the end. Still doesn't explain why any disks it copied were unreadable on the TI 99/4A end of things though. Even simply copying a volume to the PC, then copying it back to the CF (via the "copy files" menu option), made it unreadable. Where copying CF volumes off the card, modifying the volumes or not, copying them back, succeeded in TI Image Tool.

     

     

    Sorry for the "fiddling", but I was not able to get access to the low-level device by means of pure Java. Adding dd.exe to Windows was, in my view, the simplest solution, and it proved to work, and I got a uniform procedure for all operating systems.

     

    It should not require more than putting dd.exe in some directory and pointing TIMT to it, or did you encounter more issues?

     

    Well, you won't hear any complaints from me, given the tool saved the day. But yeah, I wasn't able to achieve a successful CF write (but was able to achieve a successful CF read) by way of the menu itself. So I just copied the command line arguments provided to an elevated command prompt so I could see what was going on, and executed them there, and all was well. Thank you so much for your tool. I believe I'll be using it from here on in. :)

  10. Try and look at the images with TI Image Tool. It will also format images for the Nano, IIRC. That will give you an independent program to check against--and it may just be that your copy of TI99DIR is bad. . .and you may need to download a newer (or at least another) version of it.

     

    Thank you! You saved the day! :)

     

    I was not aware of TI Image Tool. But between TI Image Tool and some fiddling with dd for Windows (which it uses), I was able to get myself a correctly formatted disk which both TI Image Tool and my NanoPEB could see, and was able to transfer and run the TI Megademo.

     

    Next stop - Tunnels of Doom! :)

    • Like 1
  11. Months after encountering these difficulties, I've finally made some progress on these issues, so I thought I'd give an update.

     

    I was getting increasingly motivated to not just let this one lie, as I'd been messing around in XB (having gotten the XB 2.7 cart) and not being able to save programs wasn't really acceptable.

     

    Ultimately, I got one step further by using Disk Manager 3 to initialize three disks on the CF, rather than bothering with TI99Dir, which had consistently failed me so far (with no volumes it created having been usable). The disks initialized by Disk Manager 3 could be mounted, used and written to normally by TI BASIC and XB. I could SAVE a program and OLD it after a fresh boot. And Disk Manager correctly shows the contents of the disk. So there was progress, there.

     

    That gives me a drive to press forward. I can now save programs! Which is certainly nice. But TI99Dir still seems to be completely, utterly useless, in my case. It can see that a volume called DSK1 (created by Disk Manager 3, on which a test program was saved and successfully retrieved on the TI) exists on the CF, for example. But it cannot seem to view the contents of the disk ("copy files" is greyed out, and I cannot access/view the contents of the volume from my PC). And any volumes it creates and copies disk contents to cannot be viewed on the TI.

     

    I'm inclined to theorise the NanoPEB is functioning correctly, and the problem lies on the PC end of things, naturally. But I'm not sure where that problem might be, and why TI99Dir seems to be precisely absent its central function, in my case (i.e., it can't see the contents of disks my TI 99/4A creates and populates, and disks it creates and populates can't be seen by my TI 99/4A).

  12. Indeed. It's not necessary to wire up the EXT port internally, since it functions as a Controller 2 port with a simple, cheap external adapter. But indeed, you could do that if you want. And the Controller 1 port is usually created by wiring a DB-9 connector to the relevant test points on the PCB. Since an SMS controller has no Start button and a Genesis controller multiplexes its inputs, a controller hack is also required, if the Start button is to be available.

     

    Full details on how I went about adding a controller port and modding the controller are available here.

  13. Good thought. I had not tried that. I've now used TI99Dir to copy the working volume (CFHDX_V12) which came already present on the CF to a .dsk file on the computer, then back to the CF on Volume 1. Same result, however. Disk Manager says "disk not initialized" in the case of Volume 1 (though the two volumes are otherwise identical from the point of view of TI99Dir).

  14. It seemed a good thought, to clean the edge connector. That's not been cleaned...ever, I suppose. So that's handled (with some anhydrous alcohol, which is what I usually use, for cart connectors). But no change in behaviour. I'll see if I can dig up another 5V centre-positive power supply (in my mountain of leftover DC adapters). Though since the TI is reading *one* volume successfully (Disk Manager displays the contents of Volume 2, but only Volume 2), I'm inclined to believe the hardware is operating correctly to a sufficient extent that power issues wouldn't be the problem.

     

    It seems very curious to me that TI99Dir identifies *every* disk I've thrown at it as type "DSK", which I'm inclined to assume implies V9T9 format, given this is differentiated from type "PC99/SD" and "PC99/DD" in the TI99Dir documentation), but does not give the option to convert from V9T9 format. At least one of these I know to be in V9T9 format, though (as it is explicitly identified as such by TI Games Shelf, and TIFILES format is offered as an alternative).

     

    The worst things about all this is, knowing me, I'm not going to be able to let this schmozzle go until I've got it solved, even if it takes me all year :P

     

    They'll find me buried in a pile of rubble, with a CF card deathgripped in my clawlike hand.

  15. A good thought, it would certainly seem. Strangely, though, TI99Dir doesn't seem to give me the option to convert any of the disk files I have (the utilities dsk from the NanoPEB homepage containing CATALOG and such, the Tunnels of Doom data disk containing PENNIES and QUEST, and the game 'Life' from TI Game Shelf) in any way whatsoever. The options are simply greyed out in the Commands menu, and absent in the right-click menu, as seen here, for all these .dsk files, though it copies them to the CF volumes happily enough: http://i.imgur.com/TDdhkE9.png

     

    I should further mention that while I can view the volumes on the CF card in TI99Dir, it seems that the dsk2cf utility provided on the NanoPEB homepage cannot see my CF card at all, and simply says this, when asked to copy to a volume:

     

    Microsoft Windows 95 /nList of All Possible Flash Drives
    ---------------------------------
    ** None **
    It would seem that I'm running into a lot of strange dead ends.
  16. Yeah, it was TI99Dir I used to write the CF volumes with the Tunnels of Doom game data disk, and the PEB utilities disk. From the point of view of the application itself, all seemed to be working smoothly. But no luck viewing the volumes from the TI (using Disk Manager). Perhaps I should seek out more detailed directions on the use of TI99Dir, in case I'm erring in some way there. But since the volumes are being successfully mounted, and just not successfully *read* on the TI 99/4A (well, Disk Manager says they aren't "initialized", but does see the disk), I wonder whether there can be any error there. Perhaps I should try other disk files.

     

    Otherwise, my next step might be pursuing procedures for formatting the CF all over again (which I have not done, as it came seemingly properly formatted).

  17. Thanks for the helpful responses.

     

    I do not (at this point) have an Editor/Assembler or Extended Basic cart, nor do I have a flash cart which supports GROM carts, nor the XB27 cart, so I'm restricted to what can be loaded via that. Well, not in the more general context - I've actually got a reasonable collection of TI 99/4A carts from my youth, but they're all games :P

     

    I am able to run a couple different disk managers, though, consequently, the most useful of which I've found toward present purposes to be the one in the FlashROM 99 Image Repository thread entitled "Disk Manager 3".

     

     

  18. I've recently gotten a NanoPEB (yay!) and am messing around with disk management for the first time on my TI 99/4A (never had a PEB, back in the day). Now, from what I understand, the procedure for mounting a disk is essentially going into BASIC and using CALL MOUNT(DSK,VOL), with execution of any program contained therein achieved via OLD "DSK#.PRGNAME". Unfortunately, I don't seem to be getting anywhere with that.

     

    The NanoPEB came with a formatted CF card, and TI99Dir shows two formatted volumes (volumes 1 and 2). When mounted, Disk Manager 3 (executing that via FlashROM 99) appears to show a collection of programs in the volume CFHDX_V12 mounted as DSK2, with those programs named CFHDXP1 through CFHDXP4 and CFHDXS1 through CFHDXS4. Evidently, these are disk manager files, though I've had no success executing them via OLD "DSK2.CFHDXP1" for example, as this results in an ERROR 57 in BASIC. If the volume isn't mounted at all, it's an ERROR 50, instead. Disk Manager 3 simply tells me DSK1 is *not initialized*, when mounted, on the other hand.

     

    Since I gather the collection of key utility programs (CATALOG and such) downloadable from the NanoPEB homepage are supposed to be in Volume 1 (or at least were at some point in history), I had first tried simply running

     

    CALL MOUNT(1,1)

    OLD "DSK1.CATALOG"

     

    But that just produced ERROR 57 likewise. As a fallback plan, I downloaded and recopied the VOL1 files via TI99Dir, but to no effect. Same result (as far as OLD giving me the old ERROR 57).

     

    I've also tried using TI99Dir to copy a Tunnels of Doom game disk to Volume 3 (the one with PENNIES and QUEST on it), mounting that, and loading it via ToD, with no luck (though like OLD, it demonstrates different responses/errors based on whether the volume is mounted, so at least I know that's doing something).

     

    Any ideas on what I'm doing wrong? I'm certainly a neophyte when it comes to TI 99/4A disk management. But I'm determined to get this figured out. Thanks in advance for any advice.

     

    I've also tried writing volume 3 using a Tunnels of Doom game disk (the one with PENNIES and QUEST on it), mounting that, and loading it via ToD, with no luck (though like OLD, it demonstrates different responses/errors based on whether the volume is mounted).

  19. For me, Sega controller compatibility seems also to be determined to a meaningful extent on a per-game basis, using the Wico TI->Atari adapter. Results being

     

    Sega Master System Controller: Works in all games as desired.

     

    Sega OEM 6-Button: Hasn't worked in any games.

     

    Hori Mega Commander (third party 6-button): Hasn't worked in any games.

     

    Sega 6-Button Arcade Power Stick: Works in some games, and not in others. It's all or nothing. Fully functional, or nothing at all.

     

    Sega OEM 3-Button: Some buttons function, other do not. Up and Down function, Left and Right do not, for example.

     

    Presently, I'm using the Arcade Power Stick where it works, and the Master System gamepad everywhere else.

×
×
  • Create New...