Skip to main content

How to remove an OSC message from a list?

I have the following patch on Pure Data. When I click on the green button, I connect to the network and send these messages in OSC format to a list. When I click the red button, I disconnect from the network, but the OSC messages remain on the list. How do I remove them too?

enter image description here

This is my Python code responsible for activating the server and putting messages on the list.

# Module that creates user-friendly and uncomplicated command line applications 
import argparse
# Pythonosc library module that does not require the sender and receiver of the message to be directly connected 
from pythonosc import dispatcher
# Pythonosc library module that imports a server capable of receiving messages in OSC format 
from pythonosc import osc_server
from pythonosc.osc_server import BlockingOSCUDPServer

# Chamar outro código em Python (server) [??]

# Creating variable list to receive "hello" messages
hello = []
# Creating variable list to receive "input" messages
entrada = []
# Creating variable list to receive "output" messages
saida = []
    
# Function that attach each message to the variable 
def getHello(address:str):
    # Append message
    hello.append(address)
    # Print hello variable
    #print (hello)
    
# Function that attach each message to the variable 
def getEntrada(address:str):
    # Append message
    entrada.append(address)
    # Print hello variable
    #print (hello)
    
# Function that attach each message to the variable 
def getSaida(address:str):
    # Append message - Adiciona elemento no final da lista
    saida.append(address)
    # Print hello variable
    #print (hello) 

# Creating the basic functionalities of the server, with IP and standard port 

# Checking the scope of execution. If you run the module directly, execute the function, if you import the module, don’t run it
if __name__ == "__main__":
  # Checks the validity of the past argument. That is, if the input data is accepted by the script
  parser = argparse.ArgumentParser()
  # setting the server IP
  parser.add_argument("--ip",
  # The IP must be from the multicast address of the local network 
      default="224.0.0.1", help="The ip to listen on") 
  # setting the server port     
  parser.add_argument("--port",
  # arbitrarily chosen number. It can be any free port on the computer.
      type=int, default=60000, help="The port to listen on")   
  # Analyzes the data entered and prints it on the screen, if they are valid    
  args = parser.parse_args()  
  # Dispatcher maps OSC addresses to functions and calls the functions with the messages’ arguments.
  dispatcher = dispatcher.Dispatcher() 
  # Dispatcher associates addresses with functions by storing them in a mapping
  # An address can contains wildcards as defined in the OSC specifications
  # Call the Dispatcher.map method with an address pattern and a     handler callback function
  """ print Pure Data messages on terminal
  """
  # Map the OSC messages to this function and call the functions that put them in lists  
  dispatcher.map("/hello/*", getHello)
  dispatcher.map("/input/*", getEntrada)
  dispatcher.map("/output/*", getSaida)
  
  server = osc_server.ThreadingOSCUDPServer((args.ip, args.port), dispatcher) # Reading IP, port and received message  
  while True: # Starting server loop
      try:
            print("Serving on {}".format(server.server_address)) # While server is active, receive messages
            server.serve_forever()
      except KeyboardInterrupt: # When interrupt key is triggered, end loop 
          #print(messages)
          break    # Ends loop
print("\n")
print(hello) # Print message and terminate script execution
print(entrada)
print(saida)

print("\n")
while input("Do You Want To Continue? [y/n]") == "y":
    print("\n")    
    try:
        print("Serving on {}".format(server.server_address)) # While server is active, receive messages
        server.serve_forever()
    except KeyboardInterrupt:
        print("\n")
        print(hello)
        print(entrada)
        print(saida)
        print("\n")
    else:
        quit()  # If the key type is not "y", it terminates program execution 


source https://stackoverflow.com/questions/68535399/how-to-remove-an-osc-message-from-a-list

Comments

Popular posts from this blog

Where and how is this Laravel kernel constructor called? [closed]

Where and how is this Laravel kernel constructor called? public fucntion __construct(Application $app, $Router $roouter) { } I have read the documentation and some online tutorial but I can find any clear explanation. I am learning Laravel and I am wondering where does this kernel constructor receives its arguments from. "POSTMOTERM" CLARIFICATION: Here is more clarity.I have checked the boostrap/app.php and it is only used for boostrapping the interfaces into the container class. What is not clear to me is where and how the Kernel class is instatiated and the arguments passed to the object calling the constructor.Something similar to; obj = new kernel(arg1,arg2) or, is the framework using some magic functions somewhere? Special gratitude to those who burn their eyeballs and brain cells on this trivia before it goes into a full blown menopause alias "MARKED AS DUPLICATE". To some of the itchy-finger keyboard warriors, a.k.a The mods,because I believe in th...

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console...

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype