<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Nicolas Gry - Projects</title><link href="https://grybouilli.github.io/" rel="alternate"/><link href="https://grybouilli.github.io/feeds/projects.atom.xml" rel="self"/><id>https://grybouilli.github.io/</id><updated>2024-08-30T00:00:00+02:00</updated><subtitle>PhD Student in Computer Science · Inria de Lyon</subtitle><entry><title>Multi-Voice Sound Synthesis with Arduino</title><link href="https://grybouilli.github.io/multi-voice-sound-synthesis-with-arduino.html" rel="alternate"/><published>2024-08-30T00:00:00+02:00</published><updated>2024-08-30T00:00:00+02:00</updated><author><name>Nicolas Gry</name></author><id>tag:grybouilli.github.io,2024-08-30:/multi-voice-sound-synthesis-with-arduino.html</id><summary type="html">&lt;p&gt;This is a personal project. The idea was to explore Direct Digital Synthesis (DDS) using the Atmega 328p's timers and interrupts. A full explanation article is avaible on &lt;a href="https://medium.com/@grybouilli/multi-voice-sound-generation-with-arduino-9ae01ed0e441"&gt;Medium&lt;/a&gt; and the source code is available on &lt;a href="https://github.com/grybouilli/multi-voice-for-Arduino"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The end result is the ability to produce multi-voice sounds on an Arduino …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This is a personal project. The idea was to explore Direct Digital Synthesis (DDS) using the Atmega 328p's timers and interrupts. A full explanation article is avaible on &lt;a href="https://medium.com/@grybouilli/multi-voice-sound-generation-with-arduino-9ae01ed0e441"&gt;Medium&lt;/a&gt; and the source code is available on &lt;a href="https://github.com/grybouilli/multi-voice-for-Arduino"&gt;Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The end result is the ability to produce multi-voice sounds on an Arduino pin. Each voice can have its own signal shape. The repo contains a demo with the Super Mario theme.&lt;/p&gt;</content><category term="Projects"/></entry><entry><title>Spinning Display (PoV)</title><link href="https://grybouilli.github.io/spinning-display-pov.html" rel="alternate"/><published>2023-12-31T00:00:00+01:00</published><updated>2023-12-31T00:00:00+01:00</updated><author><name>Nicolas Gry</name></author><id>tag:grybouilli.github.io,2023-12-31:/spinning-display-pov.html</id><summary type="html">&lt;h2&gt;An implementation for a Persistence of Vision effect on the Atmega 328p.&lt;/h2&gt;
&lt;p&gt;&lt;br&gt;
This is a scholar project. Three main goals were set : to display an analog clock, to display images and to display a digital clock. More details about the expectations &lt;a href="https://gregwar.com/embedded_system/project.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;  &lt;/th&gt;
&lt;th&gt;  &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 20px;"&gt;
&lt;img src="/images/pov_spinning_demo.gif" width=400px&gt;
&lt;/td&gt;
&lt;td&gt;
Our team of three managed to implement all …&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary><content type="html">&lt;h2&gt;An implementation for a Persistence of Vision effect on the Atmega 328p.&lt;/h2&gt;
&lt;p&gt;&lt;br&gt;
This is a scholar project. Three main goals were set : to display an analog clock, to display images and to display a digital clock. More details about the expectations &lt;a href="https://gregwar.com/embedded_system/project.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;  &lt;/th&gt;
&lt;th&gt;  &lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding-right: 20px;"&gt;
&lt;img src="/images/pov_spinning_demo.gif" width=400px&gt;
&lt;/td&gt;
&lt;td&gt;
Our team of three managed to implement all three solutions. For image display, the images bytes are sent using bluetooth. For the digital clock, the image display solution cna be used, or, one can flash a program with hard coded digits images. 
The repo to the project can be found &lt;a href="https://github.com/grybouilli/spinning-display"&gt; here &lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</content><category term="Projects"/></entry><entry><title>VAE Synth for Ossia Score</title><link href="https://grybouilli.github.io/vae-synth-for-ossia-score.html" rel="alternate"/><published>2023-08-31T00:00:00+02:00</published><updated>2023-08-31T00:00:00+02:00</updated><author><name>Nicolas Gry</name></author><id>tag:grybouilli.github.io,2023-08-31:/vae-synth-for-ossia-score.html</id><summary type="html">&lt;h2&gt;A Pytorch based Variational Auto-Encoder for Ossia Score.&lt;/h2&gt;
&lt;h3&gt;Context&lt;/h3&gt;
&lt;p&gt;This work was conducted during my 2023 Summer Internship at Chalmers University, under the supervision of Kivanç Tatar. The goal was to generate sound using ML Pytorch models in a DAW or intermedia sequencer such as Ossia Score. Initially, I figured …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;A Pytorch based Variational Auto-Encoder for Ossia Score.&lt;/h2&gt;
&lt;h3&gt;Context&lt;/h3&gt;
&lt;p&gt;This work was conducted during my 2023 Summer Internship at Chalmers University, under the supervision of Kivanç Tatar. The goal was to generate sound using ML Pytorch models in a DAW or intermedia sequencer such as Ossia Score. Initially, I figured I´d try to run some python code inside PureData which would in turn be embedded inside Ossia Score. Stepping forward, I ended up developping an addon-on for Ossiam Score to use Pytorch VAEs to produce sound in real-time.&lt;/p&gt;
&lt;h3&gt;Conducted work&lt;/h3&gt;
&lt;p&gt;I developed an object which allows running Python code in two steps: the loading part and the running part. The heavy and loading work should be done in the loading part and the sound synthesis should be put in the running part. This solution isn't Pytorch specific, it rather allows the user to use Python code to generate sound.&lt;/p&gt;
&lt;p&gt;To make it more accessible, I created a Docker image: you can find guidelines on how to use it &lt;a href="https://github.com/grybouilli/docker-for-ossia/tree/master"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="/images/vae_synth_demo.gif"&gt;&lt;/p&gt;
&lt;p&gt;The repo to the ossia-score addon can be found &lt;a href="https://github.com/grybouilli/VAE_Synth/"&gt;here&lt;/a&gt;&lt;/p&gt;</content><category term="Projects"/></entry><entry><title>Aquarium Network</title><link href="https://grybouilli.github.io/aquarium-network.html" rel="alternate"/><published>2023-05-30T00:00:00+02:00</published><updated>2023-05-30T00:00:00+02:00</updated><author><name>Nicolas Gry</name></author><id>tag:grybouilli.github.io,2023-05-30:/aquarium-network.html</id><summary type="html">&lt;h2&gt;Let's go fishing&lt;/h2&gt;
&lt;p&gt;This is a scholar project. The goal was to implement the foundations for connected virtual aquariums. The idea is that there is an aquarium, handled by the TCP/IP server, and clients can connect to the server to get views on parts of the aquarium. When using …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Let's go fishing&lt;/h2&gt;
&lt;p&gt;This is a scholar project. The goal was to implement the foundations for connected virtual aquariums. The idea is that there is an aquarium, handled by the TCP/IP server, and clients can connect to the server to get views on parts of the aquarium. When using several computers, one can put the monitors side by side and observe the fishes swim from one screen to the other ! The project is implemented using C/C++. Click on the image below to go to the repo of the code.&lt;/p&gt;
&lt;p align="center"&gt;
    &lt;a href="https://github.com/grybouilli/AquariumNetwork"&gt;
        &lt;img src="/images/demo_aquarium.gif"/&gt;
    &lt;/a&gt;
&lt;/p&gt;</content><category term="Projects"/></entry></feed>