Beispiel #1
0
        public static byte[] encode_graphdef(String name, Graph graph)
        {
            var stream = new MemoryStream();
            var bw     = new BinaryWriter(stream);
            var mm     = mk_map(graph);

            bw.Write(Osc.encode_str("SCgf"));
            bw.Write(Osc.encode_i32(0));
            bw.Write(Osc.encode_i32(1));
            bw.Write(Osc.str_pstr(name));
            bw.Write(Osc.encode_i16(graph.constants.Count));
            var l1 = graph.constants.Select(x => node_c_value(x));

            foreach (var elem in l1)
            {
                bw.Write(Osc.encode_f32(elem));
            }
            bw.Write(Osc.encode_i16(graph.controls.Count));
            var l2 = graph.controls.Select(x => node_k_default(x));

            foreach (var elem in l2)
            {
                bw.Write(Osc.encode_f32(elem));
            }
            bw.Write(Osc.encode_i16(graph.controls.Count));
            foreach (var elem in graph.controls)
            {
                bw.Write(encode_node_k(mm, elem));
            }
            bw.Write(Osc.encode_i16(graph.ugens.Count));

            foreach (var elem in graph.ugens)
            {
                bw.Write(encode_node_u(mm, elem));
            }

            return(stream.ToArray());
        }