<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bugs and some errors with recourding code!</title>
		<link>http://www.allegro.cc/forums/view/591876</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 17 Jun 2007 03:53:49 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello! I made this code based on this topic:<br /><a href="http://www.allegro.cc/forums/thread/588370">http://www.allegro.cc/forums/thread/588370</a></p><p>This program records a sound, from your pc input sound...<br />This is the code:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#define ALLEGRO_USE_CONSOLE 1</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>sample,<span class="k3">*</span>novo<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>FILE <span class="k3">*</span>fp<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> </td></tr><tr><td class="number">12</td><td><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>    <span class="k1">int</span> audio, working_format, bitcap,stereocap,ratecap<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <span class="k1">int</span> ofs <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>    <span class="k1">int</span> len<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <span class="k1">int</span> interval<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    <span class="k1">int</span> foo<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <span class="k1">int</span> size <span class="k3">=</span> <span class="n">1024</span><span class="k3">*</span><span class="n">1024</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    <span class="k1">unsigned</span> <span class="k1">char</span> <span class="k3">*</span>buf, <span class="k3">*</span>tempbuf, <span class="k3">*</span>tempbuf2, <span class="k3">*</span>start, <span class="k3">*</span>novoc, <span class="k3">*</span>start2<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    </td></tr><tr><td class="number">22</td><td>    <span class="c">//Let's find out what we are capable of</span></td></tr><tr><td class="number">23</td><td>  bitcap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/get_sound_input_cap_bits" target="_blank"><span class="a">get_sound_input_cap_bits</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    <span class="k1">if</span> <span class="k2">(</span>bitcap <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"No Audio input capabilty?"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>    stereocap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/get_sound_input_cap_stereo" target="_blank"><span class="a">get_sound_input_cap_stereo</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>  <span class="k1">if</span> <span class="k2">(</span>stereocap <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"No Stereo recording"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td>    ratecap <span class="k3">=</span> <a href="http://www.allegro.cc/manual/get_sound_input_cap_rate" target="_blank"><span class="a">get_sound_input_cap_rate</span></a><span class="k2">(</span>bitcap, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>&#160;</td></tr><tr><td class="number">31</td><td>    working_format <span class="k3">=</span> <a href="http://www.allegro.cc/manual/get_sound_input_cap_parm" target="_blank"><span class="a">get_sound_input_cap_parm</span></a><span class="k2">(</span>ratecap, bitcap, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    <span class="k1">if</span> <span class="k2">(</span>working_format <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"We Are not a go!"</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//</span></td></tr><tr><td class="number">33</td><td>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>working_format <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"We Are a go but can't record and playback at the same time!"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>working_format <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"We Are a go!\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    </td></tr><tr><td class="number">36</td><td>    <span class="c">//Setting up the sample and the pointers</span></td></tr><tr><td class="number">37</td><td>    sample <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_sample" target="_blank"><span class="a">create_sample</span></a><span class="k2">(</span>bitcap, <span class="n">0</span>, ratecap, size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>  novo <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_sample" target="_blank"><span class="a">create_sample</span></a><span class="k2">(</span>bitcap, <span class="n">0</span>, ratecap, size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>    buf<span class="k3">=</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">char</span><span class="k3">*</span><span class="k2">)</span><span class="k2">(</span>sample-&gt;data<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>  novoc<span class="k3">=</span><span class="k2">(</span><span class="k1">unsigned</span> <span class="k1">char</span><span class="k3">*</span><span class="k2">)</span><span class="k2">(</span>novo-&gt;data<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td>    start <span class="k3">=</span> buf<span class="k2">;</span></td></tr><tr><td class="number">42</td><td>  start2 <span class="k3">=</span> novoc<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>    </td></tr><tr><td class="number">44</td><td>    <span class="c">//Let's start recording</span></td></tr><tr><td class="number">45</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Start Recording\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>    len <span class="k3">=</span> <a href="http://www.allegro.cc/manual/start_sound_input" target="_blank"><span class="a">start_sound_input</span></a><span class="k2">(</span>ratecap, <span class="n">16</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>    </td></tr><tr><td class="number">48</td><td>    <span class="c">//Find the interval to loop according to Spellcaster</span></td></tr><tr><td class="number">49</td><td>    interval <span class="k3">=</span> <span class="n">1000</span> <span class="k3">/</span> <span class="k2">(</span><span class="k2">(</span>len <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">/</span> ratecap<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    <span class="c">/* use 9/10 of the max intervall */</span></td></tr><tr><td class="number">51</td><td>    interval <span class="k3">*</span><span class="k3">=</span> <span class="n">9</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>    interval <span class="k3">/</span><span class="k3">=</span> <span class="n">10</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"length of buffer in bytes = %d, max interval = %d\n"</span>, len, interval<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    </td></tr><tr><td class="number">55</td><td>    <span class="c">//Start the looping to transfer the data into the sample...again this is taken from spellcaster</span></td></tr><tr><td class="number">56</td><td>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ofs <span class="k3">&lt;</span> size<span class="k2">)</span> </td></tr><tr><td class="number">57</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">58</td><td>        foo <span class="k3">=</span> <a href="http://www.allegro.cc/manual/read_sound_input" target="_blank"><span class="a">read_sound_input</span></a><span class="k2">(</span>buf<span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">59</td><td>        <span class="k1">if</span> <span class="k2">(</span>foo <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> </td></tr><tr><td class="number">60</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">61</td><td>            ofs <span class="k3">+</span><span class="k3">=</span> len<span class="k2">;</span></td></tr><tr><td class="number">62</td><td>            buf <span class="k3">+</span><span class="k3">=</span> len<span class="k2">;</span></td></tr><tr><td class="number">63</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">64</td><td>        <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span>interval<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">66</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> </td></tr><tr><td class="number">67</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">68</td><td>        foo <span class="k3">=</span> <a href="http://www.allegro.cc/manual/read_sound_input" target="_blank"><span class="a">read_sound_input</span></a><span class="k2">(</span>buf<span class="k2">)</span><span class="k2">;</span>        </td></tr><tr><td class="number">69</td><td>        <span class="k1">if</span> <span class="k2">(</span>foo <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> </td></tr><tr><td class="number">70</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">71</td><td>            ofs <span class="k3">+</span><span class="k3">=</span> len<span class="k2">;</span></td></tr><tr><td class="number">72</td><td>            buf <span class="k3">+</span><span class="k3">=</span> len<span class="k2">;</span></td></tr><tr><td class="number">73</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">74</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">75</td><td>    </td></tr><tr><td class="number">76</td><td>    <span class="c">//Stop the sound recording</span></td></tr><tr><td class="number">77</td><td>    <a href="http://www.allegro.cc/manual/stop_sound_input" target="_blank"><span class="a">stop_sound_input</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td>    </td></tr><tr><td class="number">79</td><td>  <span class="k1">int</span> total <span class="k3">=</span> buf-start<span class="k2">;</span></td></tr><tr><td class="number">80</td><td>    <span class="c">//lets put a pointer to the first memory location and output the contents</span></td></tr><tr><td class="number">81</td><td>    tempbuf <span class="k3">=</span> start<span class="k2">;</span></td></tr><tr><td class="number">82</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"tamanho do buf: %p\n"</span>,total<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">83</td><td>&#160;</td></tr><tr><td class="number">84</td><td>    <span class="c">//printf("in %p is %u\n", tempbuf,*tempbuf);   //changed to %p and %u from %i</span></td></tr><tr><td class="number">85</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>x <span class="k3">&lt;</span> total<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">86</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">87</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>fp,<span class="s">"%c"</span>,<span class="k3">*</span>tempbuf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">88</td><td>    tempbuf<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">89</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">90</td><td>&#160;</td></tr><tr><td class="number">91</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>x <span class="k3">&lt;</span> total<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">92</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">93</td><td>    fscanf_s<span class="k2">(</span>fp,<span class="s">"%c"</span>,novoc<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">94</td><td>    novoc<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">95</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">96</td><td>    </td></tr><tr><td class="number">97</td><td>    <span class="c">//Finally lets play it</span></td></tr><tr><td class="number">98</td><td>    <span class="c">//play_sample(novo, 255, 128, 1000,0);</span></td></tr><tr><td class="number">99</td><td>&#160;</td></tr><tr><td class="number">100</td><td>  tempbuf <span class="k3">=</span> start<span class="k2">;</span></td></tr><tr><td class="number">101</td><td>  tempbuf2 <span class="k3">=</span> start2<span class="k2">;</span></td></tr><tr><td class="number">102</td><td>&#160;</td></tr><tr><td class="number">103</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>x <span class="k3">&lt;</span> <span class="n">100</span><span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">104</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">105</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"In sample: %u   In novo: %u\n"</span>,<span class="k3">*</span>tempbuf,<span class="k3">*</span>tempbuf2<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">106</td><td>    tempbuf<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">107</td><td>    tempbuf2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">108</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">109</td><td>&#160;</td></tr><tr><td class="number">110</td><td>  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">111</td><td>  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">500</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">112</td><td>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">113</td><td>&#160;</td></tr><tr><td class="number">114</td><td>  deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">115</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">116</td><td><span class="k2">}</span></td></tr><tr><td class="number">117</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">118</td><td>&#160;</td></tr><tr><td class="number">119</td><td><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span> </td></tr><tr><td class="number">120</td><td><span class="k2">{</span></td></tr><tr><td class="number">121</td><td>  <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">122</td><td>  <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">123</td><td>  <a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a><span class="k2">(</span>DIGI_AUTODETECT,MIDI_AUTODETECT, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">124</td><td>  <a href="http://www.allegro.cc/manual/install_sound_input" target="_blank"><span class="a">install_sound_input</span></a><span class="k2">(</span>DIGI_AUTODETECT,MIDI_NONE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">125</td><td>  fopen_s<span class="k2">(</span><span class="k3">&amp;</span>fp,<span class="s">"som.txt"</span>,<span class="s">"w+"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">126</td><td><span class="k2">}</span></td></tr><tr><td class="number">127</td><td>&#160;</td></tr><tr><td class="number">128</td><td><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span> </td></tr><tr><td class="number">129</td><td><span class="k2">{</span></td></tr><tr><td class="number">130</td><td>  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">131</td><td>  <a href="http://www.allegro.cc/manual/destroy_sample" target="_blank"><span class="a">destroy_sample</span></a><span class="k2">(</span>sample<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">132</td><td>  <a href="http://www.allegro.cc/manual/destroy_sample" target="_blank"><span class="a">destroy_sample</span></a><span class="k2">(</span>novo<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">133</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">134</td><td>  <a href="http://www.allegro.cc/manual/allegro_exit" target="_blank"><span class="a">allegro_exit</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">135</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Here is the bug:</p><p>- When i write to the file, reading it does not give me the same value it was before, check it on this line when running: printf(&quot;In sample: %u   In novo: %u\n&quot;,*tempbuf,*tempbuf2);</p><p>A question:</p><p>- Why i need that interval? And how to get it? Why it need to be calculated and its not a fixed value, like 500?</p><p>Another question:</p><p>- What would you do to make this code better? What errors or bugs i did not mentioned before you found?</p><p>Thx a lot! Cya! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucas Adami)</author>
		<pubDate>Thu, 14 Jun 2007 05:58:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>fscanf_s
fopen_s
</pre></div></div><p>
These make baby jesus cry. <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> Should use
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.delorie.com/djgpp/doc/libc/libc_353.html" target="_blank">fscanf</a>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a>
</pre></div></div><p>
instead.</p><p>And you&#39;re not getting the same value because you don&#39;t <span class="source-code"><a href="http://www.delorie.com/djgpp/doc/libc/libc_663.html" target="_blank">rewind</a></span> the file the file after writing it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Thu, 14 Jun 2007 06:16:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Its because i am using visual c++ express, so there is a new function with the _s, i will try to use the rewind thx!<br />But there are more questions:</p><p>- Why i need that interval? And how to get it? Why it need to be calculated and its not a fixed value, like 500?</p><p>- How to write to file and make it a VALID .wav format?</p><p>TY!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucas Adami)</author>
		<pubDate>Thu, 14 Jun 2007 20:49:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Its because i am using visual c++ express, so there is a new function with the _s
</p></div></div><p>
VC++ has fopen and fscanf, however only newer versions of VC++ have fopen_s and fscanf_s.. no other compiler or OS does.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
- Why i need that interval? And how to get it? Why it need to be calculated and its not a fixed value, like 500?
</p></div></div><p>
It should work as a fixed value, but the interval value helps to make it so you get back when enough data is ready.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
How to write to file and make it a VALID .wav format?
</p></div></div><p>
<span class="source-code"><a href="http://www.allegro.cc/manual/save_sample" target="_blank"><span class="a">save_sample</span></a></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Fri, 15 Jun 2007 02:16:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ty but its returning an error!</p><p>At this function: if(save_sample(&quot;test.wav&quot;,sample)!=0) printf(&quot;ERROR!&quot;);</p><p>Why its returning an error? Omg what a headake!!!!!!!! <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucas Adami)</author>
		<pubDate>Fri, 15 Jun 2007 05:35:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry, it appears Allegro doesn&#39;t fully implement that yet. Here&#39;s something that should work:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">int</span> my_save_wav<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span> <span class="k3">*</span>fname, <a href="http://www.allegro.cc/manual/SAMPLE" target="_blank"><span class="a">SAMPLE</span></a> <span class="k3">*</span>spl<span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    <a href="http://www.allegro.cc/manual/PACKFILE" target="_blank"><span class="a">PACKFILE</span></a> <span class="k3">*</span>pf <span class="k3">=</span> <a href="http://www.allegro.cc/manual/pack_fopen" target="_blank"><span class="a">pack_fopen</span></a><span class="k2">(</span>fname, F_WRITE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>pf<span class="k2">)</span></td></tr><tr><td class="number">5</td><td>        <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>    <a href="http://www.allegro.cc/manual/pack_fwrite" target="_blank"><span class="a">pack_fwrite</span></a><span class="k2">(</span><span class="s">"RIFF"</span>, <span class="n">4</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    <a href="http://www.allegro.cc/manual/pack_iputl" target="_blank"><span class="a">pack_iputl</span></a><span class="k2">(</span>spl-&gt;len<span class="k3">*</span>spl-&gt;bits<span class="k3">/</span><span class="n">8</span> <span class="k3">+</span> <span class="n">36</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    <a href="http://www.allegro.cc/manual/pack_fwrite" target="_blank"><span class="a">pack_fwrite</span></a><span class="k2">(</span><span class="s">"WAVE"</span>, <span class="n">4</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>    <a href="http://www.allegro.cc/manual/pack_fwrite" target="_blank"><span class="a">pack_fwrite</span></a><span class="k2">(</span><span class="s">"fmt "</span>, <span class="n">4</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    <a href="http://www.allegro.cc/manual/pack_iputl" target="_blank"><span class="a">pack_iputl</span></a><span class="k2">(</span><span class="n">16</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>    <a href="http://www.allegro.cc/manual/pack_iputw" target="_blank"><span class="a">pack_iputw</span></a><span class="k2">(</span><span class="n">1</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <a href="http://www.allegro.cc/manual/pack_iputw" target="_blank"><span class="a">pack_iputw</span></a><span class="k2">(</span>spl-&gt;stereo?<span class="n">2</span><span class="k2">:</span><span class="n">1</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    <a href="http://www.allegro.cc/manual/pack_iputl" target="_blank"><span class="a">pack_iputl</span></a><span class="k2">(</span>spl-&gt;freq, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <a href="http://www.allegro.cc/manual/pack_iputw" target="_blank"><span class="a">pack_iputw</span></a><span class="k2">(</span>spl-&gt;bits<span class="k3">*</span><span class="k2">(</span>spl-&gt;stereo?<span class="n">2</span><span class="k2">:</span><span class="n">1</span><span class="k2">)</span><span class="k3">/</span><span class="n">8</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    <a href="http://www.allegro.cc/manual/pack_iputl" target="_blank"><span class="a">pack_iputl</span></a><span class="k2">(</span>spl-&gt;bits<span class="k3">*</span><span class="k2">(</span>spl-&gt;stereo?<span class="n">2</span><span class="k2">:</span><span class="n">1</span><span class="k2">)</span><span class="k3">/</span><span class="n">8</span><span class="k3">*</span>spl-&gt;freq, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    <a href="http://www.allegro.cc/manual/pack_iputw" target="_blank"><span class="a">pack_iputw</span></a><span class="k2">(</span><span class="n">16</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td>&#160;</td></tr><tr><td class="number">23</td><td>    <a href="http://www.allegro.cc/manual/pack_fwrite" target="_blank"><span class="a">pack_fwrite</span></a><span class="k2">(</span><span class="s">"data"</span>, <span class="n">4</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    <a href="http://www.allegro.cc/manual/pack_iputl" target="_blank"><span class="a">pack_iputl</span></a><span class="k2">(</span>spl-&gt;len<span class="k3">*</span>spl-&gt;bits<span class="k3">/</span><span class="n">8</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>    <a href="http://www.allegro.cc/manual/pack_fwrite" target="_blank"><span class="a">pack_fwrite</span></a><span class="k2">(</span>spl-&gt;data, spl-&gt;len<span class="k3">*</span>spl-&gt;bits<span class="k3">/</span><span class="n">8</span>, pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td>    <a href="http://www.allegro.cc/manual/pack_fclose" target="_blank"><span class="a">pack_fclose</span></a><span class="k2">(</span>pf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Note that I haven&#39;t tested it or even tried to compile it, but hopefully will work with few changes needed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Fri, 15 Jun 2007 06:26:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, it didnt worked fine, so i wrote everything in a text file, then i read it and put in a sample <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />, but the file its getting too big! How i could minimize that?</p><p>Code: <br />To write:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>fp,<span class="s">"%d %d %d\n"</span>,bitcap,ratecap,size<span class="k2">)</span><span class="k2">;</span>

<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>x <span class="k3">&lt;</span> total<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="k2">{</span>
  <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>fp,<span class="s">"%u "</span>,<span class="k3">*</span>tempbuf<span class="k2">)</span><span class="k2">;</span>
  tempbuf<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

To read:</p><div class="source-code snippet"><div class="inner"><pre>fscanf_s<span class="k2">(</span>fp,<span class="s">"%d %d %d"</span>,<span class="k3">&amp;</span>bitcap,<span class="k3">&amp;</span>ratecap,<span class="k3">&amp;</span>size<span class="k2">)</span><span class="k2">;</span>

sample <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_sample" target="_blank"><span class="a">create_sample</span></a><span class="k2">(</span>bitcap, <span class="n">0</span>, ratecap, size<span class="k2">)</span><span class="k2">;</span>

<span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_313.html" target="_blank">feof</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">)</span>
<span class="k2">{</span>
  fscanf_s<span class="k2">(</span>fp,<span class="s">"%u "</span>,buf<span class="k2">)</span><span class="k2">;</span>
  buf<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

In a simple 5 seconds of recording the file gets around 1.5 MB :S</p><p>Ty for attention, hope you can help me in this problem! Cya!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucas Adami)</author>
		<pubDate>Fri, 15 Jun 2007 20:51:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Well, it didnt worked fine
</p></div></div><p>
What was the problem with it?</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
, so i wrote everything in a text file, then i read it and put in a sample <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />, but the file its getting too big! How i could minimize that?
</p></div></div><p>
You&#39;re converting them to ascii numbers. Leave them as normal pcm data:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>fp,<span class="s">"MYHEADER %d %d %d\n"</span>,bitcap,ratecap,size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>x <span class="k3">&lt;</span> total<span class="k2">;</span>x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_347.html" target="_blank">fputc</a><span class="k2">(</span>fp,<span class="k3">*</span>tempbuf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>        tempbuf<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td><span class="k2">}</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="c">// To read:</span></td></tr><tr><td class="number">10</td><td><span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_353.html" target="_blank">fscanf</a><span class="k2">(</span>fp,<span class="s">"MYHEADER %d %d %d"</span>,<span class="k3">&amp;</span>bitcap,<span class="k3">&amp;</span>ratecap,<span class="k3">&amp;</span>size<span class="k2">)</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error!\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td><span class="k2">}</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>sample <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_sample" target="_blank"><span class="a">create_sample</span></a><span class="k2">(</span>bitcap, <span class="n">0</span>, ratecap, size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_313.html" target="_blank">feof</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td><span class="k2">{</span></td></tr><tr><td class="number">20</td><td>        <span class="k3">*</span>buf <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_317.html" target="_blank">fgetc</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>        buf<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Note that this will create files that only your program read. Nothing else will be able to load it. Also not that it will still cause somewhat large files since it&#39;s uncompressed data.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Fri, 15 Jun 2007 21:40:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello again!<br />By your way of making an wav file, when you load it the sound quality decreases 10x!<br />And by my way, puting then into a text file as chars, when i read it it dont work!</p><p>Omg! Can you help me with that? Ty!</p><p>EDITED----------------</p><p>By my way writing in charr worked now, after debugging a lot i found that some chars where considered &#39;\n&#39; or something like that! So i used now binary files and it worked fine! The file is now about 200kb for 5 sec! It reduced a lot <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>How to compress data? Ty!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucas Adami)</author>
		<pubDate>Sun, 17 Jun 2007 01:01:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
By your way of making an wav file, when you load it the sound quality decreases 10x!
</p></div></div><p>
Hmm, woops. That one part should be...
</p><div class="source-code snippet"><div class="inner"><pre>    <a href="http://www.allegro.cc/manual/pack_iputw" target="_blank"><span class="a">pack_iputw</span></a><span class="k2">(</span>spl-&gt;bits<span class="k3">*</span><span class="k2">(</span>spl-&gt;stereo?<span class="n">2</span><span class="k2">:</span><span class="n">1</span><span class="k2">)</span><span class="k3">/</span><span class="n">8</span>, pf<span class="k2">)</span><span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/pack_iputl" target="_blank"><span class="a">pack_iputl</span></a><span class="k2">(</span>spl-&gt;bits<span class="k3">*</span><span class="k2">(</span>spl-&gt;stereo?<span class="n">2</span><span class="k2">:</span><span class="n">1</span><span class="k2">)</span><span class="k3">/</span><span class="n">8</span><span class="k3">*</span>spl-&gt;freq, pf<span class="k2">)</span><span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/pack_iputw" target="_blank"><span class="a">pack_iputw</span></a><span class="k2">(</span>spl-&gt;bits, pf<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
(change that one &#39;16&#39; to &#39;spl-&gt;bits&#39;).
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
How to compress data? Ty!
</p></div></div><p>
Use something like <a href="http://www.rarewares.org/ogg-oggdropxpd.php">oggdropXPd</a> to compress it as an Ogg, then use AlOgg or APEG to play it in Allegro.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 17 Jun 2007 02:13:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ty a lot, but i have some strange ting, not a problem, i get the sound save it in the file, when i play it there is something strange in the end of it, the sound make a &#39;stop recording&#39; sound, then pass more 3 sec and then another &#39;stop recording&#39; sound!</p><p>Very strange, do you see (or hear ;p) something strange?</p><p>Ty!Cya!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucas Adami)</author>
		<pubDate>Sun, 17 Jun 2007 03:53:49 +0000</pubDate>
	</item>
</rss>
