Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.18 KB | None | 0 0
  1. use DesktopAudio version 1.0
  2.  
  3. import Generators
  4.  
  5.  
  6. module Test {
  7. ports: [
  8. mainOutputPort OutputPort {
  9. block: Output
  10. }
  11. mainInputPort InputPort {
  12. block: Input
  13. }
  14. propertyInputPort TestPort {
  15. name: "test"
  16. block: TestBlock
  17. }
  18. ]
  19. streams: [
  20. Input * TestBlock >> Output;
  21. ]
  22. }
  23.  
  24. signal Half {default: 0.5}
  25. signal Quarter {default: 0.25}
  26.  
  27. AudioIn[1] >> Test(test: Half) >> AudioOut[1];
  28. AudioIn[2] >> Test(test: Quarter) >> AudioOut[2];
  29.  
  30.  
  31.  
  32. ===========================================================
  33.  
  34.  
  35.  
  36. #include "RtAudio.h"
  37. #include <iostream>
  38. #include <cstdlib>
  39. #include <cstring>
  40.  
  41.  
  42. //[[Includes]]
  43. //[[/Includes]]
  44.  
  45.  
  46. //[[Declarations]]
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57. class Test {
  58. public:
  59. float TestBlock;
  60. float Output;
  61. float Input;
  62.  
  63. Test() {
  64. TestBlock = 0;
  65. Output = 0;
  66. Input = 0;
  67.  
  68. }
  69. void process__TestPortDomain(float TestBlock, float &_BridgeSig_1) {
  70. // Starting stream 01 -------------------------
  71. //#line 20 "/home/andres/Documents/src/Stride/Stride/strideroot/frameworks/RtAudio/1.0/_tests/module/04a_port_signal.stride"
  72. _BridgeSig_1 = TestBlock;
  73. // Stream End 01
  74. }
  75. void process__OutputDomain_0(float _BridgeSig_0_Input, float _BridgeSig_1, float &Output) {
  76. // Starting stream 02 -------------------------
  77. Output = (_BridgeSig_0_Input * _BridgeSig_1);
  78. // Stream End 02
  79. }
  80. void process__InputDomain_0(float Input, float &_BridgeSig_0_Input) {
  81. // Starting stream 00 -------------------------
  82. //#line 20 "/home/andres/Documents/src/Stride/Stride/strideroot/frameworks/RtAudio/1.0/_tests/module/04a_port_signal.stride"
  83. _BridgeSig_0_Input = Input;
  84. // Stream End 00
  85. }
  86.  
  87. };
  88. float Half;
  89. float _BridgeSig_2_Half;
  90. float AudioIn[2];
  91. float _Test_026_out;
  92. Test Test_026;
  93. float AudioOut[2];
  94. float Quarter;
  95. float _BridgeSig_3_Quarter;
  96. float _Test_069_out;
  97. Test Test_069;
  98. float Test_026_Output;
  99. float Test_069_Output;
  100. float Test_026_Input;
  101. float Test_026__BridgeSig_0_Input;
  102. float Test_069_Input;
  103. float Test_069__BridgeSig_0_Input;
  104. float Test_026_TestBlock;
  105. float Test_026__BridgeSig_1;
  106. float Test_069_TestBlock;
  107. float Test_069__BridgeSig_1;
  108. #include <RtAudio.h>
  109. #define NUM_IN_CHANNELS 2
  110. #define NUM_OUT_CHANNELS 2
  111. typedef float MY_TYPE;
  112. #define FORMAT RTAUDIO_FLOAT32
  113. //[[/Declarations]]
  114.  
  115. //[[Instances]]
  116. //[[/Instances]]
  117.  
  118.  
  119. //[[Processing]]
  120.  
  121. int audio_buffer_process( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
  122. double streamTime, RtAudioStreamStatus status, void *data )
  123. {
  124. if ( status ) std::cout << "Stream over/underflow detected." << std::endl;
  125. //unsigned long *bytes = (unsigned long *) data;
  126. MY_TYPE *in = (MY_TYPE *)inputBuffer;
  127. MY_TYPE *out = (MY_TYPE *)outputBuffer;
  128. while(nBufferFrames-- > 0) {
  129. // Starting stream 00 -------------------------
  130. //#line 27 "/home/andres/Documents/src/Stride/Stride/strideroot/frameworks/RtAudio/1.0/_tests/module/04a_port_signal.stride"
  131. _BridgeSig_2_Half = Half;
  132. // Stream End 00
  133. // Starting stream 01 -------------------------
  134. //#line 27 "/home/andres/Documents/src/Stride/Stride/strideroot/frameworks/RtAudio/1.0/_tests/module/04a_port_signal.stride"
  135. AudioIn[0] = in[0];
  136. Test_026.process__InputDomain_0(AudioIn[0], Test_026__BridgeSig_0_Input);
  137. Test_026.process__TestPortDomain(_BridgeSig_2_Half, Test_026__BridgeSig_1);
  138. Test_026.process__OutputDomain_0(Test_026__BridgeSig_0_Input, Test_026__BridgeSig_1, _Test_026_out);
  139. out[0] = _Test_026_out;;
  140. // Stream End 01
  141. // Starting stream 02 -------------------------
  142. //#line 28 "/home/andres/Documents/src/Stride/Stride/strideroot/frameworks/RtAudio/1.0/_tests/module/04a_port_signal.stride"
  143. _BridgeSig_3_Quarter = Quarter;
  144. // Stream End 02
  145. // Starting stream 03 -------------------------
  146. //#line 28 "/home/andres/Documents/src/Stride/Stride/strideroot/frameworks/RtAudio/1.0/_tests/module/04a_port_signal.stride"
  147. AudioIn[1] = in[1];
  148. Test_069.process__InputDomain_0(AudioIn[1], Test_069__BridgeSig_0_Input);
  149. Test_069.process__TestPortDomain(_BridgeSig_3_Quarter, Test_069__BridgeSig_1);
  150. Test_069.process__OutputDomain_0(Test_069__BridgeSig_0_Input, Test_069__BridgeSig_1, _Test_069_out);
  151. out[1] = _Test_069_out;;
  152. // Stream End 03
  153. in += NUM_IN_CHANNELS;
  154. out += NUM_OUT_CHANNELS;
  155. }
  156. return 0;
  157. }
  158. //[[/Processing]]
  159.  
  160. //[[OSC:Processing]]
  161. //[[/OSC:Processing]]
  162. //[[SerialIn:Processing]]
  163. //[[/SerialIn:Processing]]
  164. //[[SerialOut:Processing]]
  165. //[[/SerialOut:Processing]]
  166.  
  167.  
  168. int main() {
  169. //[[Initialization]]
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176. Half = 0.5;
  177. _BridgeSig_2_Half = 0.5;
  178. AudioIn[0] = 0.0;
  179. AudioIn[1] = 0.0;
  180. AudioOut[0] = 0.0;
  181. AudioOut[1] = 0.0;
  182. Quarter = 0.25;
  183. _BridgeSig_3_Quarter = 0.25;
  184. Test_026_Output = 0;
  185. Test_069_Output = 0;
  186. Test_026_Input = 0;
  187. Test_026__BridgeSig_0_Input = 0;
  188. Test_069_Input = 0;
  189. Test_069__BridgeSig_0_Input = 0;
  190. Test_026_TestBlock = 0;
  191. Test_026__BridgeSig_1 = 0;
  192. Test_069_TestBlock = 0;
  193. Test_069__BridgeSig_1 = 0;
  194.  
  195. RtAudio adac;
  196. if ( adac.getDeviceCount() < 1 ) {
  197. std::cout << std::endl << "No audio devices found!" << std::endl;
  198. exit( -1 );
  199. }
  200. // Set the same number of channels for both input and output.
  201. unsigned int bufferBytes;
  202. unsigned int bufferFrames = 512;
  203. int iDevice = 0;
  204. int oDevice = 0;
  205. unsigned int fs = 44100;
  206.  
  207.  
  208. RtAudio::StreamOptions options;
  209. //options.flags |= RTAUDIO_NONINTERLEAVED;
  210.  
  211. RtAudio::StreamParameters iParams, oParams;
  212. iParams.deviceId = 0; // first available device
  213. iParams.nChannels = 2;
  214. oParams.deviceId = 0; // first available device
  215. oParams.nChannels = 2;
  216.  
  217. bufferBytes = bufferFrames * NUM_OUT_CHANNELS * sizeof( MY_TYPE );
  218.  
  219. if ( iDevice == 0 )
  220. iParams.deviceId = adac.getDefaultInputDevice();
  221. if ( oDevice == 0 )
  222. oParams.deviceId = adac.getDefaultOutputDevice();
  223. try {
  224. adac.openStream( &oParams, &iParams, FORMAT, fs, &bufferFrames, &audio_buffer_process, (void *)&bufferBytes, &options);
  225. }
  226. catch ( RtAudioError& e ) {
  227. e.printMessage();
  228. exit( -1 );
  229. }
  230. RtAudio::DeviceInfo info = adac.getDeviceInfo(0);
  231. std::cout << "Device = " << 0 << std::endl;
  232. std::cout << "Name = " << info.name << std::endl;
  233. std::cout << ": maximum output channels = " << info.outputChannels << std::endl;
  234. try {
  235. adac.startStream();
  236. }
  237. catch ( RtAudioError& e ) {
  238. e.printMessage();
  239. if ( adac.isStreamOpen() ) adac.closeStream();
  240. exit (-1);
  241. }
  242. char input;
  243. std::cout << "\nRunning ... press <enter> to quit.\n";
  244. std::cin.get(input);
  245.  
  246. //[[/Initialization]]
  247.  
  248. // char input;
  249. // std::cout << "\nRunning ... press <enter> to quit.\n";
  250. // std::cin.get(input);
  251.  
  252. //[[Cleanup]]
  253.  
  254. // Stop the stream.
  255. try {
  256. if ( adac.isStreamRunning() ) adac.stopStream();
  257. if ( adac.isStreamOpen() ) adac.closeStream();
  258. }
  259. catch ( RtAudioError& e ) {
  260. e.printMessage();
  261. }
  262.  
  263. //[[/Cleanup]]
  264.  
  265.  
  266. return 0;
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement