Sound programs that use +3DOS/Assembler

edited April 2013 in Development
Hi
I am working on my final JSWed project and have nearly finished but i am considering changing the standard in game tune you get,the editor instructions state that music can be imported but +3DOS and Assembler are the only two formats supported.So which music programs would be best suited that support these formats? or would i have to use something sound tracker and then another program to convert the file before importing the file across?
Post edited by jammajup on

Comments

  • edited April 2013
    Are you using external crossIDE or internal ZX spectrum compiler?
    you can use Beepola or Vortex Tracker
    [Stronghold] [l'Abbaye des Morts] [Stronghold2 WiP (30%) defrosen]
  • edited April 2013
    Hi Jerri and thanks for the reply.
    For you to be help me i am going to be honest,i am a beginner at making games which is why i am using the Jetset Willy / Manic Miner editor JSWed for the second and final time on this project before moving on to using AGD and reading up on Assembly.
    I have never used the utilities you have mentioned,below is a copy of the music editor page from the JSWed instructions but apparently all i have to do is select import file from the the editor menu ,select the speccy tune on my computer and JSWed inserts the code and does the rest and that is all i know.So i have been looking for Zx Spectrum music in the two mentioned formats Assembler and +3DOS but cannot find any way of creating it.

    JSWed Music Editor

    6.10 The Music editor
    The music editor is present only in 128k games (JSW128 and JSW64). It allows the
    three tunes to be played, exported or imported. Under the description of each tune are
    three buttons:
    Test runs the game in an emulator, just as pressing F5 does; except that the title screen
    tune is changed to be the tune you want to test.
    Export saves the selected tune. Two formats are supported: +3DOS (this just saves
    the tune as a block of memory) and Assembly (a text format, described more
    fully below).
    Import loads a new tune over the currently selected one. Both formats are supported.
    If the new tune won't fit in the space available, the import will fail. JSWED will
    automatically fix-up the file as it loads, so you can load a tune into a slot other
    than the one it was saved from.
    6.10.1 The Assembly fille format
    The Assembly file format is the most suitable format for editing a tune or creating
    a new one (though that's not saying much). It's in the form of an assembly language
    listing, compatible with Udo Munk's Z80ASM assembler. The only directives used
    (and the only ones that will be recognised on import) are:
    org defw defb end

    A tune specied in Assembly format should be laid out as follows:
    org 0f700h
    The org (origin) directive should be the rst one in the le. The value following it
    should be greater than 4000h but is otherwise comparatively unimportant. In the case
    of tunes saved by JSWED, it gives the address where the tune was saved from.
    The next three directives must be the addresses of the three channels:
    defw Gf706
    defw Gf751
    defw Gf752
    Usually these are stored as label names, but you could use numerical addresses if you
    wanted. JSWED outputs labels of the form Gxxxx, but you might want to use more
    memorable names - eg:
    defw channel1
    defw channel2
    defw channel3
    17
    Following the channel addresses, the remainder of the le describes the tune data. For
    example:
    GF706: defb 0FEh ;Call subroutine
    defw Gf732
    defb 0FEh ;Call subroutine
    defw Gf742
    defb 03eh,00ah
    defb 03bh,00ah
    defb 03eh,014h
    defb 03dh,028h
    The rst line in the listing has a label. You can put a label on any line of the file, but it
    only makes sense to put them at the start of channels and at the start of subroutines.
    Each channel is formed of a series of instructions, constructed using defb and defw
    directives. The rst byte is a command byte, which may then be followed by parameter
    bytes. These can be on the same line or on different lines; JSWED doesn't care.
    Any text on a line after a ; is ignored.
    end
    JSWED's output files end with the 'end' directive, but this is optional.
    Command byte Number of parameter bytes Meaning
    000h 1 Rest. The parameter byte is the duration in jiffies.
    001h-0F8h 1 Play a note. The parameter byte is the duration in jiffies.
    The command byte is the pitch in semitones; 48 is middle C.
    0F9h 1 Set waveform effect (like 'W' in a PLAY command)
    0FAh 1 Set waveform period (like 'X' in a PLAY command)
    0FBh 1 Set the volume (like 'V' in a PLAY command)
    If you want to use waveforms, set the volume to 16 rst.
    0FCh 3 Loop - used to repeat a preceding section.
    The rst and second parameter bytes should both be set
    to the loop count. The third is the relative address of the
    start of the section to repeat.
    0FDh 0 Return from a sub-tune.
    0FEh 2 Call a sub-tune, which must end with a 0FDh byte.
    The 2 parameter bytes are the address of the sub-tune.
    0FFh 0 End of channel. All channels must end with this.
    Note that on the import side, JSWED is very restricted compared to a real assembler.
    You can't use EQU directives, conditional assembly or arithmetic. If you need
    any of these, use a proper assembler.
  • edited April 2013
    Unfortunately there is no 'nice' editor for the music format JSWed uses - all you can really do is create a text file by hand, in the format described by the document you quoted. Converting a tune from something like Soundtracker isn't an option - the JSW music player has very limited capabilities compared to the kind of tunes Soundtracker produces, due to needing to fit into a very small amount of memory.

    However: last time this discussion came up, John Elliott produced a patched version of JSWed that accepts Soundtracker files directly. I have no experience of JSW editing and no idea of what you need to make that work, so I shall just point you to that thread.
  • edited April 2013
    Thanks Gasman that sure is an interesting read and even with my lack of knowledge i can understand from the Hex and replies to the thread that audio space appears to be a premium with jsw.
    To be honest with my game Terry Turtle my plan is to perhaps just have a `Heart-Beat` sound instead of any tune or melody,as well as being a small sound file that can be repeated it would also be quite appropriate for the game with the short life span these poor creatures can have. ;( .
  • edited April 2013
    Dunno if it's of any interest at all, but a while ago I hacked JSW to play a 2-channel tune (composed in Wham! The Music Box) for it's in game music. The thread is here and explains the (fairly minimal) changes I made to the code. It wasn't a complicated job (otherwise I'd not have been able to do it :) ). I can assist if you want to do something similar with your JSWEd game, I'm sure.
  • edited April 2013
    Thanks Cowley,my project is almost passed the game testing stage now so it is almost time to play around with the tunes and a loading page,I will take a look at the link now.
Sign In or Register to comment.