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