home *** CD-ROM | disk | FTP | other *** search
- Short: Superclass datatype for midi files, V40.0
- Type: util/dtype
- Uploader: Martin Gierich <Martin.Gierich@stud.uni-karlsruhe.de>
- Author: Martin Gierich <Martin.Gierich@stud.uni-karlsruhe.de>
- Version: 40.0 (11.9.97)
- Requires: camd.library, realtime.library, OS 3.0 or better
-
-
- Introduction:
- midi.datatype lets your system know about midi data, especially about
- files in Standard Midi Format (SMF). It is an interface to recognize,
- load, play and save midi music data. With subdatatypes it might know
- about other midi file formats like SMUS and MMD (Octamed), too.
-
-
- Important:
- This release is BETA !
- It is not recommended to use it for loading/saving, but playing works fine.
-
-
- Notes:
- midi.datatype has a control panel that you can see with MultiView.
- It is currently very simple but functional.
-
- For playing back midi music you will need:
- camd.library, can be found in Aminet/mus/misc/camd.lha
- realtime.library, comes with OS3.1 and can be found on developer packages
- They both can be found in the MIDIPro archive on Aminet, too.
-
- If you have the Amiga Developer CD, I recommend you to have a look at
- the full CAMD package on there (:Extras/MIDI/CAMD).
-
- A more technical documentation of midi.datatype can be found in the
- Autodoc midi_dtc or midi_dtc.doc.
-
- Installation:
- Copy midi.datatype to SYS:Classes/datatypes
- Copy smf#? to DEVS:Datatypes
- Double click SMF icon or reboot.
-
- If you do not have CAMD and RealTime yet:
- Copy camd.library and realtime.library to LIBS:
- If your midi interface is connected to something else than the internal
- serial port, you will need some more fancy CAMD installation.
-
-
- Usage:
- If you see the control panel by using MultiView or something similar,
- you can click once on the button to start playing, and after that, this
- button allows you to toggle between playing and paused mode.
-
-
- Using it in applications:
- If you are a programmer and want to play back midi music without knowing
- something about midi, you can use midi.datatypes in pretty the same way
- as sound.datatype (V40 preferably). See the example sources playaudio.c
- and playmidi.c for more. Midi background music would be quite nice for
- games, web browsers and for telling about events (think about music
- playing if new mail came to your mailbox).
-
-
- Preferences file:
- The midi.datatype tries to load a preferences file from
- "ENV:DataTypes/midi.prefs". The template is: CLUSTER/K,VOLUME/N/K
-
- CLUSTER - Sets the CAMD cluster to the given name. See CAMD documentation
- for more. Default is "out.0", which is the internal serial port.
- VOLUME - This is currently unused and will allow setting main volume
- in future releases. Default is 64 which is maximum volume.
-
- Each option should be on its own line. You cannot use SETENV for this.
-
-
- Future:
- To make loading/saving useable and allow the use of subdatatypes, there
- is a need to specify a nice memory representation of midi music files.
- Maybe it can even be enhanced to be a full music datatype with the
- possibility to embed sampled instruments into the music.
- See Future.readme for more.
-
-
- Distribution files:
- midi.datatype -- the main part
- midi.datatype.debug -- outputs lots of funny stuff to Sushi
- SMF -- the description of SMF files for datatypes
- MidiDT.readme -- this file
- Future.readme -- plans about the future, do you want to help improving ?
- Tools/playaudio -- CLI only player for sound samples and midi data
- Tools/playmidi -- small CLI only player for midi data
- Docs/midi_dtc.doc -- midi.datatype Autodoc
- Docs/midi_dtc -- same in AmigaGuide format
- Source/makegst.h -- for creating a SAS/C GST
- Source/debug.h -- debugging code
- Source/register.h -- register definitions
- Source/midiclass.h -- mididt specific definitions
- Source/startup.c -- library startup header
- Source/libinit.c -- library initialize functions
- Source/dispatch.c -- class dispatcher
- Source/handlemidi.c -- midi player
- Source/playaudio.c -- source of playaudio CLI tool
- Source/playmidi.c -- source of playmidi CLI tool
- Source/SCOPTIONS -- SAS/C compiler options
- Source/smakefile -- makefile for all things
- Source/smakefile.link -- linker options
-
- These two files are not copyrighted by me:
- Extras/Entertainer.mid -- example SMF file
- Extras/MidiFile -- description of the SMF file format as ascii text
-
-
- Recompiling:
- You will need SAS/C, though it does not use assembler code. If you know
- how to pass arguments in registers, you might be able to port it.
- To compile it, you need the full CAMD package, as it can be found on
- the Amiga Developer CD. Autodoc creation is performed by using makedoc
- and xrefconvert, both created by Stefan Ruppert (thanks !) and can
- be found on Aminet in dev/misc.
-
-
- Copyright:
- This midi.datatype package is Freeware and comes with source code.
- This means you are allowed to distribute it (all files must be included)
- and you can use it for free. It is still copyrighted by me.
- However I can give you no warranty, so use it at your own risk.
-
- The source code is included for improving midi.datatype and to show
- how a superclass datatype can be programmed. Since I was pleased about
- every piece of source code I discovered on Aminet which helped me with
- this project, I have created this policy:
-
- ------ start of source code policy ------
- You are allowed to make use of the source code,
- if you follow these three rules:
- 1. The resulting program must be Freeware.
- 2. The source code of it must be distributed with it, too.
- 3. This source code policy must be part of the copyright notice of it.
- ------ end of source code policy ------
-
-
- Credits:
- Many thanks go to:
- * Stefan Ruppert for his great binary.datatype !
- This was the only example source code of a superclass datatype
- I could find. Thanks for releasing your source code !
- I have looked at V39.11 (11.4.95) of binary.datatype.
-
- * Andreas R. Kleinert for his "Datatype in 100% C code" distribution.
- I have used V43.9 (29.6.97) to build this datatype.
-
- * All people involved in the camd.library project and especially to
- Dan Baker, who created the playmf midi CLI player.
- This was V40.1 back in the old Commodore days.
-
- * David N. Junod for example source codes of datatypes stuff.
-
- * Ketil Hunn for his source code of a IconifyButton BOOPSI class (V1.0).
- It gave me a hint how to handle input events.
-
- * Christian Buchner for his waveblaster-guide which gave me the start
- into midi world.
-
-
- Author:
- Martin Gierich
- Narzissenweg 7
- 76297 Stutensee
- Germany
-
- EMail: Martin.Gierich@stud.uni-karlsruhe.de
- (replies might take one or two weeks)
- Homepage: http://www.uni-karlsruhe.de/~uj3w/
- (maybe new beta versions can be found there)
-
- My system used: AT A1200, OS3.1, Blizzard 68030/68882/50MHz IV board,
- 18MB total RAM, some harddisks, Yamaha DB50XG midi wavetable
- synthesizer board connected to the internal serial port.
-