An app for analysing sound waves and building sounds from a visual sound wave graph

Overview

Wave

This app was built for the Science Talent Search Victoria 2022.

UPDATE: This project won a minor bursary prize in the Computer Programs category

Wave is an app for viewing sound in waveforms (commonly known as sound waves) and constructing soundwaves with a visual editor. It also features educational resources and online capabilities such as publication of waves for others to use.

Table of Contents

  1. Concept
  2. Science
  3. Technology
  4. Contributing

Concept

Wave is envisioned as a highly-capable sound editor and sampler. The app is built around the concept of waveforms to represent sound visually. The two key features of the app involve both the recording of sound waves, as well as creating sound waves with the use of a visual editor. Aimed to appeal to the scientific/physics community, 'waves' may be shared online and cloned by other users to allow for the scientific community to analyse the same wave(s) and perform individual experiments.

Screenshots

Science

Sound travels in mechanical waves that are formed from the various frequencies in which particles vibrate.

An example of physical sound waves
Source: https://www.physicsclassroom.com/

A wavelength is the distance which a sound wave must travel to complete one wave cycle (one repetition of the pattern). This can also be thought of as the length of the pattern. There are three basic components that make up a sound wave; frequency, wavelength and amplitude.

A diagram demonstrating the three basic components of a sound wave
Source: https://oceanexplorer.noaa.gov

Wavelength has already been defined above, but what are frequency and amplitude? Frequency is the rate at which a cycle occurs. In the example above, this is 2 cycles per second or 2 Hz. The amplitude of a sound wave is represented by its height. The higher a wave is, the louder it is.

Technology

Wave is built with Flutter.

Setup

  1. Install Flutter/Dart packages
cd ~/path/to/wave/client
flutter pub get
  1. Run the app (ensure simulator/device is connected)
cd ~/path/to/wave/client
flutter run

Contributing

Since this is being built for the Science Talent Search Victoria, it would not be right to accept code contributions at this stage. However, anyone who is willing to help test the app can reach out to me at my email.

You might also like...

Project demonstrates building a simple chat application using Flutter framework and Firebase cloud

Project demonstrates building a simple chat application using Flutter framework and Firebase cloud

Flutter Chat on Firebase Project demonstrates building a simple chat application using Flutter framework and Firebase cloud. App does not poll for new

Feb 2, 2022

A beautiful design and useful project for Building a flutter knowledge architecture

Flutter Dojo Change log Flutter Dojo Change Log 我的网站 https://xuyisheng.top/ Wiki Flutter Dojo Wiki 体验APK Github Actions APK download 认识Flutter是在18年,移动

Dec 21, 2022

Flutter plugin for building pull to refresh effects with PullToRefreshNotification and PullToRefreshContainer quickly.

pull_to_refresh_notification Language: English | 中文简体 widget to build pull to refresh effects. Web demo for PullToRefreshNotification Chinese blog pul

Dec 28, 2022

Dartness is a progressive dart framework for building efficient and scalable server-side applications

Dartness is a framework for building efficient, scalable dart server-side applications. It provides an easy and quick way to develop modern standalone server.

Dec 12, 2022

Flying Fish is full-stack Dart framework - a semi-opinionated framework for building applications exclusively using Dart and Flutter

Flying Fish is full-stack Dart framework - a semi-opinionated framework for building applications exclusively using Dart and Flutter.

Dec 27, 2022

An application of learning outcomes from the Mastering Flutter 2.0 class: Building Travel and Aircraft Applications Buildwithangga

An application of learning outcomes from the Mastering Flutter 2.0 class: Building Travel and Aircraft Applications Buildwithangga

Airplane An application of learning outcomes from the Mastering Flutter 2.0 class: Building Travel and Aircraft Applications Buildwithangga 📸 ScreenS

Aug 29, 2022

🦜 Parrot - A progressive Dart framework for building efficient, reliable and scalable server-side applications.

🦜 Parrot A progressive Dart framework for building efficient, reliable and scalable server-side applications. What is Parrot? Parrot is a Dart framew

Nov 11, 2022

Chance Dart is a free Open Source project that lets you create random strings, integers, and other things to help with tiresome tasks, especially when building automated tests or wherever else you require anything random.

 Chance Dart is a free Open Source project that lets you create random strings, integers, and other things to help with tiresome tasks, especially when building automated tests or wherever else you require anything random.

Chance Dart Random generator helper for Dart Homepage • Documentation Overview Chance Dart is a free Open Source project that lets you create random s

Dec 27, 2022

💗 Tinder_Clone Building this app with intention of learning flutter better .

💗 Tinder_Clone  Building this app with intention of learning flutter better .

Tinder Clone Mozilla 💗 Tinder_Clone Building this app with intention of learning flutter better . 📱 Screenshots Splash Screen Login Page Phone numbe

Dec 19, 2022
Comments
  • oneCycleData is always null

    oneCycleData is always null

    lib/screens/plot_screen.dart

    I've finally figured out the issue of why the CustomPainter for drawing the waves isn't drawing anything. That's because it is never actually initialised. So that's one problem solved, but it also helped to reveal that the reason that it isn't initialised is because oneCycleData is always null.

    Container(
        height: 100,
        width: double.infinity,
        color: Colors.white54,
        padding: const EdgeInsets.symmetric(
          horizontal: 5,
          vertical: 0,
        ),
        child: oneCycleData != null
            ? CustomPaint(
          size: MediaQuery.of(context).size,
          painter: WavePainter(oneCycleData!),
        )
            : Container()),
    

    As shown in the above code, the WavePainter can't be added to the widget tree because oneCycleData is null. I have no idea why this happens but at least it is a starting point.

    bug 
    opened by william-herring 3
Owner
William Herring
Flutter | Next.js | Django | Anything else useful
William Herring
Flutter App Build for the machine Learning model which shows sentiments of instagram user by analysing their captions

InstaKnow Front-end By @ketanchoyal Back-end By @namas191297 Front-end Application Flutter application that allows user to analyze sentiments of other

Ketan Choyal 40 Oct 28, 2022
Intel Corporation 238 Dec 24, 2022
Animation Examples: stepper Counter loading Ripple Circle Generator water Flow Animation Wave

AnimatioExamples(stepperCounter-loadingRippleCircleGenerator-waterFlowAnimationWave) A new Flutter project. Getting Started This project is a starting

Ahmed Abdelkader Khedr 9 Nov 1, 2022
Rolify is an app that allows you to play multiple sounds simultaneously, with the ability to manage audio individually

Rolify is an app that allows you to play multiple sounds simultaneously, with the ability to manage audio individually. You can also add the music you have on your phone, all completely offline and free.

Luca Oropallo 4 Sep 30, 2022
A simple dart library for extracting the Open Graph protocol on a web pages

ogp_data_extract A simple dart library for extracting the Open Graph protocol on

KINTO 0 Jan 12, 2022
Umbra - visual editor for shaders in Flutter

Umbra Generated by the Very Good CLI ?? Umbra, visual editor for shaders in Flutter. Getting Started ?? This project contains 3 flavors: development s

Jochum van der Ploeg 189 Dec 14, 2022
Generate secure passwords, check for exposed passwords, get visual feedback for password strength or get form validation with a minimum password strength required.

password_strength_checker Generate secure passwords, check for exposed passwords, get visual feedback for password strength or get form validation wit

Dario Varriale 6 Aug 8, 2023
SoundVolumeView that displays general information and the current volume level for all active sound components in your system, and allows you to instantly mute and unmute them

SoundVolumeView that displays general information and the current volume level for all active sound components in your system, and allows you to instantly mute and unmute them

Domingo 4 Mar 4, 2022
A new flutter plugin with native wrappers that attempts to prove data transfer over sound by means of Frequency modulation

A new flutter plugin with native wrappers that attempts to prove data transfer over sound by means of Frequency modulation

Chiziaruhoma Ogbonda 36 Aug 31, 2022
Cupertino app codelab - Building a Cupertino App with Flutter

Building a Cupertino App with Flutter Flutter allows us creating Cupertino (iOS-

Abdulaziz Malikov 5 Nov 30, 2022