| | 591 | <p> |
| | 592 | The above status report needs to be taken in the context of the V18 release, the features it implemented (and didn't implement), and the quality and consistency of its implementations. For example many features listed above were not part of the V18 API, some were not consistently implemented accross all platforms, and some of the bug-like items were also present in V18. So the overall conclusion is that V19 is in pretty good shape. Aside from the total lack of support on the Mac at this stage, the V19 API is moderately functional on all other platforms, in many cases to a level that matches or surpasses V18. |
| | 593 | </p> |
| | 594 | |
| | 595 | <H3>Tests</H3> |
| | 596 | |
| | 597 | <p> |
| | 598 | The following table indicates the status of running each test in /pa_tests with each Host API. <span class="not_done">Red</span> means a test fails, <span class="done">green</span> means the test passes and <span class="unknown">yellow</span> means the test result is unknown (perhaps you'd like to run the test and report the result for us). |
| | 599 | </p> |
| | 600 | |
| | 601 | <p> |
| | 602 | Note that these tests don't yet cover every feature of the V19 API. All of the tests from the V18 PortAudio release are listed below, which should give some indication of the degree to which V19-devel currently implements the V18 feature set. |
| | 603 | </p> |
| | 604 | |
| | 605 | <table border="1"> |
| | 606 | |
| | 607 | <tr><td><b>Test</b></td> |
| | 608 | <td>Description</td> |
| | 609 | <td>wmme</td> |
| | 610 | <td>ds</td> |
| | 611 | <td>asio</td> |
| | 612 | <td>alsa</td> |
| | 613 | <td>jack</td> |
| | 614 | <td>oss</td> |
| | 615 | <td>mac_sm</td> |
| | 616 | <td>mac_core</td> |
| | 617 | <td>sgi</td> |
| | 618 | </tr> |
| | 619 | |
| | 620 | <tr><td>paqa_devs.c</td><td> Self Testing Quality Assurance app for PortAudio Try to open each device and run through all the possible configurations</td> |
| | 621 | <td class="unknown">wmme</td> |
| | 622 | <td class="unknown">ds</td> |
| | 623 | <td class="unknown">asio</td> |
| | 624 | <td class="unknown">alsa</td> |
| | 625 | <td class="unknown">jack</td> |
| | 626 | <td class="unknown">oss</td> |
| | 627 | <td class="unknown">mac_sm</td> |
| | 628 | <td class="unknown">mac_core</td> |
| | 629 | <td class="done">sgi</td> |
| | 630 | </tr> |
| | 631 | |
| | 632 | <tr><td>paqa_errs.c</td><td> Self Testing Quality Assurance app for PortAudio Do lots of bad things to test error reporting </td> |
| | 633 | <td class="unknown">wmme</td> |
| | 634 | <td class="unknown">ds</td> |
| | 635 | <td class="unknown">asio</td> |
| | 636 | <td class="unknown">alsa</td> |
| | 637 | <td class="unknown">jack</td> |
| | 638 | <td class="unknown">oss</td> |
| | 639 | <td class="unknown">mac_sm</td> |
| | 640 | <td class="unknown">mac_core</td> |
| | 641 | <td class="unknown">sgi</td> |
| | 642 | </tr> |
| | 643 | |
| | 644 | <tr><td>patest1.c</td><td> Ring modulate the audio input with a sine wave for 20 seconds</td> |
| | 645 | <td class="unknown">wmme</td> |
| | 646 | <td class="unknown">ds</td> |
| | 647 | <td class="unknown">asio</td> |
| | 648 | <td class="unknown">alsa</td> |
| | 649 | <td class="unknown">jack</td> |
| | 650 | <td class="unknown">oss</td> |
| | 651 | <td class="unknown">mac_sm</td> |
| | 652 | <td class="unknown">mac_core</td> |
| | 653 | <td class="done">sgi</td> |
| | 654 | </tr> |
| | 655 | |
| | 656 | <tr><td>patest_buffer.c</td><td> Test opening streams with different buffer sizes </td> |
| | 657 | <td class="unknown">wmme</td> |
| | 658 | <td class="unknown">ds</td> |
| | 659 | <td class="unknown">asio</td> |
| | 660 | <td class="unknown">alsa</td> |
| | 661 | <td class="unknown">jack</td> |
| | 662 | <td class="unknown">oss</td> |
| | 663 | <td class="unknown">mac_sm</td> |
| | 664 | <td class="unknown">mac_core</td> |
| | 665 | <td class="done">sgi</td> |
| | 666 | </tr> |
| | 667 | |
| | 668 | <tr><td>patest_callbackstop.c</td><td> Test the paComplete callback result code </td> |
| | 669 | <td class="unknown">wmme</td> |
| | 670 | <td class="unknown">ds</td> |
| | 671 | <td class="unknown">asio</td> |
| | 672 | <td class="unknown">alsa</td> |
| | 673 | <td class="unknown">jack</td> |
| | 674 | <td class="unknown">oss</td> |
| | 675 | <td class="unknown">mac_sm</td> |
| | 676 | <td class="unknown">mac_core</td> |
| | 677 | <td class="done">sgi</td> |
| | 678 | </tr> |
| | 679 | |
| | 680 | <tr><td>patest_clip.c</td><td> Play a sine wave for several seconds at an amplitude that would require clipping </td> |
| | 681 | <td class="unknown">wmme</td> |
| | 682 | <td class="unknown">ds</td> |
| | 683 | <td class="unknown">asio</td> |
| | 684 | <td class="unknown">alsa</td> |
| | 685 | <td class="unknown">jack</td> |
| | 686 | <td class="unknown">oss</td> |
| | 687 | <td class="unknown">mac_sm</td> |
| | 688 | <td class="unknown">mac_core</td> |
| | 689 | <td class="done">sgi</td> |
| | 690 | </tr> |
| | 691 | |
| | 692 | <tr><td>patest_dither.c</td><td> Attempt to hear difference between dithered and non-dithered signal</td> |
| | 693 | <td class="unknown">wmme</td> |
| | 694 | <td class="unknown">ds</td> |
| | 695 | <td class="unknown">asio</td> |
| | 696 | <td class="unknown">alsa</td> |
| | 697 | <td class="unknown">jack</td> |
| | 698 | <td class="unknown">oss</td> |
| | 699 | <td class="unknown">mac_sm</td> |
| | 700 | <td class="unknown">mac_core</td> |
| | 701 | <td class="done">sgi</td> |
| | 702 | </tr> |
| | 703 | |
| | 704 | <tr><td>patest_hang.c</td><td> Play a sine then hang audio callback to test watchdog </td> |
| | 705 | <td class="unknown">wmme</td> |
| | 706 | <td class="unknown">ds</td> |
| | 707 | <td class="unknown">asio</td> |
| | 708 | <td class="unknown">alsa</td> |
| | 709 | <td class="unknown">jack</td> |
| | 710 | <td class="unknown">oss</td> |
| | 711 | <td class="unknown">mac_sm</td> |
| | 712 | <td class="unknown">mac_core</td> |
| | 713 | <td class="done">sgi</td> |
| | 714 | </tr> |
| | 715 | |
| | 716 | <tr><td>patest_latency.c</td><td> Hear the latency caused by big buffers. Play a sine wave and change frequency based on letter input </td> |
| | 717 | <td class="unknown">wmme</td> |
| | 718 | <td class="unknown">ds</td> |
| | 719 | <td class="unknown">asio</td> |
| | 720 | <td class="unknown">alsa</td> |
| | 721 | <td class="unknown">jack</td> |
| | 722 | <td class="unknown">oss</td> |
| | 723 | <td class="unknown">mac_sm</td> |
| | 724 | <td class="unknown">mac_core</td> |
| | 725 | <td class="done">sgi</td> |
| | 726 | </tr> |
| | 727 | |
| | 728 | <tr><td>patest_leftright.c</td><td> Play different tone sine waves that alternate between left and right channel </td> |
| | 729 | <td class="unknown">wmme</td> |
| | 730 | <td class="unknown">ds</td> |
| | 731 | <td class="unknown">asio</td> |
| | 732 | <td class="unknown">alsa</td> |
| | 733 | <td class="unknown">jack</td> |
| | 734 | <td class="unknown">oss</td> |
| | 735 | <td class="unknown">mac_sm</td> |
| | 736 | <td class="unknown">mac_core</td> |
| | 737 | <td class="done">sgi</td> |
| | 738 | </tr> |
| | 739 | |
| | 740 | <tr><td>patest_longsine.c</td><td> Play a sine wave until ENTER hit </td> |
| | 741 | <td class="unknown">wmme</td> |
| | 742 | <td class="unknown">ds</td> |
| | 743 | <td class="unknown">asio</td> |
| | 744 | <td class="unknown">alsa</td> |
| | 745 | <td class="unknown">jack</td> |
| | 746 | <td class="unknown">oss</td> |
| | 747 | <td class="unknown">mac_sm</td> |
| | 748 | <td class="unknown">mac_core</td> |
| | 749 | <td class="done">sgi</td> |
| | 750 | </tr> |
| | 751 | |
| | 752 | <tr><td>patest_many.c</td><td> Start and stop the PortAudio Driver multiple times </td> |
| | 753 | <td class="unknown">wmme</td> |
| | 754 | <td class="unknown">ds</td> |
| | 755 | <td class="unknown">asio</td> |
| | 756 | <td class="unknown">alsa</td> |
| | 757 | <td class="unknown">jack</td> |
| | 758 | <td class="unknown">oss</td> |
| | 759 | <td class="unknown">mac_sm</td> |
| | 760 | <td class="unknown">mac_core</td> |
| | 761 | <td class="done">sgi</td> |
| | 762 | </tr> |
| | 763 | |
| | 764 | <tr><td>patest_maxsines.c</td><td> How many sine waves can we calculate and play in less than 80% CPU Load </td> |
| | 765 | <td class="unknown">wmme</td> |
| | 766 | <td class="unknown">ds</td> |
| | 767 | <td class="unknown">asio</td> |
| | 768 | <td class="unknown">alsa</td> |
| | 769 | <td class="unknown">jack</td> |
| | 770 | <td class="unknown">oss</td> |
| | 771 | <td class="unknown">mac_sm</td> |
| | 772 | <td class="unknown">mac_core</td> |
| | 773 | <td class="done">sgi</td> |
| | 774 | </tr> |
| | 775 | |
| | 776 | <tr><td>patest_multi_sine.c</td><td> Play a different sine wave on each channel </td> |
| | 777 | <td class="unknown">wmme</td> |
| | 778 | <td class="unknown">ds</td> |
| | 779 | <td class="unknown">asio</td> |
| | 780 | <td class="unknown">alsa</td> |
| | 781 | <td class="unknown">jack</td> |
| | 782 | <td class="unknown">oss</td> |
| | 783 | <td class="unknown">mac_sm</td> |
| | 784 | <td class="unknown">mac_core</td> |
| | 785 | <td class="done">sgi</td> |
| | 786 | </tr> |
| | 787 | |
| | 788 | <tr><td>patest_pink.c</td><td> Generate Pink Noise using Gardner method </td> |
| | 789 | <td class="unknown">wmme</td> |
| | 790 | <td class="unknown">ds</td> |
| | 791 | <td class="unknown">asio</td> |
| | 792 | <td class="unknown">alsa</td> |
| | 793 | <td class="unknown">jack</td> |
| | 794 | <td class="unknown">oss</td> |
| | 795 | <td class="unknown">mac_sm</td> |
| | 796 | <td class="unknown">mac_core</td> |
| | 797 | <td class="done">sgi</td> |
| | 798 | </tr> |
| | 799 | |
| | 800 | <tr><td>patest_prime.c</td><td> Test stream priming mode </td> |
| | 801 | <td class="unknown">wmme</td> |
| | 802 | <td class="unknown">ds</td> |
| | 803 | <td class="unknown">asio</td> |
| | 804 | <td class="unknown">alsa</td> |
| | 805 | <td class="unknown">jack</td> |
| | 806 | <td class="unknown">oss</td> |
| | 807 | <td class="unknown">mac_sm</td> |
| | 808 | <td class="unknown">mac_core</td> |
| | 809 | <td class="done">sgi</td> |
| | 810 | </tr> |
| | 811 | |
| | 812 | <tr><td> |
| | 813 | patest_read_record.c</td><td> Record input into an array; Save array to a file; Playback recorded data. Implemented using the blocking API (Pa_ReadStream(), Pa_WriteStream() ) </td> |
| | 814 | <td class="unknown">wmme</td> |
| | 815 | <td class="unknown">ds</td> |
| | 816 | <td class="unknown">asio</td> |
| | 817 | <td class="unknown">alsa</td> |
| | 818 | <td class="unknown">jack</td> |
| | 819 | <td class="unknown">oss</td> |
| | 820 | <td class="unknown">mac_sm</td> |
| | 821 | <td class="unknown">mac_core</td> |
| | 822 | <td class="done">sgi</td> |
| | 823 | </tr> |
| | 824 | |
| | 825 | <tr><td>patest_record.c</td><td> Record input into an array; Save array to a file; Playback recorded data </td> |
| | 826 | <td class="unknown">wmme</td> |
| | 827 | <td class="unknown">ds</td> |
| | 828 | <td class="unknown">asio</td> |
| | 829 | <td class="unknown">alsa</td> |
| | 830 | <td class="unknown">jack</td> |
| | 831 | <td class="unknown">oss</td> |
| | 832 | <td class="unknown">mac_sm</td> |
| | 833 | <td class="unknown">mac_core</td> |
| | 834 | <td class="done">sgi</td> |
| | 835 | </tr> |
| | 836 | |
| | 837 | <tr><td>patest_ringmix.c</td><td> Ring modulate inputs to left output, mix inputs to right output </td> |
| | 838 | <td class="unknown">wmme</td> |
| | 839 | <td class="unknown">ds</td> |
| | 840 | <td class="unknown">asio</td> |
| | 841 | <td class="unknown">alsa</td> |
| | 842 | <td class="unknown">jack</td> |
| | 843 | <td class="unknown">oss</td> |
| | 844 | <td class="unknown">mac_sm</td> |
| | 845 | <td class="unknown">mac_core</td> |
| | 846 | <td class="done">sgi</td> |
| | 847 | </tr> |
| | 848 | |
| | 849 | <tr><td>patest_saw.c</td><td> Play a simple (aliasing) sawtooth wave </td> |
| | 850 | <td class="unknown">wmme</td> |
| | 851 | <td class="unknown">ds</td> |
| | 852 | <td class="unknown">asio</td> |
| | 853 | <td class="unknown">alsa</td> |
| | 854 | <td class="unknown">jack</td> |
| | 855 | <td class="unknown">oss</td> |
| | 856 | <td class="unknown">mac_sm</td> |
| | 857 | <td class="unknown">mac_core</td> |
| | 858 | <td class="done">sgi</td> |
| | 859 | </tr> |
| | 860 | |
| | 861 | <tr><td>patest_sine.c</td><td> Play a sine wave for several seconds </td> |
| | 862 | <td class="unknown">wmme</td> |
| | 863 | <td class="unknown">ds</td> |
| | 864 | <td class="unknown">asio</td> |
| | 865 | <td class="unknown">alsa</td> |
| | 866 | <td class="unknown">jack</td> |
| | 867 | <td class="unknown">oss</td> |
| | 868 | <td class="unknown">mac_sm</td> |
| | 869 | <td class="unknown">mac_core</td> |
| | 870 | <td class="done">sgi</td> |
| | 871 | </tr> |
| | 872 | |
| | 873 | <tr><td>patest_sine8.c</td><td> Test 8 bit data: play a sine wave for several seconds</td> |
| | 874 | <td class="unknown">wmme</td> |
| | 875 | <td class="unknown">ds</td> |
| | 876 | <td class="unknown">asio</td> |
| | 877 | <td class="unknown">alsa</td> |
| | 878 | <td class="unknown">jack</td> |
| | 879 | <td class="unknown">oss</td> |
| | 880 | <td class="unknown">mac_sm</td> |
| | 881 | <td class="unknown">mac_core</td> |
| | 882 | <td class="done">sgi</td> |
| | 883 | </tr> |
| | 884 | |
| | 885 | <tr><td>patest_sine_formats.c</td><td> Play a sine wave for several seconds. Test various data formats </td> |
| | 886 | <td class="unknown">wmme</td> |
| | 887 | <td class="unknown">ds</td> |
| | 888 | <td class="unknown">asio</td> |
| | 889 | <td class="unknown">alsa</td> |
| | 890 | <td class="unknown">jack</td> |
| | 891 | <td class="unknown">oss</td> |
| | 892 | <td class="unknown">mac_sm</td> |
| | 893 | <td class="unknown">mac_core</td> |
| | 894 | <td class="done">sgi</td> |
| | 895 | </tr> |
| | 896 | |
| | 897 | <tr><td>patest_sine_time.c</td><td> Play a sine wave for several seconds, pausing in the middle. Uses the Pa_GetStreamTime() call </td> |
| | 898 | <td class="unknown">wmme</td> |
| | 899 | <td class="unknown">ds</td> |
| | 900 | <td class="unknown">asio</td> |
| | 901 | <td class="unknown">alsa</td> |
| | 902 | <td class="unknown">jack</td> |
| | 903 | <td class="unknown">oss</td> |
| | 904 | <td class="unknown">mac_sm</td> |
| | 905 | <td class="unknown">mac_core</td> |
| | 906 | <td class="done">sgi</td> |
| | 907 | </tr> |
| | 908 | |
| | 909 | <tr><td>patest_start_stop.c</td><td> Play a sine wave for several seconds start and stop the stream multiple times</td> |
| | 910 | <td class="unknown">wmme</td> |
| | 911 | <td class="unknown">ds</td> |
| | 912 | <td class="unknown">asio</td> |
| | 913 | <td class="unknown">alsa</td> |
| | 914 | <td class="unknown">jack</td> |
| | 915 | <td class="unknown">oss</td> |
| | 916 | <td class="unknown">mac_sm</td> |
| | 917 | <td class="unknown">mac_core</td> |
| | 918 | <td class="done">sgi</td> |
| | 919 | </tr> |
| | 920 | |
| | 921 | <tr><td>patest_stop.c</td><td> Test different ways of stopping audio </td> |
| | 922 | <td class="unknown">wmme</td> |
| | 923 | <td class="unknown">ds</td> |
| | 924 | <td class="unknown">asio</td> |
| | 925 | <td class="unknown">alsa</td> |
| | 926 | <td class="unknown">jack</td> |
| | 927 | <td class="unknown">oss</td> |
| | 928 | <td class="unknown">mac_sm</td> |
| | 929 | <td class="unknown">mac_core</td> |
| | 930 | <td class="done">sgi</td> |
| | 931 | </tr> |
| | 932 | |
| | 933 | <tr><td>patest_sync.c</td><td> Test time stamping and synchronization of audio and video </td> |
| | 934 | <td class="unknown">wmme</td> |
| | 935 | <td class="unknown">ds</td> |
| | 936 | <td class="unknown">asio</td> |
| | 937 | <td class="unknown">alsa</td> |
| | 938 | <td class="unknown">jack</td> |
| | 939 | <td class="unknown">oss</td> |
| | 940 | <td class="unknown">mac_sm</td> |
| | 941 | <td class="unknown">mac_core</td> |
| | 942 | <td class="done">sgi</td> |
| | 943 | </tr> |
| | 944 | |
| | 945 | <tr><td>patest_toomanysines.c</td><td> Play more sine waves than we can handle in real time as a stress test </td> |
| | 946 | <td class="unknown">wmme</td> |
| | 947 | <td class="unknown">ds</td> |
| | 948 | <td class="unknown">asio</td> |
| | 949 | <td class="unknown">alsa</td> |
| | 950 | <td class="unknown">jack</td> |
| | 951 | <td class="unknown">oss</td> |
| | 952 | <td class="unknown">mac_sm</td> |
| | 953 | <td class="unknown">mac_core</td> |
| | 954 | <td class="done">sgi</td> |
| | 955 | </tr> |
| | 956 | |
| | 957 | <tr><td>patest_underflow.c</td><td> Simulate an output buffer underflow condition. Tests whether the stream can be stopped when underflowing buffers</td> |
| | 958 | <td class="unknown">wmme</td> |
| | 959 | <td class="unknown">ds</td> |
| | 960 | <td class="unknown">asio</td> |
| | 961 | <td class="unknown">alsa</td> |
| | 962 | <td class="unknown">jack</td> |
| | 963 | <td class="unknown">oss</td> |
| | 964 | <td class="unknown">mac_sm</td> |
| | 965 | <td class="unknown">mac_core</td> |
| | 966 | <td class="done">sgi</td> |
| | 967 | </tr> |
| | 968 | |
| | 969 | <tr><td>patest_wire.c</td><td> Pass input directly to output </td> |
| | 970 | <td class="unknown">wmme</td> |
| | 971 | <td class="unknown">ds</td> |
| | 972 | <td class="unknown">asio</td> |
| | 973 | <td class="unknown">alsa</td> |
| | 974 | <td class="unknown">jack</td> |
| | 975 | <td class="unknown">oss</td> |
| | 976 | <td class="unknown">mac_sm</td> |
| | 977 | <td class="unknown">mac_core</td> |
| | 978 | <td class="done">sgi</td> |
| | 979 | </tr> |
| | 980 | |
| | 981 | <tr><td>patest_write_sine.c</td><td> Play a sine wave for several seconds using the blocking API (Pa_WriteStream()) </td> |
| | 982 | <td class="unknown">wmme</td> |
| | 983 | <td class="unknown">ds</td> |
| | 984 | <td class="unknown">asio</td> |
| | 985 | <td class="unknown">alsa</td> |
| | 986 | <td class="unknown">jack</td> |
| | 987 | <td class="unknown">oss</td> |
| | 988 | <td class="unknown">mac_sm</td> |
| | 989 | <td class="unknown">mac_core</td> |
| | 990 | <td class="done">sgi</td> |
| | 991 | </tr> |
| | 992 | |
| | 993 | </table> |