cli

package module
v0.0.32 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2020 License: Unlicense Imports: 16 Imported by: 0

README

Imgur

codecov

gocomu

gocomu is a command user interface designed to help speed things up when working with comu library.

Installation

You can download the latest pre-compiled binary from releases

or run go get -u -ldflags "-X main.version=v0.0.32" github.com/gocomu/cli/cmd/gocomu

Use

Test that everything works by printing -help

$ gocomu -help

      ::::::::       ::::::::       ::::::::       ::::::::         :::   :::      :::    ::: 
    :+:    :+:     :+:    :+:     :+:    :+:     :+:    :+:       :+:+: :+:+:     :+:    :+:  
   +:+            +:+    +:+     +:+            +:+    +:+      +:+ +:+:+ +:+    +:+    +:+   
  :#:            +#+    +:+     +#+            +#+    +:+      +#+  +:+  +#+    +#+    +:+    
 +#+   +#+#     +#+    +#+     +#+            +#+    +#+      +#+       +#+    +#+    +#+     
#+#    #+#     #+#    #+#     #+#    #+#     #+#    #+#      #+#       #+#    #+#    #+#      
########       ########       ########       ########       ###       ###     ########        


Available commands:

   new       Create New Project 
   serve     Hot load your composition while working
   record    Record audio output in real-time as wav/aiff
   offline   Render audio output as wav/aiff 
   embed     Embed all *.wav/*.aiff files in binary
   build     Build stand-alone application 
   update    Update GOCOMU to latest version

Flags:

  -help
        Get help on the 'gocomu' command.
New

gocomu provides cli & gui based templates to get you started.

Project Structure
.
├── cmd
│   ├── gocomu.go
│   └── sampleProject
│       └── main.go
├── embed
│   └── fs.go
├── gocomu.yml
├── go.mod
├── sine.go
└── output/
CLI

gocomu new cli -name sampleProject

GUI

GUI template uses Fyne.

From project's README:

In order to use it you will need Go version 1.12 or later. As Fyne uses CGo you will require a C compiler (typically gcc). If you don't have one set up the instructions at Compiling may help. By default Fyne uses the gl golang bindings which means you need a working OpenGL configuration (or GLES for ARM or mobile devices). Debian/Ubuntu based systems may also need to install the libegl1-mesa-dev and xorg-dev packages.

For more information refer to project's documentation.

gocomu new gui -name sampleProject

Serve

Using gocomu you can serve your project and have it reload while you are working on it.

To do that simply run

gocomu serve

Record

WIP

Offline render

WIP

Embed

Embedding files in gocomu's context means packing samples (wav/aiff) to the final binary.

This way all your audio files are compiled into the final application eliminating external dependencies.

A common scenario is delivering your audio as a ready application and is incoviniant to include your audio samples as seperate files.

gocomu embed

Build

gocomu build

Update

gocomu update

Documentation

Index

Constants

View Source
const (
	// Cli project type
	Cli = ProjectType(iota)
	// Gui project type
	Gui
)

Variables

This section is empty.

Functions

func ClirActions

func ClirActions(cli *clir.Cli)

ClirActions cli handlers

Types

type GocomuYaml

type GocomuYaml struct {
	Name        string
	Description string
	Version     string
	Type        string
	ServeOutput string
}

GocomuYaml .

func Yaml

func Yaml() (*GocomuYaml, error)

Yaml reads & returns content from gocomu.yml a secondary use is to infer wether we are inside project dir

type ProjectType

type ProjectType int

ProjectType type helps cli's `cli` subcommand

type RTout

type RTout int

RTout type helps cli's -out flag

const (
	// PortAudio output
	PortAudio RTout = iota
	// Oto output
	Oto
)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL