first commit

master
grgr 1 year ago
commit b59fa81c09

@ -0,0 +1,52 @@
import csv
import time
from pythonosc.udp_client import SimpleUDPClient
# OSC client connection
ip= "192.168.43.216" #"127.0.0.1"
port= 9000
client = SimpleUDPClient(ip, port) #create client
bpm = 100
tempo = 1/4
def set_bpm(tracker, ):
for row in tracker:
row = row['bpm']
bpm = row
print(csv.reader(tracker).fieldnames())
def update_bpm(bpm, tempo):
s = (60/bpm*tempo)
return s
def play_sheet():
with open('tracker.csv', newline='') as f:
tracker = csv.DictReader(f)
for row in tracker:
row = row['tum'], row['ts'], row['cha']
client.send_message("/vvvv", row)
print(' '.join(row))
time.sleep(update_bpm(bpm, tempo))
while True:
play_sheet()
# connect to pd osc

@ -0,0 +1,296 @@
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:p="property" Id="QWNbvEcRWEALErdTHyhyJf" LanguageVersion="2021.4.12.1374" Version="0.128">
<Patch Id="S5flZMv1ITIORz3baypefY">
<Canvas Id="PPmCslBi0lbOewD84yvR9H" DefaultCategory="Main" BordersChecked="false" CanvasType="FullCategory" />
<!--
************************ Application ************************
-->
<Node Name="Application" Bounds="100,100" Id="MGItnTQGcAvP6eCpu3NLT0">
<p:NodeReference>
<Choice Kind="ContainerDefinition" Name="Process" />
<CategoryReference Kind="Category" Name="Primitive" />
</p:NodeReference>
<Patch Id="Nr5OXz9NlUPQKG7RRDxV4H">
<Canvas Id="MYZMmawRnMQNlcAJ5alF6M" CanvasType="Group">
<Node Bounds="128,181,105,19" Id="JfHyNUDWsBgLFwg8Tt6WRO">
<p:NodeReference LastCategoryFullName="IO.OSC" LastSymbolSource="VL.IO.OSC.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="ProcessAppFlag" Name="OSCServer" />
</p:NodeReference>
<p:HelpFocus p:Assembly="VL.Lang" p:Type="VL.Model.HelpPriority">High</p:HelpFocus>
<Pin Id="TMHMwe4sqqROQp4pJHVzq9" Name="Listening IP" Kind="InputPin" />
<Pin Id="PQyTEXFBMqHNmkjHeH7RqU" Name="Port" Kind="InputPin" DefaultValue="5555">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="Integer32" />
</p:TypeAnnotation>
</Pin>
<Pin Id="GpIk5zpx0jYLezVLLW9ayd" Name="Enable Data Preview" Kind="InputPin" DefaultValue="True">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="Boolean" />
</p:TypeAnnotation>
</Pin>
<Pin Id="T0gUMH5QN9jO7aCWK6sNZj" Name="Sort Data Preview" Kind="InputPin" />
<Pin Id="ADgwNCGEcKmO1DKY4m2mak" Name="Reset Data Preview" Kind="InputPin" DefaultValue="True">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="Boolean" />
</p:TypeAnnotation>
</Pin>
<Pin Id="Rc9PQnhbu4hORvAW9sQPVO" Name="Enabled" Kind="InputPin" />
<Pin Id="KotOwXgGSZDMu2dy8iwjE1" Name="Data" Kind="OutputPin" />
<Pin Id="FAQ5jZlJ8VeObam7uqUpUU" Name="Data Preview" Kind="OutputPin" />
<Pin Id="Uwyfc8ZkbKAO7TJ4M05bh6" Name="Is Open" Kind="OutputPin" />
</Node>
<Pad Id="UrHKUWmZHmkNDOefoEpzfC" Comment="Listening IP" Bounds="130,106,41,15" ShowValueBox="true" isIOBox="true" Value="192.168.43.216">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="String" />
</p:TypeAnnotation>
</Pad>
<Pad Id="Fo64wtnQKocLzZoRhJTrEi" Comment="Port" Bounds="159,134,35,15" ShowValueBox="true" isIOBox="true" Value="9000">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="Integer32" />
</p:TypeAnnotation>
</Pad>
<Pad Id="LP4M0pOOqRxOieGTNjiaOD" Comment="Enabled" Bounds="248,169,35,35" ShowValueBox="true" isIOBox="true" Value="True">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="Boolean" />
</p:TypeAnnotation>
</Pad>
<Pad Id="ChHPgEjDPo9Pz8x5Jaj3uR" Bounds="283,104,243,40" ShowValueBox="true" isIOBox="true" Value="Use an OSCServer for each IP:Port you want to listen for OSC messages on">
<p:TypeAnnotation>
<Choice Kind="TypeFlag" Name="String" />
</p:TypeAnnotation>
<p:ValueBoxSettings>
<p:fontsize p:Type="Int32">9</p:fontsize>
<p:stringtype p:Assembly="VL.Core" p:Type="VL.Core.StringType">Comment</p:stringtype>
</p:ValueBoxSettings>
</Pad>
<Pad Id="By0raw3OBFVLHxs1DgyMAB" Bounds="375,260,189,76" ShowValueBox="true" isIOBox="true" Value="See all the messages the server received, their typetags and the time past since they were last received">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="String" />
</p:TypeAnnotation>
<p:ValueBoxSettings>
<p:fontsize p:Type="Int32">9</p:fontsize>
<p:stringtype p:Assembly="VL.Core" p:Type="VL.Core.StringType">Comment</p:stringtype>
</p:ValueBoxSettings>
</Pad>
<Pad Id="FtiQrS9DJ5hL4i76YJputG" Comment="On Data" Bounds="455,437,35,35" ShowValueBox="true" isIOBox="true" />
<Node Bounds="349,426,67,19" Id="KuW8OgMvCSUN85DLHcbu8Q">
<p:NodeReference LastCategoryFullName="Primitive.ValueTuple (3 Items)" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="OperationCallFlag" Name="ValueTuple (Split)" />
<CategoryReference Kind="RecordType" Name="ValueTuple (3 Items)" NeedsToBeDirectParent="true" />
</p:NodeReference>
<Pin Id="QAh0M1FUu74NrJczZ5U5qP" Name="Input" Kind="StateInputPin" />
<Pin Id="NKjAwltyGW9OQjNyVgFvKI" Name="Item 1" Kind="OutputPin" />
<Pin Id="UzpXC0n8sGRNfvX9atGURS" Name="Item 2" Kind="OutputPin" />
<Pin Id="SRKodDdeXuGPgxGcFAYkrL" Name="Item 3" Kind="OutputPin" />
</Node>
<Pad Id="JHovZJykgVWLvcaxeFBmUU" Comment="Address" Bounds="350,348,35,15" ShowValueBox="true" isIOBox="true" Value="/vvvv">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="String" />
</p:TypeAnnotation>
</Pad>
<Node Bounds="314,373,73,19" Id="RVxWnU9HSyEPOpZoMSyHE2">
<p:NodeReference LastCategoryFullName="IO.OSC" LastSymbolSource="VL.IO.OSC.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="ProcessAppFlag" Name="OSCReceiver" />
</p:NodeReference>
<Pin Id="JPgJcJJmlclOpaiDd2yJcc" Name="Input" Kind="InputPin" />
<Pin Id="I3kD7ysmXFkMyGd0NGDV8Y" Name="Address" Kind="InputPin" />
<Pin Id="QwzE652CMzUPsbVt0KnZ0C" Name="Learn" Kind="InputPin" />
<Pin Id="F25OxT17LsdOuuN8af4BP1" Name="Output" Kind="OutputPin" />
<Pin Id="PmajeQdeTEcPNbGwCLHy7v" Name="Is Learning" Kind="OutputPin" />
<Pin Id="Ik0X1en11G2LNRcIp4Kedb" Name="On Data" Kind="OutputPin" />
</Node>
<Node Bounds="685,195,85,19" Id="EW1U8y7oMH8PHWFlPqKWSJ">
<p:NodeReference LastCategoryFullName="IO.Net" LastSymbolSource="VL.CoreLib.IO.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="ProcessAppFlag" Name="IPs" />
</p:NodeReference>
<Pin Id="RI80Y5toLG3OoUrvdOgx0p" Name="Update" Kind="InputPin" DefaultValue="False" />
<Pin Id="B7L6YZ3OVAUPmnGJ2XDLCn" Name="Address" Kind="OutputPin" />
<Pin Id="VrjI2uPoI4nPHvIyC1483Y" Name="Name" Kind="OutputPin" />
<Pin Id="IbdSIwMJ6o5PlxFF5zOAbl" Name="Description" Kind="OutputPin" />
<Pin Id="NmtnAqMXBEDNc81XjmaGHD" Name="Type" Kind="OutputPin" />
<Pin Id="RVqVxwgbMVUPqKoG4aEDRD" Name="Is Up" Kind="OutputPin" />
</Node>
<Pad Id="ETOThKr6ZjIQSsPOZJ1IWL" Comment="Address" Bounds="687,250,93,50" ShowValueBox="true" isIOBox="true">
<p:Value>
<Item></Item>
</p:Value>
</Pad>
<Pad Id="HAohaZphAktP7IKVO0cgn3" Comment="Name" Bounds="847,250,55,49" ShowValueBox="true" isIOBox="true">
<p:Value>
<Item></Item>
</p:Value>
</Pad>
<Pad Id="Bn8GouH7UAhP9XpN0uEySd" Bounds="678,149,292,42" ShowValueBox="true" isIOBox="true" Value="Here you see your PCs IP addresses. Send data to these, so the OSCServer can receive it.">
<p:TypeAnnotation LastCategoryFullName="Primitive" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="TypeFlag" Name="String" />
</p:TypeAnnotation>
<p:ValueBoxSettings>
<p:fontsize p:Type="Int32">9</p:fontsize>
<p:stringtype p:Assembly="VL.Core" p:Type="VL.Core.StringType">Comment</p:stringtype>
</p:ValueBoxSettings>
</Pad>
<Pad Id="OzdnBLPVAXSMIspEPfOoxo" Comment="Data Preview" Bounds="199,218,172,103" ShowValueBox="true" isIOBox="true">
<p:Value>
<Item />
</p:Value>
</Pad>
<Pad Id="U45GuniOqFfLmBZTafZDaU" Comment="tex" Bounds="564,501,35,15" ShowValueBox="true" isIOBox="true" Value="text">
<p:TypeAnnotation>
<Choice Kind="ImmutableTypeFlag" Name="String" />
<CategoryReference Kind="Category" Name="Primitive" />
</p:TypeAnnotation>
</Pad>
<Pad Id="GPcKjEzOesgN8xBAhhpKCc" Comment="tex" Bounds="349,495,35,15" ShowValueBox="true" isIOBox="true" Value="text">
<p:TypeAnnotation>
<Choice Kind="ImmutableTypeFlag" Name="String" />
<CategoryReference Kind="Category" Name="Primitive" />
</p:TypeAnnotation>
</Pad>
<Pad Id="QvzkTPth8wOOaojhIHd0u3" Comment="tex" Bounds="432,508,35,15" ShowValueBox="true" isIOBox="true" Value="text">
<p:TypeAnnotation>
<Choice Kind="ImmutableTypeFlag" Name="String" />
<CategoryReference Kind="Category" Name="Primitive" />
</p:TypeAnnotation>
</Pad>
<Node Bounds="294,901,60,19" Id="ECviEnkyhD9L484iOOuOqA">
<p:NodeReference LastCategoryFullName="Audio.Sink" LastSymbolSource="VL.Audio.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="ProcessAppFlag" Name="AudioOut" />
</p:NodeReference>
<Pin Id="TtxnFKbDM90LvBaDux5hT8" Name="Input" Kind="InputPin" />
<Pin Id="J1OEcv4q4yANY268i9yHiy" Name="Channel Offset" Kind="InputPin" />
</Node>
<Node Bounds="293,869,57,19" Id="KrKMhEDgqXcP2P7H6ybutS">
<p:NodeReference LastCategoryFullName="Audio.Utils" LastSymbolSource="VL.Audio.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="ProcessAppFlag" Name="ToStereo" />
</p:NodeReference>
<Pin Id="Li4HwTaLsh0QAoJDU2Rg3b" Name="Input" Kind="InputPin" />
<Pin Id="Ol3Y0d9D2WELQVFryP13LC" Name="Gain" Kind="InputPin" />
<Pin Id="TjXPHlHteNINxm6RT9Hrxb" Name="Output" Kind="OutputPin" />
</Node>
<Node Bounds="280,677,179,144" Id="AID38sTfymOOqyWwABq9zI">
<p:NodeReference>
<Choice Kind="StatefulRegion" Name="Region (Stateful)" Fixed="true" />
<CategoryReference Kind="Category" Name="Primitive" />
<Choice Kind="ApplicationStatefulRegion" Name="ForEach" />
</p:NodeReference>
<Pin Id="LWFDFAY91MwO5kfoQuWwag" Name="Break" Kind="OutputPin" />
<Patch Id="JHMX3vNGoXYLB7E6rGSC2X" ManuallySortedPins="true">
<Patch Id="OzainCtUH7tMx3fl5Pffw7" Name="Create" ManuallySortedPins="true" />
<Patch Id="MRbdH9D0FESMDokckphsHd" Name="Update" ManuallySortedPins="true" />
<Patch Id="Mfnmo9M4Pn6Nt3yLdGhevE" Name="Dispose" ManuallySortedPins="true" />
<Node Bounds="301,751,145,19" Id="LzIHd4ZXdFHQaRHSyJTvNG">
<p:NodeReference LastCategoryFullName="Audio.Source" LastSymbolSource="VL.Audio-Factory">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<CategoryReference Kind="Category" Name="Source" NeedsToBeDirectParent="true" />
<Choice Kind="ProcessAppFlag" Name="Oscillator" />
</p:NodeReference>
<Pin Id="SC4NRpHSUjENZ7BY3LUTh0" Name="Frequency" Kind="InputPin" />
<Pin Id="AgmfacAcZ2sMosb30pGaiF" Name="Frequency Offset" Kind="InputPin" />
<Pin Id="NsvY3nLnEQCO2MyjGq3rrp" Name="Waveform" Kind="InputPin" />
<Pin Id="R4reG4p8siyPL3IMsbFQtg" Name="Symmetry" Kind="InputPin" />
<Pin Id="EMGix7iYQkXP7npX19FA9U" Name="Anti-Aliasing Method" Kind="InputPin" />
<Pin Id="Fn694H15P9ZOkut1GgjtWz" Name="FM" Kind="InputPin" />
<Pin Id="MdUwRLTSCC8N7oHX23O3d4" Name="FM Level" Kind="InputPin" />
<Pin Id="MnWOZI7ZD6CON7fksN1GV0" Name="Gain" Kind="InputPin" />
<Pin Id="LzBk58PJmBDMfXP7WpLgEP" Name="Output" Kind="OutputPin" />
</Node>
<Node Bounds="296,700,55,19" Id="Nohb3iZSNttOsHO6Jl2aK4">
<p:NodeReference LastCategoryFullName="System.Conversion" LastSymbolSource="CoreLibBasics.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="OperationCallFlag" Name="TryParse" />
</p:NodeReference>
<Pin Id="SmZTGwgzzhOM9y4aZzVpC6" Name="String" Kind="InputPin" />
<Pin Id="LnbHNCoICSrLbKpIs8uNik" Name="Value" Kind="OutputPin" />
<Pin Id="OBSU4MK9P9IQbPqX7SogED" Name="Success" Kind="OutputPin" />
</Node>
</Patch>
<ControlPoint Id="OscSmOS5r3wMI0nZT7Z8lc" Bounds="301,816" Alignment="Bottom" />
<ControlPoint Id="RGpgyCr53JOQccyoXq5l0M" Bounds="442,816" Alignment="Bottom" />
<ControlPoint Id="Otr9XaGQ3bBLWbr5RlMlOO" Bounds="442,684" Alignment="Top" />
<ControlPoint Id="GK6qHCQFmaOPr0sIDYyzz5" Bounds="294,684" Alignment="Top" />
</Node>
<Node Bounds="334,827,25,19" Id="HYWuWplK4paLid32cQXvma">
<p:NodeReference LastCategoryFullName="Audio.Operators" LastSymbolSource="VL.Audio.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<FullNameCategoryReference ID="Audio.Operators" />
<Choice Kind="ProcessAppFlag" Name="+" />
</p:NodeReference>
<Pin Id="QBgMOCWgtYcPAMGCuGQS7q" Name="Input" Kind="InputPin" />
<Pin Id="BbxUrGjsiQVLPtd0qFxzGs" Name="Input 2" Kind="InputPin" />
<Pin Id="RtykOe7DAcmMfN2HvXZlb4" Name="Output" Kind="OutputPin" />
</Node>
<Pad Id="JOONlHmEFdUNF1HJ9NuC7w" Comment="" Bounds="115,546,35,65" ShowValueBox="true" isIOBox="true">
<p:TypeAnnotation>
<Choice Kind="TypeFlag" Name="Spread" />
<p:TypeArguments>
<TypeReference>
<Choice Kind="TypeFlag" Name="String" />
</TypeReference>
</p:TypeArguments>
</p:TypeAnnotation>
<p:ValueBoxSettings>
<p:showentryindex p:Type="Boolean">true</p:showentryindex>
</p:ValueBoxSettings>
<p:Value>
<Item>440</Item>
<Item>200</Item>
<Item>1000</Item>
</p:Value>
</Pad>
<Node Bounds="131,439,73,19" Id="M2AKLoE41VWNOs2m1iCs73">
<p:NodeReference LastCategoryFullName="IO.OSC" LastSymbolSource="VL.IO.OSC.vl">
<Choice Kind="NodeFlag" Name="Node" Fixed="true" />
<Choice Kind="ProcessAppFlag" Name="OSCReceiver" />
</p:NodeReference>
<Pin Id="O1R6G823pYlLLRi3atSwCF" Name="Input" Kind="InputPin" />
<Pin Id="JEfu2x5FYAZLJjfOCblBgt" Name="Address" Kind="InputPin" DefaultValue="/vvvv" />
<Pin Id="SaIPRsiKNINPWNxzsv5LqD" Name="Learn" Kind="InputPin" />
<Pin Id="CyDc6ZsBlOyNA8s0VHxB0D" Name="Output" Kind="OutputPin" />
<Pin Id="Aw9VybAZx8dLp4RB2HX1hs" Name="Is Learning" Kind="OutputPin" />
<Pin Id="ENKDWm4HnyPPJVxflNc2vL" Name="On Data" Kind="OutputPin" />
</Node>
</Canvas>
<Patch Id="IdNSf4CcVQWLUiVLuCP8Fo" Name="Create" />
<Patch Id="Ts00lZwJUpsL2JReCbyl05" Name="Update" />
<ProcessDefinition Id="MNHyttCcJBHP0tOBdZhiZr">
<Fragment Id="OydyYeJtNn7OSXnHwmKjaY" Patch="IdNSf4CcVQWLUiVLuCP8Fo" Enabled="true" />
<Fragment Id="UIvBiNQIijnMQHjzlThMsk" Patch="Ts00lZwJUpsL2JReCbyl05" Enabled="true" />
</ProcessDefinition>
<Link Id="EMWknzXKKbVNUbS1z7WOfV" Ids="UrHKUWmZHmkNDOefoEpzfC,TMHMwe4sqqROQp4pJHVzq9" />
<Link Id="CgjGOw1sTjROBKzDiZVWel" Ids="Fo64wtnQKocLzZoRhJTrEi,PQyTEXFBMqHNmkjHeH7RqU" />
<Link Id="MfBNlDPZo6QM4n9eLtum5D" Ids="LP4M0pOOqRxOieGTNjiaOD,Rc9PQnhbu4hORvAW9sQPVO" />
<Link Id="SOOuagL4FoZOta9EJezCVw" Ids="KotOwXgGSZDMu2dy8iwjE1,JPgJcJJmlclOpaiDd2yJcc" />
<Link Id="FHdcaVOGycuMEIgaDXGKof" Ids="JHovZJykgVWLvcaxeFBmUU,I3kD7ysmXFkMyGd0NGDV8Y" />
<Link Id="Oi6qlSjeaGvL7BK3KrUyGt" Ids="Ik0X1en11G2LNRcIp4Kedb,FtiQrS9DJ5hL4i76YJputG" />
<Link Id="SVlodNLybleOlXhYyGTXfv" Ids="F25OxT17LsdOuuN8af4BP1,QAh0M1FUu74NrJczZ5U5qP" />
<Link Id="CvDKaxoHa6vNfGnxM9zUpo" Ids="B7L6YZ3OVAUPmnGJ2XDLCn,ETOThKr6ZjIQSsPOZJ1IWL" />
<Link Id="EMFpGOsaUskQHKYuS8MX5e" Ids="VrjI2uPoI4nPHvIyC1483Y,HAohaZphAktP7IKVO0cgn3" />
<Link Id="DNF87ZROQ00NRMN006Ah0r" Ids="FAQ5jZlJ8VeObam7uqUpUU,OzdnBLPVAXSMIspEPfOoxo" />
<Link Id="JUHlaVBFMoePDu6R6ec4kH" Ids="SRKodDdeXuGPgxGcFAYkrL,U45GuniOqFfLmBZTafZDaU" />
<Link Id="R3tL1pROK1LOOeHxkkUpMQ" Ids="NKjAwltyGW9OQjNyVgFvKI,GPcKjEzOesgN8xBAhhpKCc" />
<Link Id="InaYVWiK3Q2QX1v0eHyh83" Ids="UzpXC0n8sGRNfvX9atGURS,QvzkTPth8wOOaojhIHd0u3" />
<Link Id="SclJLeUb4zkP5S638E6IRc" Ids="Otr9XaGQ3bBLWbr5RlMlOO,RGpgyCr53JOQccyoXq5l0M" IsFeedback="true" />
<Link Id="SMHeeGWyC4nNaHfot00Ccj" Ids="LzBk58PJmBDMfXP7WpLgEP,OscSmOS5r3wMI0nZT7Z8lc" />
<Link Id="BkTgfz9gT5FNuBE4Dfl5QH" Ids="RtykOe7DAcmMfN2HvXZlb4,Li4HwTaLsh0QAoJDU2Rg3b" />
<Link Id="Kp7pPmLi9E0O0fYEPQwoYy" Ids="GK6qHCQFmaOPr0sIDYyzz5,SmZTGwgzzhOM9y4aZzVpC6" />
<Link Id="AJV5ikxdqtVOHFc1STFjTv" Ids="LnbHNCoICSrLbKpIs8uNik,AgmfacAcZ2sMosb30pGaiF" />
<Link Id="KPTwriWJXaLQNc5jbksPnu" Ids="KotOwXgGSZDMu2dy8iwjE1,O1R6G823pYlLLRi3atSwCF" />
<Link Id="VpaBQY7W1xZLhzhPGKc1zo" Ids="JOONlHmEFdUNF1HJ9NuC7w,GK6qHCQFmaOPr0sIDYyzz5" />
<Link Id="I3McSU6p12NNhjAw2FKete" Ids="OscSmOS5r3wMI0nZT7Z8lc,TtxnFKbDM90LvBaDux5hT8" />
<Link Id="OxZdAzP4618Lnb9vwYvrjP" Ids="CyDc6ZsBlOyNA8s0VHxB0D,JOONlHmEFdUNF1HJ9NuC7w" />
</Patch>
</Node>
</Patch>
<NugetDependency Id="FIKUoiSetCvPJ32Udk22Fc" Location="VL.CoreLib" Version="2021.4.12" />
<NugetDependency Id="Vp5OcrPSxjDPL1YsG6mNWI" Location="VL.IO.OSC" Version="1.0.16" />
<NugetDependency Id="MXefLRfKK3LPMC1JfCiALI" Location="VL.Audio" Version="1.0.14" />
<NugetDependency Id="FFuC0SfHeFeLpGboQ8zLrE" Location="VL.IO.Midi" Version="1.0.3" />
</Document>

@ -0,0 +1 @@
#N canvas 1341 76 946 682 12;

@ -0,0 +1,6 @@
n = NetAddr.localAddr;
o = OSCFunc({arg msg, time, addr, recvPort; [msg, time, addr, recvPort].postln;}, '/goodbye', n);
o.free;

@ -0,0 +1,18 @@
tum,ts,cha
440,,
,630,
300,,880
,,
840,,600
,,
360,1000,110
,,
440,,300
,,
,,880
,1000,
640,,800
,700,
,,610
,,
,1000,
1 tum ts cha
2 440
3 630
4 300 880
5
6 840 600
7
8 360 1000 110
9
10 440 300
11
12 880
13 1000
14 640 800
15 700
16 610
17
18 1000
Loading…
Cancel
Save