The NetBSD Project

CVS log for src/sys/dev/isa/midi_pcppi.c

[BACK] 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.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>