18e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels/********************************************************************
28e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels *                                                                  *
38e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
48e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
58e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
68e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
78e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels *                                                                  *
88e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007             *
98e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels * by the Xiph.Org Foundation http://www.xiph.org/                  *
108e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels *                                                                  *
118e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels ********************************************************************
128e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
138e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels function: bark scale utility
148e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels last mod: $Id: barkmel.c 16037 2009-05-26 21:10:58Z xiphmont $
158e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
168e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels ********************************************************************/
178e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
188e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels#include <stdio.h>
198e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels#include "scales.h"
208e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckelsint main(){
218e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  int i;
228e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  double rate;
238e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  for(i=64;i<32000;i*=2){
248e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=48000.f;
258e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
268e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
278e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
288e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=44100.f;
298e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
308e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
318e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
328e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=32000.f;
338e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
348e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
358e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
368e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=22050.f;
378e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
388e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
398e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
408e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=16000.f;
418e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
428e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
438e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
448e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=11025.f;
458e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n",
468e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
478e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
488e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    rate=8000.f;
498e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    fprintf(stderr,"rate=%gHz, block=%d, f(1)=%.2gHz bark(1)=%.2g (of %.2g)\n\n",
508e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels            rate,i,rate/2 / (i/2),toBARK(rate/2 /(i/2)),toBARK(rate/2));
518e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
528e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
538e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  }
548e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  {
558e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    float i;
568e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    int j;
578e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    for(i=0.,j=0;i<28;i+=1,j++){
588e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels      fprintf(stderr,"(%d) bark=%f %gHz (%d of 128)\n",
598e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels              j,i,fromBARK(i),(int)(fromBARK(i)/22050.*128.));
608e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels    }
618e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  }
628e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels  return(0);
638e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels}
648e01cdce135d5d816f92d7bb83f9a930aa1b45aeLucas Eckels
65