Up to [cvs.NetBSD.org] / src / sys / dev / isa
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: chap-midi
Revision 1.12.14.4 / (download) - annotate - [select for diffs], Sat Jun 10 22:32:27 2006 UTC (17 years, 10 months ago) by chap
Branch: chap-midi
Changes since 1.12.14.3: +10 -2
lines
Diff to previous 1.12.14.3 (colored) to branchpoint 1.12 (colored) next main 1.13 (colored)
Now with support for the following MIDI controls - Channel Volume Expression - the following heretofore unimplemented message - Pitch Bend - and the following registered parameters - Pitch Bend Range Channel Fine Tuning Channel Coarse Tuning Volume and Expression are handled by all synth chip drivers but pcppi (which has a fixed volume). All of the pitch controls will be effective (at least for new notes struck after a change) for all current synth drivers but cms (that driver discards all the fractional pitch bits and calculates its own frequency by a table lookup; it should be possible to do better with knowledge of the formula behind the table, but I have found no cms docs). If a driver provides repitchv and relevelv methods for changing the pitch/level of a sounding voice, then changes to these parameters will take effect in real time and not just for subsequent notes. The effect can be heard (for repitchv) over pcppi. Heads up: if you build with libprop earlier than 2006.05.28, you can enjoy the exhilarating experience of seeing kernel memory stomped. ;)
Revision 1.12.14.3 / (download) - annotate - [select for diffs], Fri Jun 9 17:05:28 2006 UTC (17 years, 10 months ago) by chap
Branch: chap-midi
Changes since 1.12.14.2: +5 -5
lines
Diff to previous 1.12.14.2 (colored) to branchpoint 1.12 (colored)
Bit of housecleaning. "miditune" wasn't a good name for the pitch representation (even if it did come from the MIDI Tuning Specification) because for too many people a 'tune' is a little ditty, not a single pitch. Changed the name to midipitch and added a typedef midipitch_t; renamed the associated macros consistently. The type and operations on it are now in <sys/midiio.h> because they could show up in userland for manipulation of the MIDI Tuning messages that RP-012 defines. The macro MIDIPITCH_TO_HZ18 expands in userland to ordinary libm calls, and in-kernel to the no-floating-point version in midisyn. A few more operations are defined in userland where libm is available. At the same time, made midipitch_t signed. It has the bits to spare, and such manipulations as adding several corrections and clamping the result will be simpler with it signed.
Revision 1.12.14.2 / (download) - annotate - [select for diffs], Thu Jun 8 13:21:48 2006 UTC (17 years, 10 months ago) by chap
Branch: chap-midi
Changes since 1.12.14.1: +13 -16
lines
Diff to previous 1.12.14.1 (colored) to branchpoint 1.12 (colored)
Rototill of midisyn <-> synth driver i/f. The DOALLOC and FREQXLATE flags are on the way out. Whether a driver wants allocation service is deducible from whether it provides an allocv method, and anyway none does. As for freq, they all get a miditune and can convert it whichever way they want. Controller handling with midictl is hooked in but few controllers watched yet. Some macros for manipulating the miditune type are currently in midisynvar.h but should perhaps be exported in midiio.h. opl no longer has its own master volume state (there was no setter for it anyway, it never changed); soon that will be handled centrally in midisyn. Builds a kernel. Not all functionality tested yet.
Revision 1.12.14.1 / (download) - annotate - [select for diffs], Wed Jun 7 01:23:10 2006 UTC (17 years, 10 months ago) by chap
Branch: chap-midi
Changes since 1.12: +5 -14
lines
Diff to previous 1.12 (colored)
The midisyn clients now use designated initializers so the method structure can evolve. Only opl currently provides any methods beyond open/close/note-on/note-off. Only cms takes a note number; the others want a frequency. This is good because it is much easier that way to put a common handler for tuning/pitchbend/portamento in midisyn itself. Next up, axe most methods nobody implements. Split note-on into two methods, one with a frequency, one with a note number, of which a driver provides one or the other. So far all of the clients delegate voice allocation to midisyn, so clarify that the method is getting an actual voice number for the device and not a MIDI channel. If a device that can do its own allocation is later to be supported, let appropriate different methods be added then.
Revision 1.12 / (download) - annotate - [select for diffs], Sun Dec 11 12:22:03 2005 UTC (18 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5,
yamt-uio_vmspace,
yamt-pdpolicy-base6,
yamt-pdpolicy-base5,
yamt-pdpolicy-base4,
yamt-pdpolicy-base3,
yamt-pdpolicy-base2,
yamt-pdpolicy-base,
simonb-timecounters-base,
simonb-timecounters,
simonb-timcounters-final,
peter-altq-base,
peter-altq,
gdamore-uart-base,
elad-kernelauth-base,
elad-kernelauth,
chap-midi-nbase,
chap-midi-base
Branch point for: yamt-pdpolicy,
rpaulo-netinet-merge-pcb,
gdamore-uart,
chap-midi
Changes since 1.11: +2 -2
lines
Diff to previous 1.11 (colored)
merge ktrace-lwp.