Rating:  Summary: You use Windows? You want to USE MIDI? You want Maximum MIDI Review:
I hate computer books. They are all over two inches thick, and cost their weight in gold, but most of them are only worth their weight in paper. However, there is always an exception, and Paul Messick's 'Maximum Midi' is it. It's a GOOD book. You know, like Citizen Kane is a GOOD film. I can now write MIDI applications in Windows. I feel like a bit of an expert. My first sequencer already loads, saves, plays and records. I've got time to concentrate on making it highly usable. The author assumes that you or I, the reader, is intelligent. There's no assumption that you are a C++ whizz, or an electronics genius; just intelligent, and consequently ideas are explained from first principles by a writer who obviously knows his stuff well enough that he doesn't have to prove it by using long words and big ideas. But from first priciples comes lasting knowledge, and by the time the author moves on to explain the less pretty bits of MIDI implementation you realise that you UNDERSTAND everything that's gone before. The learning curve is so smooth, you don't realise you're climbing. But you are climbing, and quite rapidly at that. If ,like me, you read the book from cover to cover (some books just make you want to do that, don't they) by half-way through you KNOW what Sysex is, and how it works, and what's good about it, and why you have to be careful with it. You KNOW why Windows 95 makes timing algorithms difficult, and how to get around it. By this stage you also know that on the CD of the book, there is a toolkit. The toolkit contains functions that allow you to use MIDI in your programs, without also having to care about 'callbacks', 'thunks' or anything else that gives you a headache. (They are explained lucidly, but kept at a safe distance). Midi Input/Output, synchronisation and reading and writing of standard MIDI files are all introduced, fully explained and, finally, implemented in the toolkit. Although you now feel that could write your sequencer, or patch editor, or desk automator from the bottom up, it's nice to know you don't have to. The toolkit is there, it's tested, it works and it's royalty free. There is no reason not to use it. (It's provided as a pair of DLLs, so you can use it from any language. I'm now calling it from Delphi, and hardly knew what a DLL was before reading this book. A set of C++ classes encapsulate the toolkit's functions into a higher level, and very useful form). Don't you just loathe getting to page 800 of 'Mastering your Scroll-Lock key' and realising you learned as much from the introductory chapter as you have from the rest of the book. Well, Mr Messick's book (a mere 1.3 inches thick, if that's important to you!) is full of new knowledge from cover to cover, even the margins are sometimes used for 'by the way...' type information. For once, a publisher has realised that their readers are not fooled by the 'never mind the quality, feel the width' spin. Any useful book review has balance, so here it is: 'Silicon Etching for Dummies' and 'Adjusting your Windows Colour scheme in 21 days' are very bad. 'Maximum Midi' is very good. Is that balanced enough for you? Paul Spbm Clarke
Rating:  Summary: Excelente libro de Introducción Review: Aunque el autor no cubre lo concerniente a la tecnología DirectX (Probablemente porque el libro fue escrito antes de que ésta especificación fuera lanzada al mercado) la verdad es que sí muestra, paso a paso, la verdad sobre la filosofía de diseño de Windows 95 en la parte de la Multimedia y porqué NO es un sistema (sin DirectX) tan extremadamente amigable con los programadores de aplicaciones MIDI que requieran un sincronismo sólido. La solución que propone el autor a este problema se encuentra muy bien implementada e igualmente documentada y constituye un excelente punto de partida para aquellos programadores que deseen tener bases sólidas sobre el tema y los suficientes elementos como para empezar sus propias aplicaciones. De hecho, si el lector tiene el compilador de Microsoft Visual C++ 4.0 (o más reciente), puede comenzar a escribir aplicaciones sencillas incluso durante la lectura del mismo, usando los DLL's precompilados que contiene el CD y luego, si le gustan los verdaderos retos, comenzar a escribir sus propios DLL's. Explica detalladamente el concepto y proceso del "Thunking" y porqué es necesario para construír aplicaciones MIDI dentro del entorno de Windows 95. Resulta un excelente punto de partida y el foro en línea al que da acceso es muy útil como fuente de información sobre el tema. Realmente lo recomiendo.
Rating:  Summary: Informative, Empowering, Amusing, Just plain good! Review: First a note. The main purpose of this book is twofold. It's a good introduction to MIDI and using it in windows 95/98, but it doesn't go into detail of how windows does everything. Rather its a documentation for a library of functions that do all the hard work for you and let you get on with writing good MIDI applications. The source code is provided and the author leaves a VERY generous lisence on the software, allowing you to do nearly anything with it! Now a word on the writing. This book is perfect, the author uses subtle humor to keep the reading light, but not so much as to make it pathetic. He keeps the tone of the book informal, more as a friend explaining something than a professor lecturing. Despite being filled with facts and details and source code, the book reads like a novel. The chapter that simply describes an overview of the MIDI spec. makes for a great intro to MIDI, even for people who have been using it for years. If you ever plan on learning anything about MIDI and how to write computer programs that use it, buy this book.
Rating:  Summary: A wonderful book Review: I would have paid several hundred dollars for a library of C++ MIDI classes...you get them for free in this book. The author is an expert and the writing is clear easy to read. The book is a great resource if you want to learn how to program MIDI applications in C++.
Rating:  Summary: Comment about thunking Review: I've been reading through the MSDN Library documentation (available online if you want to look it up), and there's an article about MIDI timing (under Technical Articles/Multimedia) that specifically advocates using thunking on 95/98 platforms. NT doesn't have the same 32-bit latency issues, and their suggested solution to NT interoperability is to have both 16 and 32 bit DLLs, and switch between them based on OS.
Rating:  Summary: Windows is as Windows does Review: In the interest of completeness and accuracy, I'd like to comment on a couple of recent reviews about my book Maximum MIDI. First, it is not true in any way that the reader is "forced to use the ToolKit." Every scrap of source code for all of the classes and DLLs is included with the book, along with lengthy descriptions of how the major sections of code operate. If it were my intention to force readers to use the ToolKit, I would either omit the source code or tie readers, one by one, to chairs and hold their hands over their keyboards until they submit. I have done neither, although the latter enterprise is certainly tempting. The DLLs, as described in the book, use thunking in Windows 9x because that is the ONLY way to achieve high-accuracy timing on this platform. Period. Windows is not UNIX or DOS, and wishing it worked differently will not necessarily make it so. Thunking is a major hassle--luckily I've done it for you--but it is here to stay. Other programs, such as Cakewalk, work exactly the same way. They just don't give you the source code to look at. As for operation under Windows NT, the current version of the ToolKit DLLs--downloadable from the Maximum MIDI Forum--are designed to operate transparently in either Windows 9x and NT, without any modification needed to applications. The whys and wherefors of NT support, and numerous other topics are discussed ad nauseum on the Forum. As for bugs in the ToolKit, it is true. Mea Culpa. Few pieces of software as complex as that discussed in the book are completely bug free. Luckily, the bugs are not serious, and, as an added bonus, most of the fixes are posted on the Forum for you to copy and paste into the original source. Try that with your favorite word processor! A number of reviewers have expressed disappointment in the book because they wish to write MIDI programs using the Microsoft SDK calls, and the book doesn't seem to cover this topic. But it does! While regurgitating SDK documentation is a popular way to write about MIDI in Windows, I decided to take a different tack. The book discusses implementation-neutral algorithms for basic tasks, then shows one possible implementation of these algorithms using the ToolKit code as an example. This code documents how to use the SDK calls better than any other documentation method because this is actual working code. Using the SDK calls is not always straightforward, and observing and adapting working code is an excellent way of seeing how they really work. Please feel free to send comments to me via email; I read everything and respond to most. Happy MIDI!
Rating:  Summary: Too bad for the flaws in a great book Review: It is too bad that a book so carefully written and well explained as this one is plagued by two major flaws: 1) the reader/user is forced to use Messick's toolkit. It has to be said that it works: everything in the companion CD runs and compiles, including the example sequencer. But that's not what I, among others, expected: I expected an in-depth treatment of the standard VC/C++ MIDI primitives and functions, out of which to build my own applications. I could show that it's possible to do so, I have started with a few examples. Hence the book is not useful for someone who wants to start from scratch. 2) The method for the timing is a kludge. I follow Messick's reasoning that multitasking systems like Windows do not garantee precise timing, but not his solution to use 16-bit, Win3.x thunks. That is a non-universal trick - which e.g. won't work for NT. Now I am not familiar enough with the innards of Microsoft systems to suggest an alternative solution, but I am sure there is a better one. After all, there are plenty of other sequencers (Cakewalk?) that work under all of them. In UNIX, you'd write a driver with sections of code that are shielded from any interrupt and run in real time - in addition, 2.9 BSD has the ``rtp'' (real time process) system call that locks a process, and earlier machines allowed direct access to the clock from a C program. To conclude, the book is great if one wants to follow what Messick has done - one may suspect he developed that toolkit for some other reason and then decided to make an extra buck by plublishing it - but it's not " the programmer's definitive source of information for developing MIDI-based Windows 95 applications." And that's too bad because, given the scant documentation by Microsoft, there is ample need for such a book.
Rating:  Summary: Too bad for the flaws in a great book Review: It is too bad that a book so carefully written and well explained as this one is plagued by two major flaws: 1) the reader/user is forced to use Messick's toolkit. It has to be said that it works: everything in the companion CD runs and compiles, including the example sequencer. But that's not what I, among others, expected: I expected an in-depth treatment of the standard VC/C++ MIDI primitives and functions, out of which to build my own applications. I could show that it's possible to do so, I have started with a few examples. Hence the book is not useful for someone who wants to start from scratch. 2) The method for the timing is a kludge. I follow Messick's reasoning that multitasking systems like Windows do not garantee precise timing, but not his solution to use 16-bit, Win3.x thunks. That is a non-universal trick - which e.g. won't work for NT. Now I am not familiar enough with the innards of Microsoft systems to suggest an alternative solution, but I am sure there is a better one. After all, there are plenty of other sequencers (Cakewalk?) that work under all of them. In UNIX, you'd write a driver with sections of code that are shielded from any interrupt and run in real time - in addition, 2.9 BSD has the ``rtp'' (real time process) system call that locks a process, and earlier machines allowed direct access to the clock from a C program. To conclude, the book is great if one wants to follow what Messick has done - one may suspect he developed that toolkit for some other reason and then decided to make an extra buck by plublishing it - but it's not " the programmer's definitive source of information for developing MIDI-based Windows 95 applications." And that's too bad because, given the scant documentation by Microsoft, there is ample need for such a book.
Rating:  Summary: Quite a good introductory book on programming MIDI Review: The author explains well the inner workings of programming MIDI with Microsoft's Visual C++ 4.0, although it doesn't cover the DirectX thing. That is, of course, because it was written before the DirectX specification was developed. However, he explains very well why Windows 95 (without DirectX) is NOT a terrific system for making useful MIDI programs, and his solution to this is well implemented and explained. It explains the Thunking concept and process, and explores the heart of the system's Multimedia processes phylosophy and design. It is, therefore, a good starting point for anyone having a Microsoft Visual C++ 4.0 (or later) that wants to know how to make a Rock-Solid MIDI App within the 32 bit world. Then, once you have a feeling of what will it take if you want to make it from scratch, you can see the documentation of your compiler and see how DirectX works and actually evaluate its pros&cons and what solution is the best for your particular interests and needs. I really recommend it. The author does know about this kind of stuff and the online forum is a very useful source of information.
Rating:  Summary: Nice book shame about the bugs Review: The author has gone to a lot of trouble explaining alot about MIDI porgram in c/c++ but at the end of the day his toolkit leave a lot to be desired. several bugs in his toolkit and his lack of interest to upgrade it has left of lot of users left with little choice but to re-write it. the books is a good reference guide to c++ and midi but as a toolkit for developing software its not, as to date not one Multimedia application has rolled out using the toolkit, neither do i fell it will.
|