2006年11月28日星期二

在线收听古典音乐频道

WCPE古典音乐频道,位于Rolesville,NC,24小时播音。这里是在线收听地址: http://audio-ogg.ibiblio.org:8000/wcpe.ogg.m3u

2006年10月26日星期四

Linux下复制Video DVD

首先制作iso镜像文件:
mkisofs -dvd-video -o dvd.iso /media/dvd
刻录DVD:
growisofs -dvd-compat -Z /dev/hdc=dvd.iso

2006年9月11日星期一

Gnuplot的Palette Map作图

例子(TEM22高斯型光束强度分布存在gaussian_profile文件中):
gnuplot> set view map
gnuplot> unset surface
gnuplot> set style data pm3d
gnuplot> set style function pm3d
gnuplot> set pm3d at b
gnuplot> set palette gray
gnuplot> set size square
gnuplot> splot "gaussian_profile"
生成的图像:

2006年8月17日星期四

从YouTube,Google Video等站点下载视频

YouTubeGoogle Video等网站利用新的FLV(Flash Video)流媒体视频技术允许用户在互联网上传播录像,但有时候我们希望把录像保存到自己电脑上,而不是仅仅在网上浏览。Firefox的扩展工具VideoDownloader能够让用户把这些录像下载到本地。下载之后的文件是FLV格式,如果想在一般媒体播放器里看,可以在Linux下用ffmpeg把FLV文件转化成MPG或其他格式:
 ffmpeg -i video.flv -ab 128 -ar 44100 -b 200 -s 320x240 video.mpg
上面命令中,-b表示视频比特率,-ab表示音频比特率,-ar表示音频取样率,-s表示视频画面大小(宽x高)。

2006年8月13日星期日

学用绘图工具MetaPost(二)

  1. 线性方程
  2. MetaPost可以解线性方程。处于从z1z2之间1/3位置的点z3可以表示为:
    z3=1/3[z1,z2]
    z1z2两点的直线上任意一点可以表示为:
    whatever[z1,z2]
    z1也可以用分量表示:(x1,y1)。下面是寻找两直线交点的例子:
    MetaPost代码生成的图像
    beginfig(7);
    z1=(-1.5cm,0);
    z2=(-3.2cm,-2cm);
    z3=(2cm,0);
    z4=(3cm,-2cm);
    z5=whatever[z1,z2]=whatever[z3,z4];
    draw z2--z1--z5;
    draw z4--z3--z5;
    pickup pencircle scaled 4pt;
    draw z1; draw z2; draw z3;
    draw z4; draw z5;
    endfig;
    fig7
  3. 图像里插入文字和符号
  4. label可以在图像里插入文字,后缀lft|rt|top|bot|ulft|urt|llft|lrt分别表示左、右、上、下、左上、右上、左下和右下。另外,通过btex...etex还可以插入LaTeX公式命令。
    beginfig(8);
    a=.8in; b=.6in;
    z0=(0,0);
    z1=-z3=(a,0);
    z2=-z4=(0,b);
    draw z1..z2..z3..z4..cycle;
    draw z1--z0--z2;
    label.top("a", .5[z0,z1]);
    label.lft("b", .5[z0,z2]);
    dotlabel.bot("(0,0)", z0);
    endfig;
    fig8
    beginfig(9);
    numeric u;
    u=1cm;
    draw (0,2u)--(0,0)--(4u,0);
    pickup pencircle scaled 1pt;
    draw (0,0){up}
       for i=1 upto 8: ..(i/2,sqrt(i/2))*u endfor;
    label.lrt(btex $\sqrt x$ etex, (3,sqrt 3)*u);
    label.bot(btex $x$ etex, (2u,0));
    label.lft(btex $y$ etex, (0,u));
    endfig;
    fig9
  5. 用gnuplot和xfig输出MetaPost文件
  6. 常用绘图工具gnuplot和xfig都可以输出MetaPost文件,然后就可以手工编辑,加入LaTeX公式等效果。xfig只要export成MetaPost文件就可以了。gnuplot可以用
    set terminal mp
    set output "filename.mp"
    输出为MetaPost文件。

2006年8月11日星期五

学用绘图工具MetaPost(一)

MetaPost是贝尔实验室的John Hobby基于Knuth的METAFONT设计的一种绘图语言。它适于绘制精确的数学图形,可以方便的生成EPS文件,供插入到LaTeX文档中。

Linux下可以用mpost命令处理编辑好的MetaPost文件,生成EPS文件。生成的EPS文件可以作为图片插入到LaTeX文件中,但是没办法直接用gv等PostScript浏览器直接观看,这里有关于这个问题的讨论和解决办法。另外,可以用mptopdf命令代替mpost,可以解决这个问题,而且可以直接生成PDF文件。

下面是MetaPost的简介。beginfig...endfig之间是绘图命令。实际使用中,好几个beginfig...endfig可以放在一个文件里,文件最后需要有一个end命令。
  1. 画直线和曲线
  2. MetaPost代码生成的图像
    beginfig(1);
    z0=(0,0);
    z1=(3cm,2cm);
    z2=(2cm,4.5cm);
    z3=(0.5cm,3.5cm);
    z4=(1.5cm,2.5cm);
    draw z0--z1--z2--z3--z4;
    endfig;
    fig1
    beginfig(2);
    u=1cm;
    z0=(0,0);
    z1=(3u,2u);
    z2=(2u,4.5u);
    z3=(0.5u,3.5u);
    z4=(1.5u,2.5u);
    draw z0..z1..z2..z3..z4;
    endfig;
    fig2
    beginfig(3);
    z0=(0,0);
    z1=(3cm,2cm);
    z2=(2cm,4.5cm);
    z3=(0.5cm,3.5cm);
    z4=(1.5cm,2.5cm);
    draw z0..z1..z2..z3--z4--cycle;
    endfig;
    fig3
  3. 表示方向的dir和用于循环的for
  4. dir a提供了与x轴夹角为a度的单位矢量。dir 0相当于rightdir 90相当于up,类似的方向矢量还有leftdown
    beginfig(4);
    draw (
        for i=0 upto 7:
          80dir (135i)--
        endfor
          cycle);
    endfig;
    fig4
    beginfig(5);
    for a=0 upto 7:
      draw (0,0){dir 45}..{dir 10a}(6cm,0);
        endfor
    endfig;
    fig5
  5. 改变画笔粗细
  6. beginfig(6);
    u=1cm;
    draw (-u,0)--(u,0);
    draw (0,-u)--(0,u);
    pickup pencircle scaled 3;
    draw (-u,u)--(u,u)--(u,-u)--(-u,-u)--cycle;
    endfig;
    fig6

2006年5月19日星期五

pdf文件处理工具:pdftk

pdftk是一个处理pdf文件的小工具,可以进行合并pdf文档,提取其中几页成为新pdf文件,加密解密等操作。
  1. 合并多个pdf文件

    pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
  2. 提取文件某几页合成为新文件

    pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf
  3. 128位加密文件

    pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz
  4. 加密但是允许打印

    pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz allow printing
  5. 解密文件

    pdftk secured.pdf input_pw foopass output unsecured.pdf

2006年5月5日星期五

如何使用Maxima(二)

  1. 三角函数变换

    常用的三角函数变换有下面几种:
    trigexpand
    利用和差化积公式展开
    trigreduce
    利用积化和差等公式变成sincos的和
    trigsimp
    利用sin2(x) + cos2 = 1等公式简化
    trigrat
    简化分数形式
    下面是一些例子:
    (%i1) sin(2*x)/cos(x)+cos(2*x);
                                  sin(2 x)
    (%o1)                         -------- + cos(2 x)
                                   cos(x)
    (%i2) trigexpand(%o1);
                                 2                    2
    (%o2)                   - sin (x) + 2 sin(x) + cos (x)
    (%i3) trigreduce(%o1);
    (%o3)                     sec(x) sin(2 x) + cos(2 x)
    (%i4) trigsimp(%o1);
                              sin(2 x) + cos(x) cos(2 x)
    (%o4)                     --------------------------
                                        cos(x)
    (%i5) trigrat(%);
    (%o5)                         cos(2 x) + 2 sin(x)
    
  2. 微积分

    微分:
    (%i1) f: sqrt(x-1)*exp(2*x^2);
                                                   2
                                                2 x
    (%o1)                         sqrt(x - 1) %e
    (%i2) diff(f, x);
                                                         2
                                             2        2 x
                                          2 x       %e
    (%o2)               4 sqrt(x - 1) x %e     + -------------
                                                 2 sqrt(x - 1)
    (%i3) diff(sin(x)*exp(x^2), x, 2);
                           2             2                 2
                      2   x             x                 x
    (%o3)          4 x  %e   sin(x) + %e   sin(x) + 4 x %e   cos(x)
    
    不定积分:
    (%i4) integrate(%o2, x);
                                           2   log(x - 1)
                                        2 x  - ----------
                                                   2
    (%o4)                     (x - 1) %e
    
    定积分: 从这个例子可以看出,maxima是一个很聪明的代数系统,它不会像其他数学程序那样想当然的默认一个结果,而是主动问你必要的条件,然后给出正确的结果。
    (%i5) integrate(exp(-a*x^2), x, 0, inf);
    Is  a  positive, negative, or zero?
    
    positive;
                                       sqrt(%pi)
    (%o5)                              ---------
                                       2 sqrt(a)
    
    泰勒展开: 这个例子给出函数g的前三阶泰勒展开。
    (%i6) g: sin(2*x)*exp(a*x);
                                      a x
    (%o6)                           %e    sin(2 x)
    (%i7) taylor (g, x, 0, 4);
                                    2       3     3         4
                            2   (3 a  - 4) x    (a  - 4 a) x
    (%o7)/T/     2 x + 2 a x  + ------------- + ------------- + . . .
                                      3               3
    

2006年5月4日星期四

刘再复这样概括巴金

‘文革’结束了,伸冤的伸冤,平反的平反,乌纱帽掉了又带上了,而那些在牛棚里受难的作家与革命家们个个都在讲述自己的苦难过去和向社会索取报酬,甚至讴歌‘二次解放’。只有一个受折磨的灵魂,在寓所的墙角下对过去自己的著作与行为感到深深不安,感到揪心的惭愧,灵魂和双手都在战栗,这就是《真话集》(即《随想录》)的伟大作者……惟一,惟一,Only One!中国的大地这么辽阔,大地上所发生的历史事件这么惨烈,卷入历史运动的人群数亿之众,但我们在大喧哗之后听到的良心呻吟与自我鞭挞却只有一个!

2006年5月3日星期三

如何使用Maxima(一)

Maxima是一个优秀的开放源代码代数运算系统,符号运算能力可以和著名商业数学软件Mathematica相媲美。这里是它的使用方法的一个简介。
  1. 运行和退出

    运行:
    maxima
    进入maxima环境后,会看到开始处有(%i1),这是行标。%i表示输入行,%o表示输出行,后面的数字表示第几个输入或输出。 退出:
    quit();
    可以看出,maxima语法和C语言类似,语句结束需要加分号。maxima里面是要区分大小写的。
  2. 算术运算

    符号+, -, *, /, ^分别表示加、减、乘、除、乘方。maxima是一个精确计算的代数系统,例如分数,开方等运算会保持符号形式,不会被自动转化为小数。
    (%i1) 2/5+3/4;
                                          23
    (%o1)                                 --
                                          20
    
    如果要输出小数,可以用numer命令:
    (%i2) %,numer;
    (%o2)                                1.15
    
    百分号%代表最后一次输出的结果。另外,可以用bfloat输出任意精确度的小数,有效数字位数由变量fpprec控制,默认是16位。
    (%i3) fpprec:100;
    (%o3)                                 100
    (%i4) bfloat(%pi);
    (%o4) 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068b0
    
    (%i3)中的冒号表示赋值。
  3. 代数运算

    多项式展开:
    (%i5) (x^2+2*x*y+3*y^2)^3;
                                     2            2 3
    (%o5)                        (3 y  + 2 x y + x )
    (%i6) expand(%);
                6         5       2  4       3  3       4  2      5      6
    (%o6)   27 y  + 54 x y  + 63 x  y  + 44 x  y  + 21 x  y  + 6 x  y + x
    
    等量代换:
    (%i7) %o6, x=2/z;
                     5        4        3        2
                108 y    252 y    352 y    336 y    192 y   64       6
    (%o7)       ------ + ------ + ------ + ------ + ----- + -- + 27 y
                  z         2        3        4       5      6
                           z        z        z       z      z
    
    提取公分母:
    (%i8) ratsimp(%);
              6  6        5  5        4  4        3  3        2  2
          27 y  z  + 108 y  z  + 252 y  z  + 352 y  z  + 336 y  z  + 192 y z + 64
    (%o8) -----------------------------------------------------------------------
                                             6
                                            z
    
    因式分解:
    (%i9) factor(%);
                                    2  2             3
                                (3 y  z  + 4 y z + 4)
    (%o9)                       ----------------------
                                           6
                                          z
    
    解非线性方程组:
    (%i10) a+b+2*c=0;
    (%o10)                          2 c + b + a = 0
    (%i11) 2*a-b=1;
    (%o11)                            2 a - b = 1
    (%i12) a-2*b*c=5;
    (%o12)                           a - 2 b c = 5
    (%i13) solve([%o10,%o11,%o12],[a,b,c]);
                 sqrt(7) + 1      2 sqrt(7) - 1      sqrt(7) - 14
    (%o13) [[a = -----------, b = -------------, c = -------------],
                      3                 3            4 sqrt(7) - 2
                              sqrt(7) - 1        2 sqrt(7) + 1      sqrt(7) + 14
                       [a = - -----------, b = - -------------, c = -------------]]
                                   3                   3            4 sqrt(7) + 2
    

2006年4月24日星期一

反驳对Linux的两种无知的指责

经常听到对Linux有若干指责,其实完全是无知的表现。 第一,说“用Linux有法律隐患”。其实,目前针对Linux的法律起诉非常少,而且据我所知,Linux还没有一起败诉的。相反,Microsoft招致的起诉远远多于Linux,而且很多以败诉告终。以今天的软件复杂度,有知识产权纠纷是非常正常的,可以说任何一个软件企业都有陷入法律纠纷的可能,单单指责Linux是没有道理的,更何况Linux根本不是一个企业。Windows和MS Office都有败诉的例子,而人们还在使用他们,这些人凭什么去指责Linux有法律问题。 第二,说“Linux版本众多,相互不兼容”。Linux下绝大部分软件是以源代码形式发布的,安装时根据不同的平台进行编译,兼容众多的硬件平台,绝对比只运行在PC上Windows兼容性强。为了大家方便,也有很多编译后的二进制代码以软件包的形式发布。虽然Linux有很多版本,但是软件包的管理方式主要有两种:一种是Red Hat的rpm,一种是Debian的dpkg。通过alien软件,这两种包可以互相转换,所以不存在不兼容的问题。一些硬件厂商以Linux版本多,支持起来不容易为由拒绝为Linux提供驱动,就更是可笑了。他们只要提供内核级的驱动支持就可以了,Linux发行版再多跟他们也没关系。有些人抱怨Linux支持的硬件少,这是因果颠倒,他们应该去抱怨这些硬件厂商不支持Linux。

2006年4月21日星期五

莫扎特作品下载

这里有好多莫扎特作品mp3下载。虽然音质不是特别好,但是作为莫扎特作品入门完全可以了。

2006年4月18日星期二

Monte Carlo方法

The Review of Particle Physics有一篇关于Monte Carlo方法的Review,在Mathematical Tools里面,介绍了Monte Carlo方法和任意分布随机数的生成,地址是 http://pdg.lbl.gov/2005/reviews/monterpp.pdf。 另外还有一些关于概率和统计的Review,对进行计算机模拟实验很有帮助。

2006年4月14日星期五

谈谈Super64吧

Super64生日礼物耶!我不太舍得买,但是很仰慕这把琴(或者说比较仰慕Franz Chmel),经常念叨,结果老婆就作为生日礼物送给我,很惊喜啊。现在把玩了有一段时间了,谈谈感受吧。
  • 体积:

    的确比12孔口琴大了不少,也重了一些,但是在乐器中仍然属于非常小巧的,所以没什么抱怨了。前些时候跟一个邻居介绍口琴有三到四个八度的音域,他还很吃惊。他虽然不精通音乐,但是也玩过很多乐器,所以对乐器有些了解,知道一般管乐器没有这么大的音域。这一点小小口琴的确挺让人吃惊的。
  • 吹嘴:

    非常顺滑。一开始感觉比270吹嘴厚,但是习惯之后觉得比270更容易含多孔演奏八度和声,大概是因为形状更符合人体工程学吧。吹快速的曲子时比较容易感觉嘴唇粘连,似乎吹嘴有吸水效果似的,大概和镀银有关。但是如果稍微有点水,就会变得非常滑溜。至于圆形吹孔,我并没有感觉和方形的有太大不同,因为我很少真的把舌头贴在吹孔上的,除了极少数吹和声的时候。孔距比270略大一些,虽然差别不大,但是我需要花一段时间去适应。
  • 盖板:

    以前觉得Super64外观不如270好看,但是真的拿到手,觉得还是很不错的。尤其是新琴,外壳很亮,造型很有现代感,这点和新的270Deluxe比较相似,和270的古典美不一样。拿给一位学小提琴的朋友看,他一个劲的夸漂亮。外壳似乎比较薄,捏起来像日本汽车外壳的感觉,比较软。难道是我手劲太大了?
  • 按键:

    比270行程长,比255行程短。弹簧没有270那么硬,花了一段时间去适应。新琴按键声音比较大,拆开后在按键推杆边缘抹了一点点半固态的润唇膏,声音小了许多。这个用量一定要小,用手指头沿着边缘抹一点点就好,多了就容易沾灰了。
  • 簧片:

    明显比270容易驱动,同样的力度变化,在Super64上显的更容易一些。270上发音略微滞后的现象没有了,用老婆的话说,就是听我吹曲子“不赶了”。高音比270省力,低音比270容易发声,多出的低音四孔需要点功力驱动。有少数几个簧片发音有问题。例如多出的低音四孔里有个别簧片有颤音,但是吹了一段时间后好了些。高音有些音发音不通畅,需要重新调整一下簧片和面板间距。有一个c音至今仍然有问题,吹起来似乎有关风薄膜被粘住那种“扑扑”声,但是明显不是薄膜的问题。快速或大力的吹没问题,但是温柔一点的吹问题就来了。我估计是簧片平直度的问题,但是因为在内侧,不太好调整,我也不希望把新琴弄坏,反正同样音高的c有好几个呢,就这样吧。
  • 音色:

    和270比较,270明亮中略带沙哑,Super64深沉饱满,类似于单簧管。感觉270比较有激情,Super64婉约一些。这一点上不同的人可能有不同的喜好,我老婆喜欢Super64的音色。不管他人如何看法,我觉得琴格材料对音色影响还是满大的。

2006年4月12日星期三

Fedora Core 5英文环境下运行中文Firefox的Script

这里假设是KDE环境,Gnome没有试过,不知道行不行。
#!/bin/bash

export LANG="zh_CN.UTF-8"
export GDM_LANG="zh_CN.UTF-8"
export QT_IM_MODULE=scim
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=scim
firefox &

2006年4月11日星期二

在eps图形中插入文字

% Sample of printing text

/Times-Roman findfont   % Get the basic font
20 scalefont            % Scale the font to 20 points
setfont                 % Make it the current font

newpath                 % Start a new path
72 72 moveto            % Lower left corner of text at (72, 72)
(Hello, world!) show    % Typeset "Hello, world!"

showpage
参考链接: First Guide to PostScript

2006年4月10日星期一

把多个eps文件合为一个eps文件

有时候需要把多个eps图形文件合为一个文件。在网上搜索了一下,似乎没有什么特别合适的工具。这里有个解决办法。 在linux下eps文件其实就是一个文本文件,可以用vim等文本编辑器手动编辑。例如要把01.eps, 02.eps, 03.eps, 04.eps四个图形文件合为一个2x2的图形文件,可以首先执行下面命令把它们合为一个文件
cat 01.eps 02.eps 03.eps 04.eps > outfile.eps
然后用vim打开outfile.eps。各个文件中间部分是描述图形的,不需要管。只要改动一下每个文件的开头和结尾部分就可以了。
  1. 每个eps文件开头都有类似于这样一行:
    %!PS-Adobe-2.0 EPSF-2.0
    只要保留第一个文件中的就行了,其余文件开头的这一行都删去。
  2. 每个eps文件结尾都有这样的命令:
    showpage
    只需要保留最后一个就可以了,其余文件结尾处的该命令都删去。
  3. 每个文件开头都有类似于这样一行:
    %%BoundingBox: 0 0 100 120
    这表示图形的大小,四个数字分别是左下角和右上角的坐标。我们需要根据自己的要求把数字改一下。例如如果每个eps大小都是100x120,我们希望得到2x2的图形列表,那么合成之后的图应该是200x240的。那么我们把第一个eps文件开头的BoundingBox改为
    %%BoundingBox: 0 0 200 240
    ,然后把其余各eps文件开头的BoundingBox行删掉。
  4. 在第一个eps文件开始处(BoundingBox之下,其余postscript命令之上)加入
    save gsave
    ,在其余eps文件开始处加入
    grestore restore
    save gsave
    xxx yyy translate
    xxx和yyy对应于每个eps图形平移的坐标。在所有eps文件最后的showpage之前加入
    grestore restore
然后就可以用postscript浏览器看效果了。 参考链接: http://www.debian.org/doc/manuals/user/ch11.html

2006年4月6日星期四

谢旭东的Blog

今天和好朋友谢旭东联系上了。好久没见面了。这是他的Blog: 谢旭东的Blog

2006年4月1日星期六

设置Linux router

如果Linux机器上有两块网卡,eth0(外部网)和eth1(内部局域网),可以如下设置让内部局域网的机器通过这台电脑连接外部网络:
iptables -t nat --flush
iptables -t nat --delete-chain
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables --insert FORWARD -i eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

2006年3月30日星期四

用blender做的第一个3D图

就是为了好玩,挺简单的一个3D图。 Cube

2006年3月24日星期五

生日快乐!

祝自己生日快乐!

收到了老婆送的礼物,Hohner Super64口琴,非常非常高兴!一直梦寐以求的琴啊!确实比270的音色好,簧片反应快,但是孔距和按键的行程和270都有些不一样,需要一些时间去适应。

2006年3月23日星期四

Fedora Core 5安装flash插件

从Macromedia直接下载安装flash插件在Fedora Core 5里行不通,firefox总提示找不到插件。可以从下面这个网址直接下载安装flash-plugin的rpm包, http://macromedia.mplug.org/ 或者干脆按照网页所示的方法把Repos加入/etc/yum.repos.d/用yum安装。

2006年3月22日星期三

把文本文件中的逗号分隔符换成TAB

sed 's/,/\t/g' input-file > output-file

2006年2月22日星期三

用gnuplot拟合Gaussian曲线

在gnuplot里定义Gaussian函数
f(x)=a*exp(-(x-b)*(x-b)/(c*c))
这个Gaussian函数的宽度 FWHM = 2*sqrt(ln2)*c = 1.665c 建立一个参数列表文件gaussian.par:
#three parameters
a = a0
b = b0
c = c0
其中a0, b0, c0是人为设置的初始值。在gnuplot里运行
fit [xrange] f(x) 'datafile' via 'gaussian.par'
上面[xrange]替换成相应的自变量区间,datafile是数据文件名。

2006年1月30日星期一

用Mplayer下载流媒体文件

互联网上有些音像文件是以流媒体形式存在的,例如rtsp,mms协议。使用mplayer可以把这些文件下载到本地机器上。例如:
mplayer -dumpstream mms://hostname/directory/filename
下载之后的文件名是stream.dump,只要改回相应文件名就可以了。

2006年1月24日星期二

古典音乐作品编号标记

很多时候我们见到一些古典音乐作品的名字后面跟着由字母和数字组成的编号,例如op37, kv525, RV4, D112等.究竟这些标号表示什么意思,来源于哪里,有什么作用?最常见的记号是op或opus,拉丁语的意思是"作品".它大概起源于17世纪初叶,出版音乐乐谱的出版商为了区别同一作曲家的不同作品而标上记号,这就是op记号. op记号通常是按同一作曲家出版作品的次序由小到大编号,但这又并不是绝对的.不过, op标记也有问题,例如很多作曲家的作品由不同出版商出版,那时不同出版商有不同的op序号.因此会出现某作品在一个出版商标号为op3,在另一出版商标号为op8,甚至有第三个出版商那里编号为op6,这样显然会造成混乱.   到了近两百年,越来越多学者研究前人的音乐作品.这些学者为研究这些作曲家的作品,列出他们所作的所有作品进行研究甚为重要.由于前面所讲的 op记号有时会造成混乱,或是研究者在研究过程中发现新的作品,又或者是一些作品未正式出版而没有op记号,这时对所有作品进行重新编号便成为这些学者的又一项工作.由此就产生如BWV, D等编号,这些编号往往是提出新作品编号的学者名字的代表字母.下面列出一些作曲家作品常用的记号:   作品记号/适用的作曲家   AV Richard Strauss 理查-斯特劳斯   B Dvorak 德沃扎克   BB Bartok 巴托克   BWV J.S. Bach 巴赫   D Schubert 舒伯特   F Vivaldi 韦瓦尔第   H Holst 侯斯特   HWV Handel 汉度   K Mozart 莫扎特   KV Mozart 莫扎特   L Debussy 德彪斯   M Vivaldi 韦瓦尔第   Op 多数作曲家   P Vivaldi 韦瓦尔第   R Vivaldi 韦瓦尔第   RV Vivaldi 韦瓦尔第   S J.S. Bach 巴赫 (与BWV相同)   S Liszt 李斯特   Sz Bartok 巴托克   WWV Wagner 韦格勒   Z Purcell 帕萧